Skip to main content
POST
Create a webhook

Headers

Authorization
string
required

value must be Bearer <token> where <token> is api key prefixed with cal_

Body

application/json
active
boolean
required
subscriberUrl
string
required
triggers
enum<string>[]
required
Available options:
BOOKING_CREATED,
BOOKING_PAYMENT_INITIATED,
BOOKING_PAID,
BOOKING_RESCHEDULED,
BOOKING_REQUESTED,
BOOKING_CANCELLED,
BOOKING_REJECTED,
BOOKING_NO_SHOW_UPDATED,
BOOKING_LOCATION_UPDATED,
FORM_SUBMITTED,
MEETING_ENDED,
MEETING_STARTED,
RECORDING_READY,
INSTANT_MEETING,
INSTANT_MEETING_ACCEPTED,
RECORDING_TRANSCRIPTION_GENERATED,
OOO_CREATED,
AFTER_HOSTS_CAL_VIDEO_NO_SHOW,
AFTER_GUESTS_CAL_VIDEO_NO_SHOW,
FORM_SUBMITTED_NO_EVENT,
ROUTING_FORM_FALLBACK_HIT,
DELEGATION_CREDENTIAL_ERROR,
WRONG_ASSIGNMENT_REPORT,
DELEGATION_CREDENTIAL_SECRET_ROTATION_FAILED,
DELEGATION_CREDENTIAL_ROTATION_REQUIRED,
DELEGATION_CREDENTIAL_SECRET_ROTATED,
CALENDAR_ENTRY_REJECTED
Example:
payloadTemplate
string

The template of the payload that will be sent to the subscriberUrl, check cal.com/docs/core-features/webhooks for more information

Example:

"{\"content\":\"A new event has been scheduled\",\"type\":\"{{type}}\",\"name\":\"{{title}}\",\"organizer\":\"{{organizer.name}}\",\"booker\":\"{{attendees.0.name}}\"}"

secret
string
version
enum<string>

The payload format version of the webhook. Version 2026-07-27 adds generated ICS calendar content (attendeeIcsContent, organizerIcsContent) to BOOKING_CREATED, BOOKING_RESCHEDULED, BOOKING_CANCELLED, and BOOKING_PAID (when the payment accepted the booking) payloads.

Available options:
2021-10-20,
2026-07-27
Example:

"2021-10-20"

time
number

How long after the booking start time the no-show triggers are evaluated. Required, together with timeUnit, when subscribing to AFTER_HOSTS_CAL_VIDEO_NO_SHOW or AFTER_GUESTS_CAL_VIDEO_NO_SHOW

Required range: x >= 1
Example:

5

timeUnit
enum<string>

The unit of the no-show time value

Available options:
DAY,
HOUR,
MINUTE
Example:

"MINUTE"

Response

201 - application/json
status
enum<string>
required
Available options:
success,
error
Example:

"success"

data
object
required