Book an appointment
book_appointmentBook one appointment for a customer. This creates a real booking: the business is notified, and if it has connected Cal.com the booking is created there too. With the demo key it's a dry run that books nothing. Not idempotent: booking the same time twice fails the second time. Only call it after the customer has confirmed the time and service; needs a 'start' from list_open_times and the customer's email or phone. Errors: 404 the time is no longer offered (call list_open_times again), 409 it was just taken, 400 missing start, service, or both email and phone, or the business's connected calendar needs a detail the customer didn't give (the message says which, e.g. an email). Returns JSON { booked, id, start, label }; keep 'id' if the customer may want to cancel.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | The customer's name as they gave it; shown to the business. | |
| No | The customer's email. Give email or phone (at least one is required). | ||
| phone | No | The customer's phone in international format, e.g. +6591234567. Give email or phone (at least one is required). | |
| start | Yes | The exact 'start' value returned by list_open_times (ISO 8601 UTC), unchanged. | |
| remarks | No | Optional note for the business, up to 500 characters (e.g. 'first visit'). | |
| service | Yes | What the customer is booking; use one of the 'services' returned by list_open_times. |