Productivity · n8n

Automatically Log Every Calendly Booking as a Notion Page for Consultants

When a new meeting is booked through Calendly, this workflow instantly creates a structured Notion page with the client details, meeting time, and event type. Consultants never have to manually copy booking information again.

difficulty Beginnersetup 30 minresult Every new Calendly booking automatically becomes a Notion database entry with client name, email, meeting time, and event type — ready for your pre-call prep.
  1. 1

    Set up the Calendly Webhook Trigger

    Add a Calendly Trigger node to your canvas. Connect your Calendly account using an API key (found in Calendly under Account > Integrations > API & Webhooks). Set the Events field to invitee.created so the workflow fires only when someone books a meeting. Copy the webhook URL from this node and paste it into your Calendly webhook settings.

  2. 2

    Extract the Key Booking Fields

    Add a Set node after the trigger. Create four fields: set clientName to {{ $json.payload.invitee.name }}, clientEmail to {{ $json.payload.invitee.email }}, meetingTime to {{ $json.payload.event.start_time }}, and eventType to {{ $json.payload.event_type.name }}. This cleans up the raw webhook data into simple variables for the next step.

  3. 3

    Create a Notion Database Page

    Add a Notion node and set the operation to Create a Database Page. Connect your Notion account via the built-in OAuth integration. Set Database ID to the ID of your bookings database in Notion (copy it from the database URL). Map the Notion page properties: Name to {{ $json.clientName }}, Email to {{ $json.clientEmail }}, Meeting Time to {{ $json.meetingTime }}, and Event Type to {{ $json.eventType }}. Make sure your Notion database has matching property names and types (Text and Date).

Frequently asked questions

How do I find my Notion Database ID?

Open your Notion database in a browser. The URL will look like notion.so/yourworkspace/abc123def456. The long string of characters after the last slash and before any question mark is your Database ID. Copy and paste that into the Notion node's Database ID field.

Why does Calendly require a paid plan for webhooks?

Calendly restricts webhook access to their Standard plan and above because webhooks use their API infrastructure. As an alternative on the free plan, you can use Calendly's Zapier integration to forward events to an n8n webhook URL, though this adds an extra step.

Can I add extra fields like meeting notes or a preparation checklist to the Notion page?

Yes. In the Notion node you can add as many property mappings as you like. For static content like a checklist template, simply add a `Children` block in the Notion node parameters with your default text. You can also add another `Set` node before the Notion node to build any additional fields you need.

About this recipe. Recipes on FlowRecipesHub are written for business owners, not developers, and are tested before publishing — how recipes get made. Some ingredient links are affiliate links that cost you nothing — full disclosure.