All Templates
Revenue Operations • Intermediate • 1 n8n workflow

Calendly Booking Sync System

Record every Calendly invitee in Airtable, match the booking to its Google Calendar event, optionally add an internal attendee, and alert sales in Slack for new meeting records. Missing or ambiguous matches stay visible instead of being guessed.

By Luka Salagishvili at Uptune

Last updated:

0

One system, 1 connected workflow

Start with the complete package and setup directions. The preview below shows the entry workflow. Import every listed workflow separately, then connect their references in your n8n instance.

Get the workflow Read the setup directions

Entry workflow preview

Powered by n8n.io

Read the architecture, decision rules, and exception handling in the source blueprint .

Continue with the related architecture guide .

How it works

What this workflow does

Give sales one Airtable meeting record per Calendly invitee. The workflow reacts to invitee.created, waits for Calendly's Google Calendar sync, finds the matching calendar event by exact invitee email and start and end times, and upserts the contact and meeting in Airtable. New meeting records can also post an internal Slack alert.

The workflow imports inactive with dryRun: true. Run with sample data uses a fictional booking and calendar event, so the preview does not call Calendly, Google Calendar, Airtable, or Slack.

This is a booking-capture layer for the Meeting Lifecycle & Outcome Verification blueprint; the Intelligent Lead Routing & Response blueprint covers inbound ownership before the meeting.

Match the calendar event without guessing

After a configurable wait (calendarWaitSeconds, 30 by default), the workflow reads calendar events in the booking window. A match requires the exact invitee email plus matching start and end timestamps. The result is matched, missing, or ambiguous. A missing or ambiguous result is still written to Airtable so the team can review it; the workflow does not pick the closest event.

When addInternalAttendeeEmail is configured and exactly one event matches, the workflow can add that internal attendee. The calendar update uses the event's If-Match ETag and suppresses attendee update emails. It skips events whose attendees are hidden or already contain the internal address.

Record and notify

Airtable upserts the contact by Email and the meeting by Booking ID, keeping one row per invitee. Slack is notified only when Airtable creates a new meeting row and a Slack channel is configured. A replay of the same invitee URI updates the existing rows and does not send a second Slack alert.

Validation scope

The supplied report confirms the isolated n8n 2.47.4 import, inactive state, and sample path. It also covers unique node IDs, intact connections, Code-node syntax, exact calendar matching, visible missing and ambiguous states, and Slack suppression for record replays. Live Calendly, Google Calendar, Airtable, and Slack calls require a staging test with your accounts.

How to use

Before you start

  • A current n8n instance.
  • A Calendly account that can register webhooks, connected to the Google calendar that receives its bookings.
  • Google Calendar OAuth access to that calendar.
  • An Airtable base with the two tables below.
  • An Airtable personal access token with record read and write access to the base.
  • An optional Slack bot token with chat:write and access to the target channel.

1. Import and run the sample

Download the complete package, extract the ZIP, and read the full setup guide. Import calendly-booking-sync.n8n.json and keep it inactive.

Open Run with sample data and choose Test workflow. Match calendar event should show matched and a fictional calendar event ID.

2. Create the Airtable tables

Use single-line text for the key fields and include time on both date fields.

TableFields
Contacts
Email (text), Name (text)
Meetings
Booking ID (text), Contact (link to Contacts), Event (text), Starts At and Ends At (date and time), Calendar Event ID (text), Calendar Status (text)

3. Configure credentials and Setup

Select the Calendly OAuth credential on Receive event. The trigger is scoped to the connected user. Select the Google Calendar OAuth credential on Find calendar events and Add internal calendar attendee.

Create a Header Auth credential using Authorization: Bearer <Airtable token> and select it on both Airtable nodes. If Slack is enabled, create a separate Header Auth credential with the bot token and select it on Notify sales in Slack.

In Setup, set calendarId, airtableBaseId, contactsTableId, and meetingsTableId. Leave addInternalAttendeeEmail blank for the first test. Set slackChannelId only when Slack is ready. Keep the default 30-second wait unless your calendar sync needs longer.

4. Test the booking paths

Use the supplied test payloads for a sample invitee, an unsupported cancellation, and a matching calendar event. Confirm that an exact match stores the event ID and matched status. Confirm that a late sync or two matching events still creates an Airtable row with missing or ambiguous status. Replay the same invitee URI and verify the row updates without another Slack message.

5. Go live

Set dryRun to false in staging. Create a test booking and check Google Calendar, Airtable, optional attendee addition, and Slack before enabling the production trigger. Use an Airtable view for unmatched meetings. This workflow tracks newly created bookings; add a separate cancellation workflow if the team needs to reconcile canceled or superseded rows.

Use the AI Inbound Lead Routing & Sales Follow-Up System for the inquiry that precedes the booking, and the Sales-Call Follow-Up Draft System after the meeting. The Client Onboarding & Project Handoff Automation takes over when the deal is signed. Read the Meeting Lifecycle & Outcome Verification blueprint for the full meeting process.

Use the HubSpot Intelligent Lead Routing & Response System when routing belongs in HubSpot rather than a standalone intake form.

By Luka Salagishvili at Uptune

Luka shares practical workflow templates and automation guides at Uptune, covering connected business tools, implementation steps, and testing before launch.

Luka on LinkedIn · Book a consultation

Get the complete automation system

Download the workflow and the supporting files together. Extract the ZIP, then import the workflow JSON listed below separately. Configuration, source code, and other supporting files are not n8n workflow imports.

Download complete package (ZIP)

1 connected n8n workflow

It imports inactive. Follow the package setup directions before activating schedules or delivery.

  1. Calendly booking sync workflow

    A Calendly trigger waits for calendar sync, matches the exact invitee and meeting time, optionally adds an internal attendee, upserts Airtable records, and alerts Slack for new meetings.

    calendly-booking-sync.n8n.json
    Download workflow 01

Setup, integration, and validation files

  • Complete setup guide

    Calendly and Google Calendar credentials, Airtable table fields, Slack setup, timing controls, and exception handling.

    README.md
  • Test payloads

    A sample invitee.created event, an unsupported cancellation, and a matching Google Calendar event.

    test-payloads.json
  • Supplied validation report

    Isolated n8n 2.47.4 import, sample-path result, structural checks, and file hashes. Live provider authentication and calls were not executed.

    validation-report.txt