Cancel an appointment and release its slot to anyone waiting.
Cancel an appointment and release its slot to anyone waiting.
POST
https://app.softsolz.uk/api/v1/services/appointments/appointments/{id}/cancelRecent Requests
Kept only in this browserTimeStatusTook
Send a request with Try it to see it here.
Path Params
idstringrequiredHeaders
AuthorizationstringrequiredBearer token: `Bearer sk_live_...` (or `sk_test_...` for sandbox). A login token will not work here.
Idempotency-KeystringOptional idempotency key for safe retries.
Body Params
reasonstringWhy this happened, recorded on the timeline.
Response
Response Body
idstringUnique identifier.public_refstringShort reference safe to show a customer.type_idstring | nullAppointment type this belongs to.plan_idstring | nullMulti-visit plan this belongs to, when part of one.stage_sequenceinteger | nullPosition within the plan stages, when part of one.customer_idstring | nullNull for group sessions, where people are listed as attendees instead.asset_idstring | nullThe thing the visit is about, for example a vehicle or a property.state_keystringCurrent workflow state.titlestring | nullShort label shown on the calendar.starts_atstringStart of the appointment, in UTC.ends_atstringEnd of the appointment, in UTC.window_ends_atstring | nullEnd of the arrival window when the type uses one.timezonestringIANA timezone, for example Europe/London.location_modestringWhere the appointment happens.locationobjectAddress, coordinates, meeting URL, or phone number.capacityintegerPlaces available. 1 is one-to-one; above 1 enables group booking.sourcestringHow the appointment was created.price_centsinteger | nullPrice in the smallest currency unit.currencystring | nullISO 4217 currency code.intake_dataobjectAnswers to the appointment type intake questions.custom_fieldsobjectYour own extra fields, keyed by the definitions in workspace settings.assignmentsarray of objectsResources working this appointment.attendeesarray of objectsPeople booked onto a group session.created_atstringWhen the record was created.updated_atstringRound-trip as expected_updated_at to guard against stale writes.Request
curl --request POST \ --url https://app.softsolz.uk/api/v1/services/appointments/appointments/{id}/cancel \ --header 'Authorization: Bearer sk_live_your_key' \ --header 'Content-Type: application/json' \ --data '{ "reason": "Customer requested"}'Credentials
Sent as a Bearer token and used in the samples above and in Try it. Kept only in this browser tab until you close it. Use an sk_test_ key to stay in your sandbox.
Response · 200
{ "data": { "id": "501", "public_ref": "AP-7F3K2M", "type_id": "7", "plan_id": "your-plan-id", "stage_sequence": 1, "customer_id": "your-customer-id", "asset_id": "your-asset-id", "state_key": "confirmed", "title": "your-title", "starts_at": "2027-03-01T10:00:00.000Z", "ends_at": "2027-03-01T11:00:00.000Z", "window_ends_at": "2026-01-01T09:00:00.000Z", "timezone": "Europe/London", "location_mode": "customer", "location": { "address": "14 Oak Street, Leeds" }, "capacity": 1, "source": "api", "price_cents": 1, "currency": "your-currency", "intake_data": {}, "custom_fields": {}, "assignments": [ { "resource_id": 3, "role": "primary" } ], "attendees": [ {} ], "created_at": "2026-01-01T09:00:00.000Z", "updated_at": "2026-01-01T09:00:00.000Z" }}