Booking Calendars are the platform's way of taking time-based bookings — appointments, room reservations, slot-based scheduling, classes, lessons, support sessions. Each calendar represents one bookable resource or service with its own availability rules and confirmation behaviour.
The feature handles all the awkward parts of time-based booking: enforcing one-booking-per-slot, respecting working hours and holidays, sending confirmation emails with .ics calendar attachments, dealing with time zones, and managing cancellations.
What you can build
Booking Calendars cover a wide range of use cases:
- Service appointments — haircut, dentist, mechanic, beauty salon, personal trainer.
- Resource reservations — meeting rooms, equipment, vehicles, lockers.
- Class / event registration — classes with capacity limits, training sessions, workshops.
- Customer support sessions — onboarding calls, training sessions, professional services.
- Medical and clinical appointments — doctor, dentist, physiotherapist, mental-health practitioner.
- Multi-resource booking — e.g. a trainer + a specific room, both needed for the booking to work.
Where they're managed
From the Architect Panel → Booking Calendars. Each calendar has its own availability rules, slot durations, capacity limits, and confirmation behaviour.
Anatomy of a Booking Calendar
Every calendar has three layers of configuration:
1. Resource / Service definition
Who or what is being booked. "Dr. Smith's Consultations", "Conference Room A", "Yoga Class — Tuesdays 6pm". Plus owner (the user who's booked) and any descriptive content shown on the booking page.
2. Availability rules
When can it be booked? Working hours per day of the week ("Mon-Fri 9am-5pm"). Date-specific exceptions ("closed every Friday in August"). Lead time ("can't book within 24 hours of now"). Booking window ("can book up to 6 months ahead").
3. Slot configuration
How long is each bookable slot (15 / 30 / 60 / 90 minutes)? Is there a buffer between slots (15 minutes for clean-up)? Can multiple people book the same slot (a class with capacity 12) or only one (a 1-on-1 appointment)?
Three real-world Booking Calendars
Example 1: Hair salon — Stylist Booking
One calendar per stylist. Slot duration: 60 minutes. Working hours: Mon/Tue/Thu/Fri 9-5, Wed 11-7 (late night). Buffer: 15 minutes between bookings for cleanup. Capacity: 1 (one customer per slot). Lead time: 4 hours minimum. Booking window: 6 weeks ahead.
Example 2: Office meeting room
One calendar per room. Slot duration: 30 minutes (allowing flexible meeting lengths). Working hours: Mon-Fri 8-18. No buffer. Capacity: 1 (room is fully booked when reserved). Lead time: none. Booking window: 90 days.
Example 3: Group yoga class
One calendar per class type. Slot duration: 60 minutes. Working hours: defined per scheduled class (e.g. Mon 6-7pm, Wed 7-8am, Sat 10-11am). Capacity: 12 (12 people can book each slot). Lead time: 1 hour. Booking window: 30 days. Each booking ties a person to the class — multiple people can book the same slot.
How users book
The booking experience for end users is a calendar grid showing available slots. Users pick a day, then pick a slot from the available list for that day. They fill in a quick form (name, email, any custom fields you've added) and confirm. The platform validates that the slot is still available (race-condition-safe), books it, and sends a confirmation.
What gets stored
Each booking creates a row in the calendar's bookings datastore with the booker's identity, the slot start/end times, any custom-field values, and a status (Confirmed / Cancelled / Completed / No Show). The row can be queried like any other datastore for reporting, reminders, or integration with other systems.