n8n + Calendly: automating confirmation, reminders, and follow-up for appointments
Published 31 July 2026 · 5 min read
Calendly solves one specific problem: finding a time slot without a ten-email back-and-forth. But once the appointment is booked, the real work starts — confirming, reminding, preparing context, following up on a cancellation — and that's where most users fall back into manual tasks. A systematic review by Hasvold and Wootton, Use of telephone and SMS reminders to improve attendance at hospital appointments: a systematic review (Journal of Telemedicine and Telecare, 2011 — see on Google Scholar), found that an automated reminder cuts appointment no-shows by roughly 29%, and a reminder with human contact by roughly 39%. A reminder alone is only part of the answer — but it's the part an n8n workflow can industrialize with zero extra effort per booking. This guide covers how to connect n8n to Calendly to automate everything that follows the booking itself.
Why automate beyond the booking itself
Calendly already sends its own email notifications and offers native reminders. The point of routing through n8n isn't to duplicate that — it's to connect it to the rest of your stack: logging every appointment in your CRM, sending an SMS reminder alongside the email (the channel that carries the most weight in reducing no-shows, per the study cited above), preparing a brief before the call from the contact's history, and above all reacting automatically to a cancellation instead of discovering it by opening your calendar. None of these exist natively in Calendly; all of them are built with standard n8n nodes.
Step 1 — Receiving events with the Calendly Trigger
n8n ships a native Calendly Trigger node (n8n-nodes-base.calendlyTrigger), authenticated via a personal access token or OAuth2. It subscribes to Calendly's organization webhooks and listens for two events:
invitee.created— an appointment was just booked.invitee.canceled— an appointment was just canceled, by you or by the invitee.
One thing worth knowing: a reschedule fires both events in sequence (the old slot gets canceled, then the new one gets created). In that case, the invitee.created payload includes a reference back to the original event — an IF node on that field lets you tell a genuine first booking apart from a simple time change, so you don't send a welcome email to someone who just moved their slot.
Calendly's organization webhooks require a paid plan (Standard or above): on the free plan, no webhook subscription can be created, and the trigger will never receive anything.
Step 2 — Normalizing and logging the appointment
Right after the trigger, a Set node normalizes Calendly's sometimes verbose payload into a handful of usable fields: invitee_name, invitee_email, date_time, event_type, meeting_link, invitee_notes (the answers to questions asked during booking, often rich in context).
This is the right point to log the appointment — into a Supabase table to keep a history, or directly into your CRM via the HubSpot or Pipedrive nodes covered in our CRM sync guide. An appointment attached to the CRM contact record gives anyone who opens that record the full picture, without switching tools.
Step 3 — A reminder that combines email and SMS
Calendly's native confirmation email goes out immediately, but the reminder that actually reduces no-shows needs to land shortly before the appointment, not at booking time. Good practice in n8n is a Wait node (n8n-nodes-base.wait) configured to resume execution at a specific date — computed by subtracting, say, 3 hours from date_time with a Luxon expression. Our Wait node guide covers the classic pitfalls of this kind of delayed execution (executions piling up, a workflow staying active for hours).
Once the delay elapses, two channels beat one: a standard reminder email, and an SMS via Twilio for higher-stakes appointments (a paid consultation, a sales meeting), following the pattern in our Twilio guide. That's precisely the combination that gets the best results in the literature cited in the introduction — SMS reaches people who don't systematically check their inbox in the hours before an appointment.
Step 4 — Preparing a brief before the call
For sales or consulting appointments, an AI Agent can automatically prepare a context summary as soon as the booking is confirmed: history of prior exchanges (pulled from the CRM or a vector store), notes the invitee left in the Calendly form, and the likely purpose of the meeting inferred from those elements. The custom-tools pattern covered in our guide on AI Agent tools in n8n applies directly here: one tool that queries the CRM, another that queries a document base if the contact has already exchanged with you elsewhere, as in our RAG with Supabase guide. The result — a three- or four-line summary posted to Slack an hour before the call — makes a real difference to the quality of the meeting for the host.
Step 5 — Handling cancellations and no-shows
On invitee.canceled, the most useful workflow isn't just deleting the CRM row — it's immediately offering a reschedule. An AI-generated email, in the spirit of our reply drafts guide, with the Calendly link attached and a tone matched to the cancellation reason (if the invitee provided one), converts part of your cancellations into simple postponements instead of appointments lost for good.
A genuine no-show — the invitee who simply doesn't show up without canceling — triggers no Calendly webhook at all, since nothing happened on the invitee's side. The only reliable way to detect it in n8n is a check after the fact: a Schedule Trigger that, every hour, queries the appointment table logged in step 2 and flags as no-show any past appointment without manual confirmation that it took place — a signal a salesperson or advisor can then use to prioritize follow-ups.
Securing the Calendly webhook
Like any publicly exposed webhook, the Calendly Trigger's endpoint deserves signature verification rather than blind trust in the request's origin. Calendly signs its webhooks with a shared secret (Calendly-Webhook-Signature header); the principles covered in our guide on securing n8n webhooks — HMAC verification, rejecting unsigned requests — apply here without modification.
Going further
Email reminders, CRM logging, and AI-driven cancellation follow-ups are already part of the workflows shipped in the AI Inbox Pack (€79), which includes a reply-drafting workflow that plugs directly into post-cancellation follow-up. If your appointment volume justifies an AI brief fed by a full knowledge base (past exchanges, contracts, internal notes), the RAG Assistant Pack (€119) provides the ingestion and retrieval pipeline, ready to wire into the AI Agent described in step 4.
Calendly handles the visible part of the appointment very well — the booking. Everything that determines whether the appointment actually happens and goes well is built with a handful of extra n8n nodes, once, and then it just runs.
FAQ
Frequently asked questions
Can n8n's Calendly Trigger node also create or modify an event, not just detect one?
No. The n8n Calendly Trigger is listen-only: it reacts to the invitee.created and invitee.canceled events emitted by Calendly, but there is no official action node to create slots or modify an event from n8n. To act on Calendly (canceling an appointment, for example), you need an HTTP Request node configured against Calendly's REST API, with a personal access token or an OAuth2 connection.
How do I tell a new booking apart from a reschedule in the workflow?
Calendly reschedules an event by canceling the old one and creating a new one: a reschedule therefore fires both invitee.canceled and invitee.created, in that order. The invitee.created payload includes a field referencing the original event when it's a reschedule; an IF node on that field lets you route a genuine first booking differently from a simple time change, so you don't resend a welcome email to someone who just moved their slot.
Do I need a paid Calendly plan to use webhooks with n8n?
Yes: organization webhooks (used by the n8n Calendly Trigger node) require a paid Calendly plan (Standard or above). The free plan doesn't allow creating a webhook subscription, so the n8n trigger will never receive any event while the account stays on the free tier.
Bundle FlowKit Complet
€269