Booking widget

Put a complete booking flow inside your own website.

Add the FullClass widget with a few lines of JavaScript and your customers browse classes, pick spots, and pay without ever leaving your site. Same booking engine as the hosted page and API, just wearing your design.

Best for: businesses that already have their own website and want to keep customers on it. Booking happens in place, with your brand, not on a separate link.

What it solves

Keep customers on your site, all the way to paid.

Sending people to a separate booking link costs you context and trust at the exact moment they are deciding to pay. The widget removes that hand-off: the full flow renders inside your own pages, styled to match the site around it.

It runs on the same engine as the hosted booking page and the API, so spot locks, payments, waivers, and confirmation emails behave identically. You control the look; FullClass handles the booking.

your-studio.com
Embedded on your site
Handmade Pasta
Thu 6:30 PM, 3 spots left
Book
The embed code

Paste two lines and you are live.

Add a container and the script tag, swap in your public API key, and the booking flow renders in place. It drops into WordPress (Custom HTML block), Wix, Squarespace (Code block), or plain HTML anywhere you can paste a snippet.

<!-- Booking widget container --> <div data-fullclass-booking data-fullclass-apikey="YOUR_API_KEY" ></div> <!-- Load the widget --> <script src="https://app.fullclass.io/sdk/v1/booking.min.js"></script>

Prices in the widget display your configured currency symbol, so what customers see matches the rest of your site.

What you get

Your design, our booking engine.

  • Drop-in with a few lines of JavaScript. Add the script to your site and the booking flow renders in place, no rebuild, no framework lock-in.
  • Deep theming with ~180 CSS custom properties. Match colors, type, spacing, and radii to the site around it without touching our markup.
  • Headless bare mode. Set data-fullclass-bare="true" for unstyled output and take total control of the design yourself.
  • Built-in languages. Ships with English, French, Spanish, and Italian, and you can supply your own strings for anything else.
  • Custom loading, empty, and error states. Replace the defaults so every state looks like part of your site, not a third-party embed.
  • Analytics events built in. Emits standard ecommerce events to GA4, Google Ads, and Google Tag Manager so you can measure and optimize your booking funnel.
  • Payments configure themselves. The widget reads your tenant settings on load and uses whichever processor you have connected, Square or Stripe, with no keys pasted into the embed.
  • Gift cards and courses, in the widget. Customers can buy a gift card and book multi-session courses right inside the embed, not just single classes.
  • Everything at checkout still works. Gift cards, promo codes, add-ons, waivers, and every payment method carry over to the widget.
  • Safe by design. Loads against public API keys with scopes and allowed-origin restrictions, so the embed only does what you permit.
How it works

Four steps to booking on your own site.

1

Create a public API key

Generate a browser-safe public key, set its scopes, and add your site to the allowed origins.

2

Add the script to your page

Drop in a few lines of JavaScript where you want booking to appear. Choose styled or bare mode.

3

Theme it to match

Set the CSS custom properties to your brand, or go fully custom in bare mode with your own markup.

4

Take bookings in place

Customers browse, reserve spots, and pay without leaving your site. Bookings land in your admin.

Marketing & conversion tracking

Wire bookings into your ad reporting.

The widget fires standard ecommerce events as customers move through the funnel, so paid bookings show up where you already measure performance, no extra tagging on your side.

  • GA4. Sends view_item_list, select_item, begin_checkout, and purchase events so the booking funnel lands in Google Analytics 4.
  • Google Ads. Add your conversion ID and the widget loads the tag for you, so completed bookings report as conversions against your campaigns.
  • Google Tag Manager. Point it at your GTM container ID and events flow through your existing dataLayer and tags.
  • No double-tagging. If your site already runs gtag, the widget reuses it instead of loading a second copy, so your existing setup keeps working.

Start simple, add the extras later.

Launch on the hosted booking page today, embed the widget when your site is ready, and reach for the developer API when you need a fully custom flow. Same bookings, same data, no migration.

Get started today

Book it on your own site.

Start taking bookings in minutes. Launch the hosted page now and embed the widget when your site is ready.

30-day free trial · Cancel anytime