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.
<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
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