Embedded Booking

Add your Otake booking calendar to any website and let visitors book without leaving the page.

Paid plans only. Embedded Booking requires an active Booking subscription. Free plan users see an Upgrade to enable embedding prompt on the Add to website option.
Getting the embed code: Booking → Events → Add to website → configure → copy.

In 3 steps

1

Open Booking → Events, find your event, click Add to website.

2

Set width, height, and color mode → open the HTML Code tab → click Copy.

3

Paste the snippet into any HTML or embed block on your website.

Prefer the full walkthrough? Keep reading.

Overview

Otake Embedded Booking lets you place a fully functional booking widget on your website, portfolio, landing page, or client portal. Visitors can view your event details, browse available dates, choose a time slot in their own timezone, fill in their details, and complete the booking - all without leaving your site.

The widget stays connected to your Otake event automatically. When you change the event name, schedule, duration, price, or availability in Otake - the widget updates everywhere it's embedded. No code change required.

Use Embedded Booking when you want to

  • let clients book without redirecting them to another site
  • keep the entire booking experience inside your own website
  • reduce friction and improve conversion
  • keep event details always up to date automatically

Before you start

Make sure that:

  • you have an active Otake account on a paid plan
  • Booking is enabled with an active subscription
  • you have at least one booking event created
  • your website supports custom HTML or an embed block
If you haven't set up Booking yet — go to Subscriptions → add a Booking slot → open Booking → Create Event and complete the event setup first.

Get your embed code

  1. Open Booking in your Otake dashboard
  2. Go to Events
  3. Find the event you want to embed
  4. Click Add to website on the event card
  5. Adjust width, height, and color mode if needed
  6. Open the HTML Code tab
  7. Click Copy
  8. Paste the code into your website
Copying the embed code from the Otake dashboard.

The embed code

The snippet contains a container div and the Otake widget script. The script mounts the booking iframe automatically.

your-page.html
<div
  class="otake-booking"
  data-page-id="YOUR_PAGE_ID"
  data-event-id="YOUR_EVENT_ID"
  data-theme="light"
  data-width="auto"
  data-height="auto"
></div>
<script src="https://otake.io/widgets/booking-widget.js" async></script>
Always copy the generated code from your Otake dashboard. It fills in your unique data-page-id and data-event-id automatically. Do not build the snippet by hand.

Attribute reference

AttributeRequiredValuesDefaultDescription
class="otake-booking"RequiredMarks the container the script mounts the widget into
data-page-idRequiredUUIDYour Otake page ID. Filled in automatically.
data-event-idRequiredUUIDThe event to embed. Filled in automatically.
data-themeOptionallight / darklightVisual theme of the widget
data-widthOptionalauto / px (320–1200)autoWidget width. auto fills container up to 732px.
data-heightOptionalauto / px (522–1200)autoWidget height. auto adjusts to booking step from 573px.

Good to know

  • The script loads asynchronously and only once, even with multiple widgets on the same page
  • You can embed multiple events on one page - use a separate snippet for each with its own data-event-id

Customization

Adjust the widget appearance in the Add to website dialog before copying the code.

OptionValuesWhat it does
WidthAuto / Custom pxAuto fills the container up to a 732px max layout width. Custom sets a fixed pixel width (320–1200px).
HeightAuto / Custom pxAuto adjusts to fit the current booking step, starting from 573px. Custom sets a fixed height (522–1200px).
Color modeLight / DarkChanges the visual theme of the widget to match your website.

What updates automatically vs. what needs a new copy

  • Event details — name, duration, price, availability, description load dynamically. No code update needed when they change.
  • Style options — width, height, color mode are saved inside the snippet. After changing them, copy the updated code and replace the old snippet on your site.

Responsive behavior

The widget is responsive. In wide containers, event info and the calendar appear side by side. In narrow containers, the layout stacks vertically so both stay readable.

  • Use data-width="auto" unless the target site requires a fixed width
  • Use data-height="auto" unless the layout requires a fixed iframe height
  • Avoid placing the widget in containers narrower than 320px
  • On mobile pages, make sure the parent container uses the full viewport width

Add to your website

The universal rule: find any HTML / Embed / Custom code block on your platform and paste the full Otake snippet — container div and script tag together. If your platform supports custom HTML and scripts, Otake will work there.

The Otake booking widget embedded on a website.
The Otake booking widget embedded on a website.

Step-by-step per platform

  1. Open WordPress admin → open the page or post
  2. Add a Custom HTML block
  3. Paste the full Otake embed code
  4. Preview the page → Publish

How visitors book

The complete visitor booking experience inside the embedded widget.

When a visitor opens a page with your embedded widget:

  1. The widget loads inside your site
  2. The visitor sees the event details and available dates
  3. Time slots are shown in the visitor's local timezone, detected automatically by their browser
  4. The visitor selects a date
  5. The visitor selects an available time slot
  6. The visitor fills in the booking form:
    • Name — required
    • Email — required (one address only)
    • Comment — optional
  7. The visitor accepts the standard Otake booking terms
  8. Booking is confirmed. For paid events, the payment step is handled inside the embedded flow.

If Booking is disabled

If you disable Booking on your Otake account or page, all embedded widgets connected to it stop working immediately. Visitors see an unavailable state instead of the calendar. Re-enabling Booking restores the widget automatically - no code change needed.

Before disabling, Otake shows a warning:

Are you sure you want to disable booking? Your event will no longer be available for client bookings and your embedded calendar on external sites. Please note: Payments for the current billing period are non-refundable.
What visitors see when Booking is disabled on the account.

FAQ / Troubleshooting

No. Name, price, schedule, and availability load dynamically and update automatically.
Yes. These are saved inside the snippet. Copy the updated code from the editor and replace it on your site.
Check: Booking is active on your account, the event is active, the full snippet was pasted (container and script), and your platform didn't strip the script tag.
No. It requires a paid plan with an active Booking subscription. Free users see an upgrade prompt.
The visitor's local timezone, auto-detected by their browser.
Each visitor sees slots in their own detected local timezone.
Yes. Style changes require replacing the snippet on each site where it was pasted.
Yes. Use a separate snippet for each event with its own data-event-id. The script mounts all of them.
No. You need both the .otake-booking container and the <script> tag.
The page may be on the Free plan, Booking may be off, or embedding isn't available for your current plan.
Check the parent container CSS. Avoid fixed-height wrappers when using data-height="auto".
Some editors block custom scripts in edit mode. Publish the page or use the platform's live preview mode.
Yes — via data-theme, data-width, data-height. Recommended path: change in Otake and copy the updated code so the preview stays accurate.
Yes. Paid events continue through the full embedded booking flow.

Need help?

Still stuck after troubleshooting?

Contact us at support@otake.io

You have to have it.

If you network, if you freelance, if you run a business, if you give a damn about first impressions - you need Otake.

Otake uses Google Sign-In to create and securely access your account.

Quick links

Otake uses Google Sign-In to create and securely access your account.

Terms and conditionsPrivacy policy©2026 Otake Inc. All rights reserved