book_appointment
Book an appointment with a local service business. Creates a booking record and may add the appointment to the business calendar. Fresh successful calls normally return 'pending', 'confirmed', or 'completed'. Retries and failures can return broader lifecycle states or 'reconciliation_required'. Always relay the exact returned status and statusDescription. Use a dateTime returned by a Qasper live or indexed availability result for the selected service so bookingStartPolicy is respected. For services with maxParticipants > 1, the start can be booked until remainingCapacity reaches 0. Read the status and statusDescription verbatim and relay them accurately: do NOT tell the customer 'confirmed' when the status is 'pending'. If the selected service has requiresCustomerAddress=true, ask the customer for their full service address before calling this tool and pass it as customerAddress. ONLY call this if the business has 'booking' in its enabledFeatures array. Clients should obtain explicit user confirmation before creating a booking; Qasper does not enforce a separate confirmation credential.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | The exact URL slug returned by a Qasper discovery result. Copy it verbatim. | |
| dateTime | Yes | Appointment start date and time in ISO 8601 format (e.g. '2026-04-07T14:00:00+03:00') | |
| serviceName | Yes | The name of the service to book | |
| customerName | Yes | Full name of the customer | |
| customerEmail | Yes | Customer email address | |
| customerPhone | Yes | Customer phone number | |
| jobDescription | Yes | Detailed description of the job or reason for appointment. Include any visual details about the issue — damage, location, severity, photos described in text form. | |
| clientRequestId | Yes | REQUIRED. Stable UUID identifying this booking attempt. Generate ONCE at the moment you decide to book; reuse the SAME value on every retry of the same logical attempt so the server can dedup. A fresh value on retry will mint a duplicate calendar event. | |
| customerAddress | No | Customer's full service address. Required when the selected service has requiresCustomerAddress=true; omit or leave blank for services that do not need an address. |