Sync Cal.com with Your CRM
Connect Cal.com to Attio via webhooks and n8n so booked meetings automatically create or update CRM records
Instructions
Sync Cal.com with Your CRM
Prerequisites
- Cal.com account with API access
- n8n instance running (see
n8n-mcp-setup) - Attio MCP server connected (see
attio-mcp-setup)
Steps
-
Set up a Cal.com webhook via API. Use the Cal.com API to create a webhook for booking events:
POST /api/v1/webhooks { "subscriberUrl": "https://your-n8n-instance.com/webhook/calcom-booking", "eventTriggers": ["BOOKING_CREATED"], "active": true }This fires when someone books a meeting.
-
Create an n8n workflow for the webhook. Build an n8n workflow with a Webhook Trigger node listening at the URL configured above. This workflow will process every new booking.
-
Parse the webhook payload. Use a Set node in n8n to extract: booker's name, email, company (from booking form custom fields), event type, and scheduled time from the Cal.com webhook JSON.
-
Check if contact exists in Attio. Use the Attio MCP or API to search by email. If the contact exists, update their record with a note about the upcoming meeting and move their deal to "Meeting Scheduled" stage.
-
Create records for new contacts. If the contact is new: create a Person record in Attio with their info, create a linked Company record if needed, and create a Deal at the "Meeting Booked" stage. Use the Attio MCP
create_recordoperations. -
Send tracking events. Fire a PostHog event via the API:
posthog.capture('meeting_booked', { source: eventType, lead_email: bookerEmail })Optionally send a Slack notification to the sales team with booking details so they can prepare.