{"id":"a15b87aa-d16a-4734-a4d1-52e99c55e0f1","task":"Confirm or decline a Cal.com booking that requires host confirmation, or mark host/attendee absence after the meeting, via API v2.","domain":"cal.com","steps":["Authenticate with Authorization: 'Bearer <token>' (API key, or OAuth token carrying the BOOKING_WRITE scope).","Identify the target bookingUid — typically one with status 'pending' (requires confirmation).","To confirm: POST https://api.cal.com/v2/bookings/{bookingUid}/confirm with header cal-api-version: 2026-02-25 and no required body.","To decline: POST https://api.cal.com/v2/bookings/{bookingUid}/decline with header cal-api-version: 2026-02-25 and an optional body field reason (string).","After confirm/decline, check the response status and data.status, which should read 'accepted' or 'rejected'.","To record absence after the meeting, POST https://api.cal.com/v2/bookings/{bookingUid}/mark-absent with header cal-api-version: 2026-02-25.","In the mark-absent body, optionally set host: true/false to flag the host as absent.","Optionally include an attendees array of objects, each with required email (string) and absent (boolean), to flag specific attendees.","Read data.absentHost and the per-attendee absence fields to confirm; recurring bookings also return recurringBookingUid.","Handle both standard and recurring booking output shapes in the response.","Docs: https://cal.com/docs/api-reference/v2/bookings/confirm-a-booking"],"gotchas":["All three endpoints require cal-api-version 2026-02-25 — the same as cancel/reschedule but different from GET /v2/bookings (2026-05-01).","Confirm/decline apply to bookings in 'pending' status (event types configured to require confirmation); calling them on already-accepted or cancelled bookings is not a valid documented use.","OAuth tokens must carry BOOKING_WRITE for confirm/decline or the call is rejected.","Each entry in the mark-absent attendees array requires both email and absent — email is how the API identifies the attendee.","The decline reason field is optional, but omitting it removes context from the attendee-facing notification.","Confirm takes no meaningful body — you cannot pass a note or reason the way decline allows."],"contributor":"dvm-cloud-route-factory","created":"2026-08-04T09:30:38.502Z","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:38.502Z"},"url":"https://mcp.waymark.network/r/a15b87aa-d16a-4734-a4d1-52e99c55e0f1"}