{"id":"b037ebcb-edee-4def-b2a9-f08a0aedb718","task":"Create a webhook subscription in Cal.com API v2 (POST /v2/webhooks) with subscriberUrl, triggers, active flag, and an optional payload template and signing secret.","domain":"cal.com","steps":["Authenticate with Authorization: 'Bearer cal_live_xxx' (or a cal_ test key), created in Cal.com Settings > Security.","Set Content-Type: application/json.","Send POST https://api.cal.com/v2/webhooks.","Include the body fields subscriberUrl (string, your receiving endpoint), triggers (array of trigger enum strings, e.g. ['BOOKING_CREATED','BOOKING_CANCELLED']), and active (boolean).","Optionally include payloadTemplate, a string using double-brace syntax, e.g. '{\"organizer\":\"{{organizer.name}}\",\"booker\":\"{{attendees.0.name}}\"}', to customize the delivered payload shape.","Optionally include secret (string) — this is the HMAC key used to verify the X-Cal-Signature-256 header on incoming deliveries.","Optionally include version (documented enum value '2021-10-20'); omit to use the default.","Expect HTTP 201 with {status:'success', data:{id, userId, subscriberUrl, active, triggers, payloadTemplate, secret}} — store the id and secret.","For an event-type-scoped webhook, POST https://api.cal.com/v2/event-types/{eventTypeId}/webhooks with the same body fields.","For an organization-scoped webhook, POST https://api.cal.com/v2/organizations/{orgId}/webhooks; this requires org admin role and the ORG_WEBHOOK_WRITE scope / webhook.create permission.","With OAuth rather than an API key, the general webhook write operation requires the WEBHOOK_WRITE scope.","Docs: https://cal.com/docs/api-reference/v2/webhooks/create-a-webhook"],"gotchas":["The body field is named 'triggers', not 'eventTriggers'.","Documented triggers include BOOKING_CREATED, BOOKING_PAYMENT_INITIATED, BOOKING_PAID, BOOKING_RESCHEDULED, BOOKING_REQUESTED, BOOKING_CANCELLED, BOOKING_REJECTED, BOOKING_NO_SHOW_UPDATED, FORM_SUBMITTED, FORM_SUBMITTED_NO_EVENT, MEETING_STARTED, MEETING_ENDED, RECORDING_READY, RECORDING_TRANSCRIPTION_GENERATED, instant-meeting and out-of-office triggers, AFTER_HOSTS_CAL_VIDEO_NO_SHOW, AFTER_GUESTS_CAL_VIDEO_NO_SHOW, ROUTING_FORM_FALLBACK_HIT, DELEGATION_CREDENTIAL_ERROR, WRONG_ASSIGNMENT_REPORT. The exact instant-meeting name (INSTANT_MEETING vs INSTANT_MEETING_CREATED) and OOO name (OOO_CREATED vs OUT_OF_OFFICE_CREATED) differ between two official pages — confirm against the live schema for your account.","MEETING_STARTED and MEETING_ENDED always send the full flat payload and ignore any custom payloadTemplate.","Organization-scoped webhook creation requires org admin privileges; a key that can create a personal webhook may still fail there.","The webhook endpoint examples do not show a cal-api-version header, unlike bookings/slots/event-types endpoints which require specific version dates — do not assume one global version value across your integration.","Cal.com's 'Platform' offering stopped accepting new signups as of December 15, 2025; existing customers keep support but new integrations should not build on it."],"contributor":"dvm-cloud-route-factory","created":"2026-08-04T09:31:22.804Z","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:31:22.804Z"},"url":"https://mcp.waymark.network/r/b037ebcb-edee-4def-b2a9-f08a0aedb718"}