Resources · n8n integration

Calendly n8n integrationAutomate Calendly with n8n.

Every booking made in Calendly can start a workflow. The Calendly n8n integration is trigger only: one node listens to 2 webhook events, an invitee booking and an invitee canceling, then passes the booking data on. No action node ships with it, so what happens next is yours to build.

Verified Trustpilot reviews · AI, automation & growth agency

Why automate

What does the Calendly n8n integration actually do?

The Calendly n8n integration links a scheduling tool to an automation platform through a single node, the Calendly Trigger. n8n registers a webhook with Calendly when you activate the workflow, which is to say a URL that Calendly calls on its own, and every booking or cancellation arrives there in seconds. Version 2 of the node covers 2 events in 1 family, and that is the whole surface, because Calendly ships no action node in n8n.

Start with the booking log, the simplest one. invitee.created fires the second an invitee confirms a slot, the payload carries the booking details, and a row lands in Google Sheets or a record in Airtable. Nobody retypes a meeting into a tracker again.

Then the cancellation loop. invitee.canceled hits the same workflow, a short message goes to the right channel in Slack, and the invitee gets a rebooking email through Gmail instead of leaving a silent gap in the calendar.

Third pattern, the pre-call brief. A new booking starts a lookup on the invitee, the workflow gathers what is already known about that account and drops a summary where the person taking the call will actually read it. All of it hangs off one trigger node, because that is all Calendly gives n8n.

That last point shapes everything else. With no action node, creating an event, canceling one on someone's behalf or reading the list of scheduled events is not a drag-and-drop affair. Those calls go through HTTP Request, which reaches any endpoint of the Calendly API and reuses the same credential, the connection saved once in n8n's Credentials menu, through predefined authentication. Worth knowing before promising a two-way sync.

The known limits are short and worth reading twice. Calendly only exposes webhooks on its paid plans. The webhook fires for bookings Calendly manages, so a meeting typed straight into a connected calendar stays invisible. The callback URL has to be public HTTPS. And the node has no wildcard, so each of the 2 events is either ticked or ignored. If the platform choice is still open, the n8n review digs into the trade-offs and the n8n training covers building the workflow that sits behind the trigger.

Connect

How do you connect Calendly to n8n?

  1. 01

    Check the plan, then pick a method

    The Calendly Trigger runs on Calendly webhooks, and webhook access comes with the paid Calendly plans, so settle that question first. Then choose between the two supported methods: a Personal Access Token, quick to generate, or OAuth2, which needs a developer app but connects a real Calendly account through a consent screen.

  2. 02

    Generate the token or create the app

    For the token, open Integrations & apps in Calendly, go to API & Webhooks, then use Generate new token under Your Personal Access Tokens, name it something like n8n integration and copy it once. For OAuth2, create an app from My apps, set Kind of app to Web, choose an Environment type, and paste the OAuth Redirect URL shown in n8n as the Redirect URI.

  3. 03

    Grant the four required scopes

    The credential needs the same 4 scopes whichever method you picked: users:read for user information, webhooks:read and webhooks:write to list and create the webhook subscription the trigger depends on, and scheduled_events:read for scheduled event information. In the OAuth app they go in the Scopes section before Save & Continue. A Personal Access Token needs exactly the same 4, selected when you create it.

Triggers

What starts the workflow?

Calendly Trigger is the node that starts a workflow when something happens in Calendly. It listens to 2 events, listed below by family. Pick one or several, activate the workflow: n8n registers the webhook on your Calendly 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.

invitee.*2
  • invitee.
    • created
    • canceled

Configuration notes

01Set up the Calendly TriggerThe node handles the webhook plumbing on its own. Activate the workflow and n8n registers its callback URL with Calendly, which then posts there within seconds of a booking. The calls come from Calendly, so there is no frequency to tune.

The node handles the webhook plumbing on its own. Activate the workflow and n8n registers its callback URL with Calendly, which then posts there within seconds of a booking. The calls come from Calendly, so there is no frequency to tune.

Key parameters

  • Scope: required, and it decides whose bookings reach the workflow. Set it before activation, because it defines the perimeter the webhook subscription is created for.
  • Events: tick what the workflow should receive. Version 2 of the node exposes 2 of them and offers no wildcard option, so an event left unticked simply never arrives.
