Calendly · event: invitee.created ·
content type: application/json
This is a representative sample — fake IDs, real structure. To see a payload with your data, point the provider at a capture URL (button below).
One click creates a free capture bin with this exact payload already in it — pretty-printed, headers inspectable, replayable to your own endpoint:
Then paste the bin's URL into Calendly's webhook settings to capture a real delivery. No signup.
content-type: application/json calendly-webhook-signature: t=1788456679,v1=5a4251be87655b31fe14bb19b1c4ce59bb8fad95e6e32b971aa1f423baf64a1d
{
"created_at": "2026-08-30T17:51:19.000000Z",
"created_by": "https://api.calendly.com/users/AAAAAAAAAAAAAAAA",
"event": "invitee.created",
"payload": {
"cancel_url": "https://calendly.com/cancellations/AAAAAAAAAAAAAAAA",
"created_at": "2026-08-30T17:51:18.327602Z",
"email": "test@example.com",
"event": "https://api.calendly.com/scheduled_events/AAAAAAAAAAAAAAAA",
"name": "John Doe",
"new_invitee": null,
"old_invitee": null,
"questions_and_answers": [],
"reschedule_url": "https://calendly.com/reschedulings/AAAAAAAAAAAAAAAA",
"rescheduled": false,
"status": "active",
"text_reminder_number": null,
"timezone": "America/New_York",
"tracking": {
"utm_campaign": null,
"utm_source": null,
"utm_medium": null,
"utm_content": null,
"utm_term": null,
"salesforce_uuid": null
},
"updated_at": "2026-08-30T17:51:18.341657Z",
"uri": "https://api.calendly.com/scheduled_events/AAAAAAAAAAAAAAAA/invitees/AAAAAAAAAAAAAAAA",
"scheduled_event": {
"uri": "https://api.calendly.com/scheduled_events/AAAAAAAAAAAAAAAA",
"name": "15 Minute Meeting",
"status": "active",
"start_time": "2026-09-02T14:15:00.000000Z",
"end_time": "2026-09-02T14:30:00.000000Z",
"event_type": "https://api.calendly.com/event_types/AAAAAAAAAAAAAAAA",
"location": {
"type": "physical",
"location": "Calendly Office",
"additional_info": "Please check in at the front desk."
},
"invitees_counter": {
"total": 1,
"active": 1,
"limit": 1
},
"created_at": "2026-08-30T17:51:18.327602Z",
"updated_at": "2026-08-30T17:51:18.341657Z",
"event_memberships": [
{
"user": "https://api.calendly.com/users/AAAAAAAAAAAAAAAA",
"user_email": "user@example.com",
"user_name": "John Smith"
}
],
"event_guests": []
}
}
}
Calendly-Webhook-Signature =
t=<unix>,v1=<hex>, where v1 is hex HMAC-SHA256
over t + "." + rawBody (signing key here:
hookden_calendly_sample_signing_key). Try it in the
signature debugger (Calendly provider), or set
scheme "Calendly" on a capture bin for live ✓/✗ badges. Stripe verification code works
verbatim if you point it at the right header.signing_key param at subscription creation — no key, no signature
header). OAuth apps: Calendly auto-generates one key for all the app's webhooks — and
if you lose it, the documented recovery path is emailing
support+developer@calendly.com. Store it like a credential.301 from a trailing-slash rewrite fails every delivery (same trap as
GitHub, which follows no redirects; contrast Postmark, which follows up to 10 hops).
Failures retry with exponential back-off for up to 24 hours; after that the webhook is
disabled and must be re-created — there is no re-enable button.t is older than ~3 minutes
as replay-attack protection — which also bites you when replaying old captures at a
strict handler.invitee.canceled
(with rescheduled: true) plus a fresh invitee.created (with
old_invitee set). Handlers that treat each event independently
double-process every reschedule — branch on rescheduled /
old_invitee first. The envelope is always
{event, created_at, created_by, payload}.Reproduce this delivery against any endpoint (your handler, a bin, staging):
$ curl -X POST https://your-endpoint.example/hook \
-H 'content-type: application/json' \
-H 'calendly-webhook-signature: t=1788456679,v1=5a4251be87655b31fe14bb19b1c4ce59bb8fad95e6e32b971aa1f423baf64a1d' \
-d '{
"created_at": "2026-08-30T17:51:19.000000Z",
"created_by": "https://api.calendly.com/users/AAAAAAAAAAAAAAAA",
"event": "invitee.created",
"payload": {
"cancel_url": "https://calendly.com/cancellations/AAAAAAAAAAAAAAAA",
"created_at": "2026-08-30T17:51:18.327602Z",
"email": "test@example.com",
"event": "https://api.calendly.com/scheduled_events/AAAAAAAAAAAAAAAA",
"name": "John Doe",
"new_invitee": null,
"old_invitee": null,
"questions_and_answers": [],
"reschedule_url": "https://calendly.com/reschedulings/AAAAAAAAAAAAAAAA",
"rescheduled": false,
"status": "active",
"text_reminder_number": null,
"timezone": "America/New_York",
"tracking": {
"utm_campaign": null,
"utm_source": null,
"utm_medium": null,
"utm_content": null,
"utm_term": null,
"salesforce_uuid": null
},
"updated_at": "2026-08-30T17:51:18.341657Z",
"uri": "https://api.calendly.com/scheduled_events/AAAAAAAAAAAAAAAA/invitees/AAAAAAAAAAAAAAAA",
"scheduled_event": {
"uri": "https://api.calendly.com/scheduled_events/AAAAAAAAAAAAAAAA",
"name": "15 Minute Meeting",
"status": "active",
"start_time": "2026-09-02T14:15:00.000000Z",
"end_time": "2026-09-02T14:30:00.000000Z",
"event_type": "https://api.calendly.com/event_types/AAAAAAAAAAAAAAAA",
"location": {
"type": "physical",
"location": "Calendly Office",
"additional_info": "Please check in at the front desk."
},
"invitees_counter": {
"total": 1,
"active": 1,
"limit": 1
},
"created_at": "2026-08-30T17:51:18.327602Z",
"updated_at": "2026-08-30T17:51:18.341657Z",
"event_memberships": [
{
"user": "https://api.calendly.com/users/AAAAAAAAAAAAAAAA",
"user_email": "user@example.com",
"user_name": "John Smith"
}
],
"event_guests": []
}
}
}'