API
Cancel a booking or send its email again
Calls off a meeting that has not ended, or sends the guest the latest email about their booking once more.
POST/bookings/{id}/cancel
Runs any of 2 calls on your workspace.
POST /bookings/{id}/cancel
Calls off a meeting that has not ended, or sends the guest the latest email about their booking once more.
Example
Both need calendar:write and emails:send.
curl -X POST "$OE/bookings/bkg_2b8d4f6a1c3e5079b6d8f0a2/cancel" -H "$AUTH" -H 'content-type: application/json' -d '{ "reason": "Something urgent came up."}'curl -X POST "$OE/bookings/bkg_2b8d4f6a1c3e5079b6d8f0a2/resend" -H "$AUTH"{ "object": "booking", "id": "bkg_2b8d4f6a1c3e5079b6d8f0a2", "pageId": "bkp_5c1e9a7b3d2f48e6a0b4c7d1", "pageName": "Intro call", "status": "cancelled", "expired": false, "past": false, "start": "2026-11-03T09:00:00.000Z", "end": "2026-11-03T09:30:00.000Z", "durationMinutes": 30, "guest": { "name": "Ann Lee", "email": "[email protected]", "timezone": "America/New_York" }, "guests": [], "answers": [ { "id": "notes", "label": "Anything we should know?", "kind": "long-text", "value": "I would like to talk about pricing." } ], "location": "https://meet.example.com/hana", "eventId": "evt_8a1c3e5f7b2d4960c8e0a2b4", "endedBy": "host", "endReason": "Something urgent came up.", "rescheduleCount": 0, "guestMailFailed": false, "createdAt": "2026-10-28T14:12:40.115Z"}Cancelling cancels the calendar event and emails the guest the cancellation, with reason if you send one. A booking that still waits for approval is declined instead.
A booking that was already declined or cancelled, or a meeting that is over, answers 409 booking_ended.
Sending again sends the email that matches where the booking stands now. Use it when guestMailFailed is true, then read guestMailFailed in the answer.