🔌 Booking widget for your own website
You have a website that works and you are not about to replace it — it is just missing the place where a guest books. The widget puts the Rezervos booking form straight into your page. The website stays yours, Rezervos handles the bookings.
It works anywhere you are allowed to paste a piece of HTML: WordPress, Wix, Squarespace, Webnode, Shoptet, or a hand-written site.
:::tip Generate the code yourself The form where you enter your venue's address and see a live preview is at rezervosapp.cz/nastroje/rezervacni-widget — free and without signing in. :::
What it looks like in practice
The generated code is two lines:
<div data-rezervos="u-zlate-veverky" data-locale="en" data-height="760"></div>
<script src="https://rezervosapp.cz/embed/rezervace.js" async></script>
The first line is where the form will be drawn. The second loads the script that puts it there. Paste both — the <div> on its own does nothing.
Settings
Everything is controlled by attributes on that <div>.
| Attribute | What it does | Default |
|---|---|---|
data-rezervos | Required. Your venue — either just its Rezervos name (u-zlate-veverky), or the full address if you use a custom domain (booking.myrestaurant.com). | — |
data-locale | Form language: cs or en. | cs |
data-height | Starting height in pixels. Minimum is 420. | 760 |
The giveaway between the two forms of data-rezervos is the dot: a venue name never contains one, a domain always does.
You usually do not need to worry about height
data-height is only the height the form is drawn with before it can be measured. After that it asks for exactly as much room as it needs and the frame follows — when a guest moves from picking a service to the calendar, the widget grows instead of producing a scrollbar inside your page.
Set it roughly to the height the form takes on your site, so the page does not jump on load.
How many you can have on one page
As many as you like. The script fills every <div data-rezervos="…"> it finds — so you can have one branch at the top of the page and another at the bottom, each with its own data-rezervos.
The script itself only needs to be included once per page.
A form inside a tab or a dialog
If the <div> only appears later — when a tab opens, a modal is shown, or a CMS renders a preview — the script does not know about it, because it was not on the page at the time. Tell it:
<script>window.Rezervos && window.Rezervos.mount();</script>
You can call this as often as you like; forms that are already mounted are not duplicated.
What the widget does to your visitors
The short answer: nothing you need to worry about.
- It sets no cookies and does not track visitors.
- It calls no third party — only your own booking form.
- Your cookie consent and privacy policy do not change, because the widget adds nothing that was not already there.
The script is deliberately dumb: it builds a frame and gets out of the way. That is precisely why a cautious web developer can paste it without hesitation.
:::info What loads inside
Inside runs the /embed/book page from your booking address — the same form as on your booking site, just without the header, footer and cookie bar that make no sense inside someone else's page.
It is deliberately excluded from search engines (noindex) so it cannot compete with your own booking page in Google's results. Two addresses, one form — and only yours belongs in an index.
:::
If the form does not appear
Work down the list; the first three cover almost everything:
- Did you paste both lines? The
<div>alone is not enough. - Is
data-rezervosright? Try opening the address directly in a browser —https://your-name.rezervosapp.cz. If it does not open, the name is wrong. - Did your CMS rewrite the code? Many editors strip
<script>when you paste into the visual mode. Use an "HTML" / "Custom code" / "Embed" block, not ordinary text. - Is there a scheme in the address by mistake?
data-rezervoswants only the name or the domain — the script addshttps://itself, and it would rather refuse a malformed value than build a frame pointing nowhere. - Does your site have a strict Content Security Policy? It has to allow
frame-srcandscript-srcforrezervosapp.cz.
Still nothing? Write to us — see Support and contact. Include the address of the page you pasted the code into.
What the widget cannot do
So the boundaries are clear:
- It does not restyle itself to match your website. The form looks the way you set it up in appearance settings — colours and typography follow your Rezervos theme, not the host page's stylesheet.
- It does not carry data over from your website. The guest fills the form from scratch.
- It is not a replacement for your booking page. It is a second place people can book from, into the same system.
Related
- How guests book online — what the guest sees inside the widget
- Appearance settings — the form's colours and typography
- Opening hours — which slots the widget will offer
- Code generator on rezervosapp.cz — with a live preview