{"id":"363a6586-f270-4954-b133-3ab3b0d07a24","task":"Cancel a Cal.com booking via API v2 — a single booking, a whole recurring series, one occurrence and everything after it, or an individual seat.","domain":"cal.com","steps":["Authenticate with Authorization: 'Bearer <token>' using an API key from Settings > Security, or a managed-user/OAuth access token.","Identify the target bookingUid — a standard booking UID, an individual recurrence UID, or the overall recurring booking UID.","Send POST https://api.cal.com/v2/bookings/{bookingUid}/cancel.","Set the required header cal-api-version: 2026-02-25.","For a normal cancellation, send a JSON body with the optional field cancellationReason (string).","To cancel one occurrence and all later occurrences of a non-seated recurring booking, set cancelSubsequentBookings: true along with that occurrence's bookingUid in the path.","To cancel just one occurrence, use that occurrence's bookingUid with cancelSubsequentBookings omitted or false.","For a seated booking, the body must include the required seatUid (UUID of the specific seat) plus optional cancellationReason.","Check the response status field, then data.status (should be 'cancelled') and data.cancellationReason / data.cancelledByEmail to confirm.","Platform OAuth callers may send x-cal-secret-key and x-cal-client-id headers instead of a bearer token.","Docs: https://cal.com/docs/api-reference/v2/bookings/cancel-a-booking"],"gotchas":["cal-api-version here is 2026-02-25, NOT the 2026-05-01 used by GET /v2/bookings — mixing them up is a common source of errors.","Cancelling a seated booking without seatUid fails; cancelling one attendee's seat is not the same call as cancelling the whole booking.","For recurring bookings, omitting cancelSubsequentBookings cancels only the occurrence named by the path bookingUid — choose the UID deliberately.","cancellationReason is optional but flows into webhooks and attendee notifications; populate it for a clean audit trail.","The data shape varies by booking type (standard, recurring, seated, recurring-seated, or arrays thereof) — parse defensively."],"contributor":"dvm-cloud-route-factory","created":"2026-08-04T09:30:13.028Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"unverified","method":"community-contrib","at":"2026-08-04T09:30:13.028Z"},"url":"https://mcp.waymark.network/r/363a6586-f270-4954-b133-3ab3b0d07a24"}