- Home
- Resources
- Integrations
- Cal.com
Cal.com n8n integrationAutomate Cal.com with n8n.
Wondering what the Cal.com n8n integration actually covers? It listens, and that is all it does. One node ships with n8n, the Cal.com Trigger, and it receives 4 webhook events spread over 4 booking families. Anything you want to write back into Cal.com goes through the HTTP Request node.
Verified Trustpilot reviews · AI, automation & growth agency
What does the Cal.com n8n integration actually do?
The Cal.com n8n integration runs one way. n8n ships a single Cal.com node, the Cal.com Trigger, and its job is to sit and wait. Cal.com calls an n8n URL every time something happens to a booking, and the workflow starts with that booking payload already loaded. There is no Cal.com action node in the catalog, so n8n reads your calendar events and writes nothing back through a dedicated node.
The first pattern is the welcome pack. A prospect picks a slot, BOOKING_CREATED fires, and the workflow logs the attendee, the event type and the start time as a row in Google Sheets before pinging the account owner. The sales rep opens the call already knowing who booked and from which page.
The second pattern is damage control on cancellations. BOOKING_CANCELLED lands, the workflow drops a short message in the right channel through Slack, and marks the slot as freed in your tracker. For a team selling demos, a cancellation that nobody sees for two days is a lost week.
The third pattern starts once the call is over. MEETING_ENDED is the cue for follow-up: draft the recap with Openai, then send it from the rep's own inbox with Gmail. Same day, every time, without anyone remembering to do it.
Where the trigger stops, HTTP Request takes over. Nothing on the Cal.com side runs through a dedicated action node here, because the catalog lists 0 operations for this tool. The HTTP Request node calls any Cal.com API endpoint and reuses the same credential through predefined authentication, so you stay on one set of keys.
Two limits worth knowing before you plan a build. The trigger has no wildcard option, so every event you want has to be checked in the Events list one by one. And the payload is whatever Cal.com sends: if a field you need is missing, the Payload Template option is where you shape it. If you are still choosing a platform, the n8n review goes through the trade-offs in detail.
How do you connect Cal.com to n8n?
- 01
Generate an API key in Cal.com
You need a Cal.com account first. From there, generate an API key, which is the string Cal.com uses to recognize the calls coming from n8n. Cal.com documents where new keys are created and how they are scoped, and the trigger supports exactly one authentication method: API key. Copy the key once, because most tools show it a single time.
- 02
Create the credential in n8n
In the Credentials menu, create a Cal.com credential. It asks for two things. API Key takes the string you just generated. Host takes
https://api.cal.comif you are on the cloud version of Cal.com, or the address of your own instance if you self-host. A credential is created once and reused by every workflow that needs it. - 03
Add the trigger and activate the workflow
Drop the Cal.com Trigger on the canvas, pick the credential from the dropdown, then check the events you care about under Events. Activating the workflow is what registers the webhook, meaning the URL Cal.com will call. A webhook is just that: an address the tool hits the moment something happens, instead of n8n asking over and over.
What can the Cal.com Trigger listen to?
Cal.com Trigger is the node that starts a workflow when something happens in Cal.com. It listens to 4 events, listed below by family. Pick one or several, activate the workflow: n8n registers the webhook on your Cal.com account.
What you see in n8n
Every event, by family
One row per object, one chip per action. The event to tick in the node is object.action; hover a chip to read exactly when it fires.
BOOKING_CANCELLED.*1BOOKING_CANCELLED. BOOKING_CANCELLED
BOOKING_CREATED.*1BOOKING_CREATED. BOOKING_CREATED
BOOKING_RESCHEDULED.*1BOOKING_RESCHEDULED. BOOKING_RESCHEDULED
MEETING_ENDED.*1MEETING_ENDED. MEETING_ENDED
Configuration notes
01Configure the Cal.com Trigger
One node covers the whole integration, and its setup is short. You pick the events, n8n registers the webhook with Cal.com when the workflow goes live, and each notification arrives within seconds of the booking changing. The node runs on version 2, with options that let you narrow what comes through.
Key parameters
- Events: the list of notifications to subscribe to. There is no catch-all value here, so check each of the 4 events you actually want.
- API Version: which Cal.com API version the trigger talks to, useful when your instance is behind the cloud.
- App ID: limits the workflow to bookings coming from one app instead of the whole account.
- EventType Name or ID: picks a single event type to monitor, from the list or through an expression such as
{{ $json.eventTypeId }}. - Payload Template: reshapes the body Cal.com sends, when the default structure does not match what the next node expects.
02Booking Created
Someone picked a slot. BOOKING_CREATED fires as soon as the booking is confirmed on the Cal.com side, and the payload carries the meeting that was just added to the calendar. This is the busiest of the 4 events on most accounts, since it covers every new reservation regardless of who made it.
Key parameters
- Events: check Booking Created and leave the rest unticked if creation is all you care about.
- EventType Name or ID: keeps the workflow on one event type, so a demo booking does not run the onboarding branch.
03Booking Rescheduled
A meeting moved. BOOKING_RESCHEDULED covers the case where an existing booking changes slot rather than disappearing, which matters because a reschedule is not a cancellation followed by a creation. Treating it as one duplicates reminders and confuses whatever you built downstream.
Key parameters
- Events: check Booking Rescheduled to receive the new slot for a meeting that already existed.
- Payload Template: shapes the body so the next node gets the fields it needs in the structure it expects.
04Booking Cancelled
The slot is free again. BOOKING_CANCELLED arrives when a Cal.com event is cancelled, and it is the event teams notice last, because nothing shows up on a calendar to remind them. A workflow that catches it turns a silent hole in the day into an alert someone can act on.
Key parameters
- Events: check Booking Cancelled on its own for an alerting workflow, or alongside Booking Created for a full audit trail.
- App ID: narrows the subscription to bookings from one app, handy when several tools write into the same account.
05Meeting Ended
The call is over. MEETING_ENDED fires once a Cal.com event or meeting has finished, which makes it the only one of the 4 events that is about what happened rather than what was planned. Everything that belongs after a conversation hangs off this one.
Key parameters
- Events: check Meeting Ended to start the workflow at the end of the call rather than at booking time.
- API Version: pins which Cal.com API version the trigger uses, worth setting when a self-hosted instance lags behind.
Need help automating Cal.com with n8n?
A person reads every message.