n8n + Calendly Integration: 5 Powerful Workflows You Can Build Today
Why Automate Calendly with n8n?
Calendly is excellent for scheduling, but the real work often begins after an event is created. Integrating it with n8n opens up a world of possibilities and provides several key benefits:
- Eliminate Manual Data Entry: Automatically sync invitee information with your CRM, spreadsheets, or project management tools. No more copy-pasting names and email addresses.
- Instant Follow-Up: Send personalized confirmation or welcome emails the moment an event is scheduled, ensuring your guests have all the information they need immediately.
- Streamline Project Kickoffs: For consultations or client meetings, you can instantly create a project, Trello card, or Asana task assigned to the right team member.
- Create Custom Notifications: Go beyond standard email alerts. Notify your team in Slack or Discord about new high-value meetings, or send yourself a custom SMS reminder.
- Centralize Your Operations: By connecting Calendly to your other tools via n8n, you create a single, unified system where your data flows seamlessly between applications. Hosting on a reliable platform like n8nautomation.cloud ensures these critical workflows are always on and running 24/7.
Step 1: Setting Up Your n8n Webhook Trigger
The foundation of the n8n Calendly integration is the Webhook node. This node generates a unique URL that can listen for incoming data from other services. When Calendly has an update (like a new invitee), it will send a payload of data to this URL, triggering your n8n workflow.
- Create a New Workflow: Start by creating a new, blank workflow in your n8n instance.
- Add the Webhook Node: Click the
+button to add a new node and search for "Webhook". Select it to add it to your canvas. The Webhook node will be your trigger. - Configure the Webhook:
- Leave the
Authenticationmethod as "None". - The
HTTP Methodshould be set toPOST. - The
Response Modeshould be "On Received".
- Leave the
- Copy Your Test URL: Look for the
Webhook URLssection in the node's parameter panel. You will see a "Test" URL. Click the copy icon next to it. This is the URL you'll give to Calendly. Important: Leave this n8n window open and proceed to the next step.
Your n8n instance is now listening for a test event. The next step is to configure Calendly to send one.
Step 2: Configuring Webhooks in Calendly
Now, let's switch over to your Calendly account. You need to tell Calendly where to send data when a new event occurs.
- Navigate to Integrations: Log in to Calendly, and from your main dashboard, click on "Integrations" in the top navigation menu.
- Select Webhooks: On the a_integrations page, find and click on the "Webhooks" option.
- Create a New Webhook: Click the "Add Webhook" or "New Webhook" button.
- Paste the URL: In the configuration form, paste the n8n Test URL you copied into the "URL" field.
- Choose the Event: In the "Events" section, you must select which actions trigger the webhook. For most use cases, the most important one is
Invitee Created. Select this event. You can also add `Invitee Canceled` if you want to build workflows that trigger when a user cancels. - Save the Webhook: Click the "Save" button to finalize the setup.
To finish the setup, Calendly needs to send a test event. Go to your Calendly scheduling page and book a test meeting with yourself. Once you complete the booking, switch back to your n8n workflow. You should see a success message and the data from Calendly will appear in the Webhook node's output.
Tip: The data from Calendly is nested inside body.payload. When using expressions to access data like the invitee's name, you'll typically use a path like {{ $json.body.payload.name }}.
Workflow 1: Add New Calendly Invitees to Google Sheets
This is a classic automation use case: creating a log of every person who books a meeting. It’s perfect for building a simple lead list or a registry for an event.
- Set up Google Sheets: Create a new Google Sheet with columns for "Name", "Email", "Meeting Date", and "Meeting Name".
- Add the Google Sheets Node: In your n8n workflow, add a `Google Sheets` node after the Webhook trigger. Connect your Google account under "Credential for Google".
- Configure the Node:
- Set the "Resource" to "Row" and "Operation" to "Append".
- In the "Sheet ID" field, select your spreadsheet from the list. Do the same for the "Sheet Name".
- Enable the "Read data from" option and select "Columns".
- Map the Data: Now, you connect the Calendly data to your sheet columns.
- For the "Name" column, click the "Add Expression" button and use the expression picker to select the name from the Webhook output. The expression will look something like:
{{ $json.body.payload.name }} - For "Email", use:
{{ $json.body.payload.email }} - For "Meeting Date", use:
{{ $json.body.payload.event.start_time }}(You may want to use a Date & Time node to format this first). - For "Meeting Name", use:
{{ $json.body.payload.event_type.name }}
- For the "Name" column, click the "Add Expression" button and use the expression picker to select the name from the Webhook output. The expression will look something like:
Execute the Google Sheets node to test it. A new row with the data from your test booking should appear instantly in your spreadsheet.
Workflow 2: Send Personalized Follow-Up Emails
Let's build a workflow to send a personalized email to the person who just booked a meeting. This is great for sending welcome information, pre-meeting questionnaires, or a simple thank you.
- Add the Send Email Node: Add a `Send Email` node (or a `Gmail`/`Outlook` node if you prefer) to your workflow. You'll need to configure your SMTP credentials first if using the general Send Email node.
- Configure the Email Details:
- To Address: Use an expression to pull the invitee's email from the webhook data:
{{ $json.body.payload.email }} - Subject Line: You can create a dynamic subject line, like:
Confirmation for your meeting: {{ $json.body.payload.event_type.name }} - Email Body (HTML): Craft the body of your email. You can use HTML for formatting and inject Calendly data anywhere you need it.
- To Address: Use an expression to pull the invitee's email from the webhook data:
An example email body could be:
<p>Hi {{ $json.body.payload.name }},</p>
<p>Thanks for scheduling the "{{ $json.body.payload.event_type.name }}" meeting with us.</p>
<p>Your meeting is confirmed for: <strong>{{ new Date($json.body.payload.event.start_time).toLocaleString() }}</strong>.</p>
<p>We look forward to speaking with you!</p>
This workflow ensures every new invitee gets a professional, personalized confirmation the moment they book.
Workflow 3: Create Trello Cards for New Client Bookings
If you use Calendly for client consultations, you can automate the first step of your project management process. This workflow will create a Trello card for each new client meeting.
- Add an IF Node (Optional): If you only want this to trigger for specific meetings (e.g., "New Client Consultation"), add an `IF` node first. Set a condition to check the meeting name:
{{ $json.body.payload.event_type.name }}contains "Consultation". - Add the Trello Node: Connect a `Trello` node to the "true" output of the IF node (or directly to the webhook if you skipped step 1). Connect your Trello credentials.
- Configure the Trello Card:
- Board: Select the Trello board where you manage new clients.
- List: Choose the list you want the new card to be created in, such as "New Leads" or "To-Do".
- Name: Set the card title. A good format is:
New Client: {{ $json.body.payload.name }} - Description: Add more details to the card's description using expressions. You can include the meeting time, the invitee's email, and even their answers to any custom questions from your Calendly form, which are available in `body.payload.questions_and_answers`.
Now, whenever a specific type of meeting is booked, a task is automatically created and ready for your team to act on.
Deploying Your Calendly Automation
Once you have built and tested your workflow, you're ready to make it live.
- Activate Your Workflow: In the n8n editor, toggle the "Active" switch in the top-left corner to on. This saves the workflow and makes it ready to be triggered.
- Switch to the Production URL: Go back to your `Webhook` node. You will now see a "Production" URL in addition to the "Test" URL. Copy this Production URL.
- Update Calendly: Return to your Webhook configuration in Calendly. Edit the webhook you created earlier and replace the test URL with your new production URL. Save the changes.
That's it! Your n8n Calendly integration is now live. Your workflow will automatically run in the background every time a new meeting is scheduled. Using a managed service like n8nautomation.cloud ensures your n8n instance has guaranteed uptime, so you never miss a trigger from Calendly, even if it happens overnight.