- Time-slot bookings — appointments, classes, consultations.
- Date-range bookings — rentals, multi-night stays.
What this gives you
- Bookable services with price, currency, duration (or min/max nights), buffers, advance/notice rules, cancellation policy.
- Availability — weekly recurring schedule + date overrides + blocked dates.
- Public lookup — list services, list available dates and slots, all without auth.
- Public booking flow —
POST /v1/public/bookingswith rate limiting and optional Stripe Checkout. - Admin lifecycle — confirm, cancel, complete, no-show, and stats.
- Calendar sync — pull external feeds in; we block matching dates so double-booking is impossible.
- Embeddable widget — drop a
<script>tag and a<div>to render a multi-step booking widget on any page.
Quick example
A common shape: list services publicly, fetch slots for a given date, create a booking, surface a confirmation reference back to the user.Common workflows
1. Define a bookable service
price: 0 for free services or any positive integer (in cents) to charge
via Stripe Checkout. Paid services require Stripe Connect to be onboarded —
see commerce.
2. Set the weekly availability
/v1/booking-settings).
3. Block specific dates
4. Drop the booking widget into a page
The fastest path. The MCP server can do this for you in one tool call; or manually:5. Sync external calendars
Pull-in Airbnb / Booking.com / VRBO / iCal feeds so dates blocked elsewhere can’t be double-booked here.last_sync_status on the resource.
6. Confirm or cancel from the admin
/v1/public/bookings/{ref}/cancel)
enforce your cancellation policy; the admin path overrides it.
7. Subscribe to lifecycle events
Reference
| Endpoint | Tag |
|---|---|
GET /v1/services | Booking |
POST /v1/services | Booking |
GET /v1/services/{id}/availability | Booking |
PUT /v1/services/{id}/availability | Booking |
GET /v1/services/{id}/availability/dates | Booking |
GET /v1/services/{id}/availability/slots | Booking |
GET /v1/bookings | Booking |
POST /v1/bookings/{id}/confirm | Booking |
POST /v1/bookings/{id}/cancel | Booking |
POST /v1/bookings/{id}/complete | Booking |
GET /v1/booking-settings | Booking |
POST /v1/services/{id}/calendar-feeds | Booking |
GET /v1/public/services | Booking |
POST /v1/public/bookings | Booking |