Cal.com webhook
Bookings created, cancelled, rescheduled or waiting for your confirmation.
Setup
- In PingLoom open Webhooks, choose New webhook source, pick Cal.com and create it. Copy the endpoint URL and the secret. The secret is shown once.
- In Cal.com open Settings, then Developer, Webhooks, and choose New.
- Paste the PingLoom URL as the Subscriber URL, switch on Booking Created, Booking Cancelled, Booking Rescheduled and Booking Requested, and paste the PingLoom secret into Secret.
- Use Ping test in Cal.com or book a test slot. The request appears under Recent requests on the PingLoom source page.
Verification
Cal.com sends an x-cal-signature-256 header, the hex HMAC-SHA256 of the request body, keyed with the secret you set on the webhook. Cal.com signs no timestamp and sends no event id, so PingLoom builds one from the trigger, the booking id and the start time to drop repeats. The Cal.com documentation does not state the encoding; hex is taken from the Cal.com source code.
Events
You choose which events become alerts when you create the source, and you can change it later on the source page.
| Event | Priority | On by default |
|---|---|---|
| Booking needs confirmation | high | Yes |
| Booking created | normal | Yes |
| Booking cancelled | normal | Yes |
| Booking rescheduled | normal | Yes |
PingLoom keeps the event type name, start and end time, status and the attendees' emails masked (g***@example.com). Names are never copied, and the Cal.com booking title is not used because it normally contains them.