Bookings for music studios, on any website.
Pick the amount of code you want to write
All three share the same engine: server-side prices, no double bookings, verified guests, card deposits through Stripe. Mix them — a hosted site and an embedded button is the usual combination.
A booking website in one click
Every studio gets slug.sites.mrcharles.app with rooms bookable 24/7, legal pages and reminders. Two DNS records put it on the studio's own domain.
Add booking to a site that exists
One script tag and mountRoomBooking() drops our booking screen into any page — Astro, WordPress, Webflow, plain HTML. Deep links work too.
Your UI on our engine
The headless roomBooking() flow, or the raw API: availability → hold → one-time code → confirm. Render it however you like.
A real booking, against the real API
This is the embedded integration running on the demo studio, which is permanently in sandbox mode: pick a slot, type any name and a fake contact, use the code the page shows you. Nothing is sent, charged or kept.
<!-- 1. the SDK --> <script src="/sdk/v0/mrcharles.min.js"></script> <!-- 2. a box --> <div id="book"></div> <!-- 3. one call --> <script> const mc = MrCharles.createClient(); mc.mountRoomBooking('#book', { slug: 'demo-studio', roomId, lang: 'en', onBooked: ({ reference }) => track(reference), }); </script>
How a booking works
Teachers, not just rooms
A teacher’s site can list their published lesson offers, show real bookable times and hand the student to the app to book — mc.teachers.* and mc.links.bookLesson().
- Studios
- Teachers & schools
- Agencies building studio sites
- Directories & band tools
- City guides