Embeddable Booking Widget

Put your full booking flow on any website in minutes

Drop a single snippet onto your site and let customers book appointments without ever leaving your page. No build tools, no plugins, no maintenance headaches. The yAppointment widget auto-mounts, isolates its own styles, and stays in sync with your live availability.

A Booking Experience That Fits Anywhere

Designed to slot into any website with zero friction while giving you full control over look, behavior, and follow-up.

Copy-and-Paste Embed

Add one small element to your page and the widget takes care of the rest. No build step, no bundler, no dependencies to manage.

  • Drop in a single <div data-yapp-widget data-company-id data-public-key> element
  • Auto-mounts the moment the page loads
  • No build step, npm install, or framework setup required
  • Live in minutes on any page you can edit
  • Paste once and the widget keeps working as your availability updates

Shadow-DOM Style Isolation

The widget renders inside its own Shadow DOM, so its styles never leak out and your site's CSS never leaks in. It always looks right, no matter where you place it.

  • Complete CSS isolation via the Shadow DOM
  • Your site's styles can't break the widget's layout
  • The widget's styles can't clash with your page
  • Consistent appearance across every theme and template
  • No CSS resets or specificity workarounds needed

Hook Into Your Own Flow

Listen for widget events to plug bookings into your analytics, CRM, or custom thank-you experience exactly the way you want.

  • onBookingCreated event fires when a booking succeeds
  • onError event lets you handle and report failures gracefully
  • Trigger conversion tracking and analytics on real bookings
  • Drive your own confirmation screens and follow-up steps
  • Connect bookings to downstream tools without custom backends

Theme It to Match Your Brand

Tune colors, mode, language, and starting service straight from the embed attributes so the widget feels like a native part of your site.

  • Light and dark modes out of the box
  • Set your brand color with data-primary-color
  • Override the display language with data-language
  • Pre-select a service with the optional data-service-id attribute
  • Configure everything declaratively from the embed tag

Simple Setup, Maximum Control

One snippet to embed, zero build tools to configure.

embed.html
<div data-yapp-widget
  data-company-id="cmp_abc123"
  data-public-key="pk_live_xyz789"
  data-primary-color="#a855f7"
  data-language="en"
  style="min-height: 500px;">
</div>

<script src="https://js.yappointment.com/v1/widget.js"></script>

Built for Real-World Websites

The small details that make the widget dependable on production sites of every kind.

Fast CDN Delivery

The widget is served from https://js.yappointment.com/v1/widget.js, so it loads quickly and stays cached close to your visitors.

Works With Any Stack

Whether your site is plain HTML, WordPress, React, Vue, or anything else, the widget drops in the same simple way.

Lightweight by Design

Built on Preact, the widget keeps its footprint small so it loads fast and never weighs your pages down.

Multi-Language Ready

Show the booking flow in your customers' language and override it per page with a single data-language attribute.

Full API Reference & Guides

Deep dive into widget events, styling options, and advanced configuration with our developer documentation.

  • Complete widget API documentation with examples
  • Event listener patterns for custom workflows
  • Integration guides for popular frameworks
View Widget Docs

Ready to see what changes?

14 days. Full access. No credit card. What do you have to lose?

Business owners across Europe have replaced admin chaos with one platform that just works. Join them today.

14-day free trial • Commission-free — always • Cancel anytime