Cancel appointment
Cancel an existing appointment via a public interface (no authentication required).
This action will fail with a 403 Forbidden response if cancellation is not allowed for the appointment based on the service's cancellation policy.
Authorization
authorization In: header
Path Parameters
Appointment ID
Request Body
application/json
Cancel appointment params
TypeScript Definitions
Use the request body type in TypeScript.
Request schema for canceling a public appointment
Response Body
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/v1/public/appointments/string/cancel" \ -H "Content-Type: application/json" \ -d '{ "cancellation_reason_id": "cr_d025a96ac0c6", "custom_reason_text": "I\'m sick" }'{ "data": { "add_to_calendar_url": "https://book.acme.com/c/appointments/appt_a1b2c3d4e5f6/add_to_calendar", "cancel_url": "https://book.acme.com/c/appointments/appt_a1b2c3d4e5f6/cancel", "cancellation": { "allowed": true, "disabled_message": null }, "confirmed_at": "2025-03-10T15:30:00Z", "end_at": { "local": "2025-03-01T11:00:00-05:00", "object": "zoned_date_time", "time_zone": "America/New_York", "unix_ts": 1736464800, "utc": "2025-03-01T04:00:00Z" }, "ics_url": "https://book.acme.com/c/appointments/appt_a1b2c3d4e5f6/ics", "id": "appt_a1b2c3d4e5f6", "object": "public_appointment", "reschedule_url": "https://book.acme.com/c/appointments/appt_a1b2c3d4e5f6/reschedule", "rescheduling": { "allowed": false, "disabled_message": "Rescheduling is not available within 24 hours of your appointment" }, "start_at": { "local": "2025-03-01T10:00:00-05:00", "object": "zoned_date_time", "time_zone": "America/New_York", "unix_ts": 1736461200, "utc": "2025-03-01T03:00:00Z" }, "status": "scheduled", "urls": { "add_to_calendar": [ "https://book.acme.com/c/appointments/appt_a1b2c3d4e5f6/add_to_calendar" ], "add_to_google_calendar": [ "https://book.acme.com/c/appointments/appt_a1b2c3d4e5f6/add_to_google_calendar" ], "cancel": [ "https://book.acme.com/c/appointments/appt_a1b2c3d4e5f6/cancel" ], "ics": [ "https://book.acme.com/c/appointments/appt_a1b2c3d4e5f6/ics" ], "reschedule": [ "https://book.acme.com/c/appointments/appt_a1b2c3d4e5f6/reschedule" ] } }}Abandon booking intent POST
Transition a non-terminal booking intent to `abandoned` via a public interface (no authentication required).
Complete booking intent POST
Complete a booking intent by creating an appointment from the accumulated intent data via a public interface (no authentication required). Update fields (service_id, provider_id, slot fields, client_data) may be provided inline. These updates are applied atomically before completion — if the update or completion fails, the entire operation is rolled back.