Use cases
one workflow per team calendar, Scope set once and both events ticked, gives a single entry point for every booking change instead of two half-built flows.
02Event CreatedThis one fires when a new Calendly event is created, meaning an invitee picked a slot and confirmed it. n8n receives the booking payload straight away, so the node placed right after the trigger already has something concrete to work with, the invitee and the chosen slot included, without a single extra call to fetch them.

This one fires when a new Calendly event is created, meaning an invitee picked a slot and confirmed it. n8n receives the booking payload straight away, so the node placed right after the trigger already has something concrete to work with, the invitee and the chosen slot included, without a single extra call to fetch them.

Key parameters

  • Events: tick Event Created to subscribe to invitee.created. Leave the other one out when new bookings matter and cancellations do not.
Use cases
a discovery call gets booked, the workflow writes the row, opens the task and posts the details to whoever owns the follow-up. Careful with one detail: a meeting typed directly into a connected calendar such as Google Calendar is not a Calendly booking, so it never reaches this event.
03Event CanceledCalendly sends this one when a scheduled event is canceled. It arrives on the same webhook as the creation event, so a single workflow can take both and branch on whichever came in.

Calendly sends this one when a scheduled event is canceled. It arrives on the same webhook as the creation event, so a single workflow can take both and branch on whichever came in.

When to use it
whenever a cancellation has to undo something the booking set in motion, a row, a task, a reminder, a prep document nobody needs anymore.
Use cases
the freed slot triggers a short note to the account owner and a rebooking link to the invitee, while the original row is flagged rather than deleted so the history stays readable at the end of the quarter. Same caveat as the creation event: a cancellation made outside Calendly, in the calendar app itself, does not fire it.
Need help

Need help automating Calendly with n8n?

A person reads every message.

FAQ

Calendly and n8n, common questions

01Is the Calendly n8n integration free?
Yes on the n8n side. The Calendly Trigger ships with n8n, so there is nothing to install and nothing extra to pay, whether you run n8n Cloud or a self-hosted instance under the Community Edition and its Sustainable Use license. The workflow is identical either way. The catch sits on the Calendly side: the node relies on Calendly webhooks, and Calendly only offers webhook access on its paid plans. On a free Calendly account the credential may well connect, but no event ever reaches the workflow. Check the plan before building anything around it.
02Which Calendly credentials and scopes does n8n need?
Two authentication methods work: a Personal Access Token or OAuth2. The token is the fast path, generated from the Integrations and apps page, under API and Webhooks, in the Your Personal Access Tokens section. OAuth2 needs a Calendly developer account, an app created in the developer console with Kind of app set to Web, an Environment type of Sandbox or Production, and the OAuth Redirect URL copied from n8n into the app as a Redirect URI. Either way the credential must carry four scopes: users:read, webhooks:read, webhooks:write and scheduled_events:read. A Personal Access Token needs exactly the same four, so select them at creation.
03What are the limits of Calendly in n8n?
The big one is that no Calendly action node exists. Only the trigger does, so n8n can listen to Calendly but cannot create, cancel or read events through a dedicated node. Anything beyond listening goes through HTTP Request, which calls any endpoint of the Calendly API and reuses the same credential via predefined authentication. The trigger itself covers 2 events in 1 family, invitee.created and invitee.canceled, with no wildcard, so whatever Calendly does outside those two stays invisible. And the webhook only fires for bookings Calendly manages itself, not for events created or edited in a connected calendar.
04Does the Calendly Trigger react in real time?
Yes. The node works by webhook, not by polling. When the workflow is activated, n8n registers its webhook URL with Calendly, and from that point Calendly pushes each booking or cancellation to that URL, where it arrives in a matter of seconds. Calendly does the calling, so there is no frequency to set and no wasted API calls sitting in the logs. One requirement comes with it: Calendly requires a public HTTPS callback URL. A local n8n receives nothing until it is exposed through a tunnel such as ngrok or Cloudflare Tunnel, with n8n configured to use that public HTTPS URL for webhooks.
05n8n or Make for Calendly?
It depends on what you weigh most. Make is a hosted automation platform with no self-hosting option, billed per operation, which suits a team that wants zero infrastructure and a predictable visual canvas. n8n runs on your own server or on n8n Cloud, the hosted offer, with the same workflow in both cases, which matters when booking data has to stay on infrastructure you control. The cost models differ as well, per operation on one side, per instance or plan on the other. For Calendly specifically, both sit on the same Calendly webhook, and since n8n has no Calendly action node, the real question is how comfortable you are calling the Calendly API yourself.