Calendar embed
A read-only copy of your CallSlot calendar. You put it on your own site with one iframe. Nobody signs in inside the frame, and visitors see only what you turn on.
Create, approve, paste
Only a space owner or an admin can do this. Members do not get the menu item. It is free on every plan.
- Go to Settings → Calendar embed and press New calendar embed. Give it a name of up to 100 characters. Only you see the name.
- Open the embed and press Copy under Snippet. The snippet already carries your key, which starts with cemb_. The key is also shown on its own under Embed key, and both stay on that page.
- Paste the snippet into your own site.
- Approve that site. Type its address under Add a site and press Add, or load your page once and then press Approve next to the site that appears under Pending sites.
- Until you approve it, the frame reads Waiting for approval.
Snippet
<iframe src="https://app.callslot.app/embed/calendar/<id>?k=<key>" title="Calendar" style="width:100%;height:720px;border:0"></iframe>The frame does not resize itself. Pick a height that fits a month grid. 720px is a good start, and you can change it freely.
To check an embed before anyone else sees it, open its address in a normal browser tab while you are signed in as the owner or an admin. You get your calendar with a preview banner on top. Nobody else can see it there.
What shows
A new embed shows bookings only. The other three switches start off, so you turn on each thing you want.
- Show bookings: bookings made through CallSlot. On by default.
- Show connected calendar events: events from a connected Google calendar. Off by default, so a new embed shows none. Only Google calendars feed this layer.
- Show titles of connected events: off by default, so every connected event reads Busy. You can only change it while connected calendar events are on.
- Show guest details: off by default, so a booking shows only its event type name. On, the chip reads the event type name and the guest name, and the guest email can travel with it.
- Event Types: All event types is on by default and takes in any event type you add later. Turn it off to pick up to 200.
Inside the frame
- Two views: week and month. Week opens first. The bar on top has Today, Previous, Next, Change view and Go to date.
- A legend under the grid names only the layers you turned on: Bookings in your brand colour and Busy in grey.
- A booking with no title reads Booked. A connected event with its title hidden reads Busy. A view with nothing in it reads Nothing scheduled.
- Times are drawn in the visitor's own browser time zone, not yours. An all-day entry sits on the same calendar date for everyone.
- The frame asks for the dates it shows, up to 42 days at a time. It asks again when the visitor comes back to the tab. It does not poll, and nothing it loads is cached or indexed.
- The frame follows the visitor's light or dark system setting. There is no setting for it, and no separate mobile layout: the grid fills the box you gave it and scrolls inside it.
Privacy defaults
Guest details and connected event titles are both off on a new embed, so it shows no names.
While Show guest details is on, the settings page keeps a warning next to it: every approved site can then see the guest names.
The embed is read only. Nobody can book, cancel, reschedule, drag or resize anything in it.
How access works
Two things are needed: the key in the snippet, and an approved site. A good key on a site you have not approved shows Waiting for approval. Everything else shows Calendar unavailable.
- Under Sites, each approved site has Remove, each pending site has Approve and Deny, and denied sites stay in a list with Approve to undo. Deny also takes back an approval the site already had.
- Each address is approved on its own, and the port counts as part of it. https://example.com and https://www.example.com are two sites, and so are http://localhost:3000 and http://localhost:5173.
- Rotate key issues a new key. Every frame on the old key stops at once, even one already open, until you paste the new snippet.
- Disable blanks every frame but keeps the key and the approved sites. The badge goes from Active to Disabled, and Enable brings it back.
- Delete removes the embed, its key and its sites for good.
- Each embed holds up to 20 approved sites, 20 pending sites, 20 denied sites and 200 selected event types. A space may hold 10 embeds.
Troubleshooting
- Your site never turns up under Pending sites. Some pages send no address the browser can pass on, and the review queue has a budget: 10 new sites an hour from one visitor address, and 30 an hour for one embed. Over that, the queue quietly takes no new names. Type the address under Add a site instead. That skips the queue, but the limit of 20 approved sites still applies.
- The frame is blank after a rotate. The old key stopped working. Paste the new snippet.
- The frame is blank after you moved the site to a new address. Each address is approved on its own, so approve the new one.
- Testing on your own machine works. Plain http is accepted for localhost and 127.0.0.1 only, and the port must match.
- The snippet shows three dots where the key should be. That embed was made before keys were kept, so the page says Rotate the key to show it here. Press Rotate key to get a working snippet.
- The frame reads Reload to continue. A frame stays live for 12 hours. Reload the page to start a new one.
- The frame stops loading new dates for a moment. Each embed answers 60 requests a minute per visitor address. Wait a minute and page again.
- The grid is there but empty. Check that the embed is Active, that Show bookings is on, and that the event types you expect are selected.