Docs menu ▾

Embed

Embed on a website

Show your booking page inside any website. Visitors book without leaving your site, and you can react when they do.

The quickest way

Open a link in your dashboard (Links → your link → Embed), pick a style and copy the ready-made code. This page explains what that code does and how to customise it.

1. Add the script#

Add this once, anywhere on the page (just before </body> is a good place):

HTML
<script src="https://meet.zyluxmedia.app/embed.js" async></script>

Then add one of the three styles below. The value is the path of the page you want to show, the part after https://meet.zyluxmedia.app:

EmbedPath
A booking link/your-username/your-link
A team link/team/your-team/your-link
An event (registration page)/e/your-event
A routing form/forms/your-form-id

The quickest way to get the code for an event or a form: Events → your event → Embed, or Routing forms → your form → Embed.

2. Choose a style#

Inline

The booking page sits inside your page, like a section. Its height adjusts automatically, so there are no scroll bars.

HTML
<div data-scheduler-inline="/ada/consultation"></div>

Any element with this attribute opens the booking page in a pop-up when clicked. Style the button however you like.

HTML
<button data-scheduler-popup="/ada/consultation">Book a consultation</button>

<!-- or a text link -->
<a href="#" data-scheduler-popup="/ada/consultation">Schedule a call</a>

Floating button

A round button that stays in the bottom-right corner on every page, and opens the pop-up.

HTML
<div data-scheduler-floating="/ada/consultation" data-label="Book a call" data-color="#086ee6"></div>
AttributeWhat it does
data-labelThe button's text. Default: “Book a meeting”.
data-colorThe button's background colour, e.g. #086ee6. Default: near black.

Fill in details for the visitor#

Add query parameters to the path to prefill the form, for example when the visitor is already signed in to your site. See all link options.

HTML
<div data-scheduler-inline="/ada/consultation?name=Tunde%20Bello&[email protected]"></div>

Open it from your own code#

Once the script has loaded, window.Scheduler lets you open the pop-up yourself, and pick up elements you add to the page later (single-page apps, content loaded after the page).

JavaScript
// Open the pop-up, e.g. after a form on your site is submitted
window.Scheduler.open("/ada/consultation?email=" + encodeURIComponent(user.email));

// You added new data-scheduler-* elements after the page loaded? Activate them:
window.Scheduler.init();

Know when someone books#

When a booking is made inside an embed, your page receives a scheduler:booked event with the booking. Use it to show a thank-you message, track a conversion, or move the visitor on.

JavaScript
window.addEventListener("scheduler:booked", (e) => {
  const booking = e.detail; // { uid, title, startTime, endTime, status }
  console.log("Booked", booking.uid, "for", booking.startTime);
  // e.g. gtag("event", "booking", { value: 1 }) or show your own message
});
status is accepted, pending (the link needs your confirmation) or awaiting_payment (a paid link, before payment). For the full picture on your server, use webhooks; browser events can be blocked by ad blockers.

Event registrations and routing forms

Embedded events and routing forms send their own events the same way:

JavaScript
// Someone registered for an embedded event
window.addEventListener("scheduler:registered", (e) => {
  const reg = e.detail; // { uid, event, status, name, email }
  // status is "registered", or "awaiting_payment" for a paid event before payment
});

// Someone submitted an embedded routing form
window.addEventListener("scheduler:form-submitted", (e) => {
  const { formId, result, values } = e.detail;
  // result: { type: "message", message } or { type: "redirect", url } (where they are being sent)
});
When an embedded routing form sends someone to one of your booking links, the booking page opens inside the same embed, so the visitor never leaves your site. If it sends them to another website, that site opens in the whole window.

Good to know#

  • Embeds use your link's own settings: duration, questions, availability, payments and branding.
  • Paid links and paid events open the payment page in a new tab when embedded (payment providers don't allow paying inside a frame on another site).
  • Plain links work everywhere too: emails, WhatsApp, Instagram bio, QR codes. Embedding is only needed to keep people on your site.