An n8n community node package for Cal.com, built on the Cal.com API v2.
n8n ships a Cal.com trigger, but no action node — there is no built-in way to create anything in Cal.com from a workflow. This package closes that gap and adds a trigger with full event coverage.
Built-in Cal.com Trigger |
This package | |
|---|---|---|
| Create bookings / event types | — | ✅ |
| Webhook events | 4 | 28 |
Signature verification (x-cal-signature-256) |
— | ✅ |
| Team event type webhooks | — | ✅ |
| Payload version selection | — | ✅ |
Follow the community nodes installation guide and install:
@taurussoftware/n8n-nodes-calcom
- In Cal.com, go to Settings → Security → API keys and create a key.
- In n8n, create a Cal.com API credential and paste the key.
- Leave Host at
https://api.cal.comunless you run a self-hosted Cal.com instance.
Click Test — it calls GET /v2/me and must come back green.
Usable as an AI agent tool.
Booking
| Operation | Description |
|---|---|
| Create | Book a slot on an event type |
| Get | Retrieve a booking by UID |
| Get Many | List bookings, with filters and full cursor pagination |
| Reschedule | Move a booking to a new time |
| Cancel | Cancel a booking, optionally the whole recurring series |
| Confirm / Decline | Accept or reject a booking that requires confirmation |
| Mark Absent | Flag the host or an attendee as a no-show |
Event Type — for your own account or for a team (Scope selector).
| Operation | Description |
|---|---|
| Create | Create a bookable event type |
| Get | Retrieve an event type by ID |
| Get Many | List event types |
| Update | Change an existing event type |
| Delete | Permanently remove an event type |
Registers a Cal.com webhook when the workflow is activated and removes it again on deactivation.
- Events — all 28 Cal.com triggers, from
BOOKING_CREATEDthroughRECORDING_READY,FORM_SUBMITTEDandOOO_CREATED. - Scope — account-wide, a single event type, or a team event type.
- Secret — when set, every incoming request is verified against its
x-cal-signature-256header (HMAC-SHA256 over the raw body, compared in constant time). Requests that fail verification are dropped without starting the workflow. - Payload Version —
2021-10-20(default) or2026-07-27, which addsattendeeIcsContent/organizerIcsContentto booking payloads. - No-Show Delay — required by Cal.com when subscribing to
AFTER_HOSTS_CAL_VIDEO_NO_SHOWorAFTER_GUESTS_CAL_VIDEO_NO_SHOW.
The
AFTER_*_CAL_VIDEO_NO_SHOWevents are delivered verbatim by Cal.com andMEETING_STARTED/MEETING_ENDEDarrive flattened, so those payloads differ in shape from the other events.
The built-in Cal.com Trigger still works and is on API v2. Keep using it if the four standard booking events are all you need; reach for Cal.com V2 Trigger when you need broader event coverage, signature verification, or team-scoped webhooks. Both can run side by side — they use separate credentials and register separate webhooks.
Cal.com pins each endpoint group to its own cal-api-version, and sending the wrong value silently falls back to an older response shape:
| Endpoints | Version |
|---|---|
/v2/bookings (create, get, cancel, …) |
2026-02-25 |
/v2/bookings (list) |
2026-05-01 |
/v2/event-types |
2026-06-12 |
/v2/webhooks, /v2/teams |
none |
The version therefore cannot be set globally — each operation sends its own. These values live in nodes/CalCom/shared/constants.ts; that is the one place to update when Cal.com bumps a version.
Requires Node.js 22 or newer.
npm install
npm run dev # starts n8n with this node hot-reloaded
npm run lint # n8n community node linter
npm run build # compile to dist/The package has no runtime dependencies.