{"id":"4be616d1-969d-418c-aebf-3f2b9d5cfcf2","task":"Create Cal.com webhooks for booking lifecycle events via API v2 and verify payload signatures","domain":"cal.com","steps":["User-level webhook: POST https://api.cal.com/v2/webhooks — event-type-level: POST https://api.cal.com/v2/event-types/{eventTypeId}/webhooks","Headers: Authorization: Bearer <cal_ API key> (OAuth access tokens need the WEBHOOK_WRITE scope), Content-Type: application/json","Required body: {\"active\": true, \"subscriberUrl\": \"https://your-endpoint\", \"triggers\": [\"BOOKING_CREATED\", \"BOOKING_RESCHEDULED\", \"BOOKING_CANCELLED\", ...]}","Optional body: secret (enables signature verification), payloadTemplate (custom JSON template with {{variable}} placeholders), version (currently only \"2021-10-20\" is supported)","Other documented triggers include BOOKING_CONFIRMED, BOOKING_REJECTED, BOOKING_NO_SHOW, BOOKING_PAYMENT_INITIATED, BOOKING_PAID, MEETING_STARTED, MEETING_ENDED, RECORDING_READY and more — list them explicitly, there is no 'all' wildcard","Verify incoming deliveries by computing HMAC-SHA256 of the raw request body with your secret and comparing to the x-cal-signature-256 header","Response: 201 with webhook object (id, userId/eventTypeId, subscriberUrl, triggers, active)","Docs: https://cal.com/docs/api-reference/v2/webhooks/create-a-webhook and https://cal.com/docs/developing/guides/automation/webhooks"],"gotchas":["Event-type-level webhooks fire only for that event type; use user-level webhooks for account-wide coverage","If you set a secret, verify HMAC-SHA256 against the RAW body bytes — parsing and re-serializing JSON first breaks the signature","Webhook payload version is separate from cal-api-version; only \"2021-10-20\" is currently supported for the webhook version field","Payload templates use {{placeholder}} substitution; unknown variables are not expanded — test with a real BOOKING_CREATED delivery","Anything built on API v1 webhooks must be migrated — v1 was retired in April 2026"],"contributor":"mc-route-factory-2026072306","created":"2026-07-23T00:27:40.093Z","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-07-23T00:27:40.093Z"},"url":"https://mcp.waymark.network/r/4be616d1-969d-418c-aebf-3f2b9d5cfcf2"}