/settings/developer/webhooks
and proceed to enter the following details:
Booking Cancelled
, Booking Created
, Booking Rescheduled
, Booking Rejected
, Booking Requested
, Booking Paid
, Booking Payment Initiated
, Booking No-Show Updated
, Meeting Started
, Meeting Ended
, Recording Ready
, Recording Transcription Generated
, Instant Meeting Created
, Out of Office Created
, After Hosts Cal Video No-Show
, After Guests Cal Video No-Show
, Form Submitted
, and Form Submitted (No Event)
.
Event | Triggers When… |
---|---|
Booking Created | A new booking is successfully created. |
Booking Cancelled | A booking is cancelled by the host, attendee, or via API. |
Booking Rejected | A booking request is explicitly rejected by the host. |
Booking Requested | A booking requiring confirmation from the host is submitted. |
Booking Paid | Payment for a booking is completed. |
Booking Payment Initiated | A payment attempt is initiated (before confirmation). |
Booking No-Show Updated | A host or attendee is marked as a no-show after the meeting. |
Meeting Started | At the scheduled start time of the meeting. |
Meeting Ended | At the scheduled end time of the meeting. |
Recording Ready | A meeting recording is available and ready to access. |
Recording Transcription Generated | A transcription of the meeting recording is successfully generated. |
Instant Meeting Created | An instant (ad-hoc) meeting is created. |
Out of Office Created | A user adds a new Out of Office entry to their availability. |
After Hosts Cal Video No-Show | The host did not show up to a Cal Video meeting in the first n minutes, as set up in the configuration. |
After Guests Cal Video No-Show | The attendee did not show up to a Cal Video meeting in the first n minutes, as set up in the configuration. |
Form Submitted | A form is submitted as part of a routing form with a scheduled event. |
Form Submitted (No Event) | A form is submitted without a scheduled event (form-only flow). |
hmac
, and update that with the webhook payload received to create an SHA256.
(X-Cal-Signature-256)
with the one created using the secret key and the body of the payload. If they don’t match, the received payload was adulterated and cannot be trusted.
{{type}}
represents the event type slug and {{title}}
represents the title of the event type. Note that the variables should be added with a double parenthesis as shown above. Here’s a breakdown of the payload that you would receive via an incoming webhook, with an exhaustive list of all the supported variables provided below:
Variable | Type | Description |
---|---|---|
triggerEvent | String | The name of the trigger event [BOOKING_CREATED, BOOKING_RESCHEDULED, BOOKING_CANCELLED, MEETING_ENDED, BOOKING_REJECTED, BOOKING_REQUESTED, BOOKING_PAYMENT_INITIATED, BOOKING_PAID, MEETING_STARTED, RECORDING_READY, FORM_SUBMITTED] |
createdAt | Datetime | The Time of the webhook |
type | String | The event type slug |
title | String | The event type name |
startTime | Datetime | The event’s start time |
endTime | Datetime | The event’s end time |
description | String | The event’s description as described in the event type settings |
location | String | Location of the event |
organizer | Person | The organizer of the event |
attendees | Person[] | The event booker & any guests |
uid | String | The UID of the booking |
rescheduleUid | String | The UID for rescheduling |
cancellationReason | String | Reason for cancellation |
rejectionReason | String | Reason for rejection |
team.name | String | Name of the team booked |
team.members | String[] | Members of the team booked |
metadata | JSON | Contains a metadata of the booking, including the meeting URL (videoCallUrl) in case of Google Meet and Cal Video |
Variable | Type | Description |
---|---|---|
name | String | Name of the individual |
Email of the individual | ||
timezone | String | Timezone of the individual (“America/New_York”, “Asia/Kolkata”, etc.) |
language?.locale | String | Locale of the individual (“en”, “fr”, etc.) |