Add a booking calendar to Wix
Let visitors book you straight from Wix. Set your real working hours — split days included — and the widget offers slots in the visitor’s own timezone, checking your connected calendar so it never double-books you.
Free plan, no card. Paid plans start at $19 a month.
Why do it this way on Wix
This is the combination where Wix’s embed element needs the most care, and it is worth saying plainly. The frame does not resize itself, and a booking calendar is the widget whose height changes most — picking a date opens a list of times underneath it. Size the box for that taller state, not for the month grid alone, or visitors will get a scrollbar exactly at the moment they are choosing a time. Then size it again in the mobile view, which Wix edits separately.
See it working
This is a real Sorraia booking calendar — the one we use for product demos, embedded here exactly the way you would embed yours. Pick a slot and it books.
How to add a booking calendar to Wix
A widget that sits in the page flow goes in Wix’s embed element. It renders inside a sandboxed iframe, which is why the sizing steps below are not optional.
Wix’s Embed HTML element works on any Wix site, free plans included. Site-wide Custom Code is different: Wix requires a published site with a connected domain, and a domain can only be connected on a paid Wix Premium or Studio plan. On a free wixsite.com address there is no way to inject a script into every page — which means a floating launcher is not available there at all.
In Sorraia, add the website and verify it — a DNS TXT record, or a meta tag in your homepage’s <head>. Verification is what lets you attach a widget to that site, so it comes before there is anything to paste.
Save the calendar and the Copy Embed Code popup appears; the Install wizard on the calendar’s row on the Calendars page does the same job with a verification step.
In the Wix Editor, open Add Elements → Embed Code → Popular Embeds → Embed HTML and drag it where the widget should sit. In Wix Studio the same element is Embed Code, under Add Elements → Embed & Social.
Click the element, click Enter Code, paste the Sorraia snippet under “Add your code here”, and click Apply.
Drag the element’s handles to size the box. There is no auto-height: content taller than the box is cut off and gets its own scrollbars, and Wix states plainly that embedded code “won’t be responsive, even if it is originally”.
Switch to the mobile view and size the element again there — a desktop embed’s code cannot be edited from the mobile editor. Then Publish and check the live site.
What you get
Let visitors book you straight from Wix. Set your real working hours — split days included — and the widget offers slots in the visitor’s own timezone, checking your connected calendar so it never double-books you.
Split days, not one block
A working day is an ordered list of up to four windows, so 9:00–12:00 plus 13:00–17:00 is one calendar rather than a compromise — the lunch gap serves no slots at all. The honest limit: that window list applies to every working day you tick. Split days are supported; giving Monday different hours from Tuesday is not.
Slots in the visitor’s own timezone
The widget detects the visitor’s timezone in their browser and renders every slot in it, with the zone named and changeable from a dropdown — and if their zone is not in the list, it gets added rather than snapping them to a wrong one. Nobody has to work out in their head whether your 3pm is their 3pm, which is the most common way a booking gets missed.
It fails safe, so it never double-books
When a host has a calendar connected, busy time is checked before a slot is offered. If that check cannot complete — the provider is down, the token is stale — the day is treated as busy rather than offered. You may occasionally show less availability than you have; you will not get booked over something.
Name and email are yours to rename
The built-in Name and Email rows are ordinary rows in the field list: rename them, reorder them, put your own questions above them. The booking payload keeps its fixed shape underneath, so renaming a label can never break a workflow that reads it.
Every booking gets a manage link
The confirmation carries a token link the guest uses to reschedule or cancel — rescheduling keeps the same link working, cancelling retires it, so a cancelled meeting’s link stops being a working key the moment the meeting is off.
More detail in the Help Center: Calendars & bookings · Embedding on your website
Things worth knowing about Wix
- The embed element is a genuinely sandboxed iframe. Wix documents this outright, and it is why anything inside is confined to its rectangle and cannot paint over the surrounding page.
- No auto-height. The box is whatever you dragged it to; taller content is cut off with scrollbars. Swapping fixed pixel dimensions for 100% only fills the box you drew — it does not make the box fit the content.
- Mobile is a separate editing view, so every inline embed effectively has to be sized twice.
- Custom Code is invisible in the editor and does not run in preview. It only executes on the published site, so anyone testing in the editor will report the widget as broken.
- Only HTTPS embeds render — an http:// script is silently not displayed.
- Do not plan to load the widget through a tag manager pasted into Custom Code. Wix states that Google Analytics, Google Tag Manager and the Facebook and TikTok pixels do not work through custom code and have to be connected through Marketing Integrations instead.
Questions
Can I have a lunch break, or two separate blocks in a day?
Yes — that is exactly what the windows are for. A day holds up to four working-hours windows, so a morning block and an afternoon block is the normal setup rather than a workaround, and the gap between them offers nothing. What it does not do is per-day hours: the same window list applies to every day you have ticked as a working day.
What timezone do visitors see?
Their own, detected in their browser, with the zone shown on the widget and changeable if they are travelling. Your own timezone is displayed alongside so both sides can see what they are agreeing to.
Does it check my real calendar?
Yes, when you connect one — Google Calendar today. Busy time is read before slots are offered, and if that read fails the day is treated as busy rather than offered, so an outage costs you a few visible slots instead of a double booking. Multi-host modes like round-robin and collective scheduling are available on organisation accounts.
Do I need a paid Wix plan?
For an inline widget, no — the Embed HTML element works on any Wix site. For anything that has to appear on every page, yes: Wix only allows site-wide Custom Code on a published site with a connected domain, and connecting a domain requires a paid Wix Premium or Studio plan.
My widget is cut off inside a box on Wix. How do I fix it?
That is the iframe, not the widget. Wix renders embedded code inside a sandboxed frame sized by the handles you dragged in the editor, and anything taller is clipped with scrollbars. Drag the element taller — and remember to size it again in the mobile view, because that is edited separately. A widget whose height changes as the visitor uses it (a calendar opening a time list, for example) needs the box sized for its tallest state.
Add a booking calendar to Wix
Build it in Sorraia, paste one line into your Wix site, and change it later without touching the embed again.