Bookings
Let website visitors request an appointment from the widget. You approve, reject, reschedule, or cancel each request — clinics, gyms, salons, turf bookings, and hourly hire.
What it is
Booking is off until you turn it on. When it's on, the widget shows a calendar button (default label Book Now). A visitor picks a date and time, leaves their name, email, and phone, and the request lands as pending. Nothing is confirmed until you (or a teammate with permission) approve it.
Use this when people already ask your site to book something — you do not need a separate booking product for simple appointment requests.
Example: clinic, salon, or gym appointment
A dental clinic, hair salon, or gym personal-training session usually has a list of start times.
- Open Bookings (or Widget) and turn Enable booking on.
- Open Calendar settings and choose Fixed slots.
- Set hours (for example first slot 9:00 AM, last slot ends 6:00 PM) and slot length (15, 30, or 60 minutes — or a custom length).
- Optional: require a note, add extra fields (e.g. “Preferred trainer”), and paste a Google Maps link for your studio.
- Save. On your website, a visitor taps Book Now, picks Saturday 15 August, 3:00 PM, enters contact details, and submits.
You get an email with Approve / Reject. After you approve, the visitor gets a confirmation with that time in their timezone (India shows IST, 3:00 PM — not UTC) and, if you added it, an Open in Google Maps button.
Example: turf, gaming centre, or hourly hire
A football turf or PC café often lets the visitor choose any start time inside opening hours, rather than a fixed grid.
- Enable booking the same way.
- In Calendar settings choose Visitor picks time.
- Set opening / closing hours and how long each booking lasts (for example 60 minutes, or a custom 90 minutes).
- Save. The visitor picks a date, then a start time; each booking still uses the slot length you set.
Turning it on and saving
Enable booking from the Bookings page toggle or from Widget → Icon & position. Calendar settings start collapsed; expand them to edit. Unsaved changes use Discard / Save, same as the widget customizer. Turning the toggle off hides the calendar in the widget immediately if it was already saved on.
What the visitor sees
- Calendar button in the widget header, and a Book Now chip when they ask the bot about booking or appointments.
- Step 1: date and time. Confirmed times are crossed out so nobody else can take them.
- Step 2: name, email, phone (country flag and calling code, defaulted from their location; they can search and change it), optional notes and extra fields.
- After submit: the request is pending. They are emailed when you approve, reject, reschedule, or cancel.
Approving and rejecting
Open Bookings in the dashboard, or use Approve / Reject in the request email (you'll be asked to sign in if needed). Owners and teammates with content permission can decide; others can view only.
If that time was already confirmed for someone else, approve is blocked. If the same visitor tries to book the same pending slot again, the widget tells them it's already waiting for your team and to pick a different time. Other visitors can still request a pending slot until you confirm it.
Rescheduling and cancelling
Pending and confirmed appointments can be moved or cancelled from Bookings (owners and teammates with content permission). Pick a new date and time and save — the visitor gets an email that the appointment was rescheduled, with the previous time and the new time in their timezone. Cancel asks for confirmation first; after you confirm, the visitor is emailed that the appointment was cancelled. You can add an optional note on the cancel email.
Rescheduling a confirmed booking is blocked if another confirmed booking already occupies that time. Rejected and cancelled bookings cannot be changed again.
Emails and maps
New requests go to Bot settings → Send leads & handoff requests to (or your login email). Visitor emails (confirmed, rescheduled, cancelled, rejected) use 12-hour time (5:00 PM) in the visitor's country timezone. Add a Google Maps URL in calendar settings to include a maps button on confirmation and reschedule emails — Gmail does not show an interactive map, so the link is what visitors tap.
Webhooks
On the Scale plan, subscribe to booking.created to push new requests into Slack, a CRM, or your own calendar. See Webhooks.
API & MCP
Growth+ tokens can fetch and decide bookings the same way the dashboard does. Create a token on Dashboard → API & Agents with bookings:read and bookings:write (included in the Standard preset).
GET /v1/bookings?status=pending— list requests.GET /v1/bookings/{id}— one request.PATCH /v1/bookings/{id}with{ "action": "confirm" }or{ "action": "reject", "rejectionComment": "…" }— emails the visitor, same as Approve / Reject in the dashboard.PATCH /v1/bookings/{id}with{ "action": "reschedule", "requestedSlot": "2026-08-20T15:00:00+05:30" }— moves a pending or confirmed booking and emails the visitor the new time.PATCH /v1/bookings/{id}with{ "action": "cancel", "cancelComment": "…" }— cancels a pending or confirmed booking and emails the visitor.
MCP tools for agents: list_bookings, get_booking, update_booking. Full reference: API & MCP.
Something unclear? Tell us.
Start free trial