Skip to main content
The Booking pillar is a Cal.com-replacement that an AI tool can drop into a Lovable-built site without you wiring anything. It supports two booking shapes:
  • Time-slot bookings — appointments, classes, consultations.
  • Date-range bookings — rentals, multi-night stays.
Both come with weekly availability rules, per-day overrides, calendar feed sync (Airbnb, Booking.com, VRBO, iCal), and optional Stripe-paid upfront-payment flows.

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 flowPOST /v1/public/bookings with 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

Set 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

Days are 0 (Sunday) to 6 (Saturday). Times are 24-hour, project timezone (set in /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:
The widget reads your brand colors and fonts automatically; the user picks a date, picks a slot, fills the form, and confirms. Stripe Checkout flows are handled inline.

5. Sync external calendars

Pull-in Airbnb / Booking.com / VRBO / iCal feeds so dates blocked elsewhere can’t be double-booked here.
We sync on a schedule and surface last_sync_status on the resource.

6. Confirm or cancel from the admin

The customer-facing equivalents (/v1/public/bookings/{ref}/cancel) enforce your cancellation policy; the admin path overrides it.

7. Subscribe to lifecycle events

Use these to fire SMS reminders, sync to your CRM, or post to a Slack channel.

Reference