
Calendly Integration with Zoho CRM — Setup Guide 2026
When someone books through Calendly, that event should automatically create or update a Zoho CRM contact, log the meeting as a CRM activity, and — when the meeting is completed — trigger any follow-up automation you have set up. Without this integration, your sales team is manually cross-referencing calendar invites with CRM records. That's a gap where leads fall through.
This guide covers four methods to connect Calendly and Zoho CRM, from no-code options (Zapier, Zoho Flow) to a direct webhook + API approach that gives you full control. It also covers Zoho Bookings as a native alternative if you're willing to replace Calendly.
What the Integration Should Do
Before you build anything, define the exact data flow you need. Most businesses need some combination of:
- On booking: Create a new Contact (or Lead) in Zoho CRM if one doesn't exist for that email. Update the existing record if it does.
- On booking: Create a CRM Activity (type: Meeting) linked to the Contact or Deal, with the meeting date, time, and Calendly join URL.
- On booking: Update a custom field on the Lead or Deal — e.g., set "Meeting Scheduled" = Yes, or update a Stage field.
- On meeting completion (event start time has passed): Update deal stage to "Meeting Done", trigger a follow-up task, or start a CRM email sequence.
- On cancellation: Log the cancellation as a note on the CRM record and create a follow-up task.
Not all methods support all five of these. Know what you need before choosing an approach.
Method 1 — Zapier (No-Code, Fastest Setup)
Zapier has a native Calendly integration and a native Zoho CRM integration. You can connect them in 10 minutes without any developer work.
Supported Calendly triggers in Zapier:
- Invitee Created (new booking)
- Invitee Canceled (cancellation)
Supported Zoho CRM actions in Zapier:
- Create Lead
- Create Contact
- Create/Update Contact or Lead (upsert)
- Create Activity
- Update Record
Zap 1 — Create or update a CRM Contact on booking:
- Trigger: Calendly → Invitee Created
- Action: Zoho CRM → Create or Update Contact
- Map fields:
- Calendly Invitee Name → Contact: First Name + Last Name (use Zapier's name splitter formatter)
- Calendly Invitee Email → Contact: Email
- Calendly Event Start Time → Contact: Custom field "Next Meeting Date"
- Calendly Event Name → Contact: Description or custom field "Meeting Type"
Zap 2 — Log meeting as a CRM Activity:
- Trigger: Calendly → Invitee Created
- Action 1: Zoho CRM → Find Contact (search by email from Calendly)
- Action 2: Zoho CRM → Create Activity
- Subject:
Meeting: {Event Name} with {Invitee Name} - Activity Type: Meeting
- Due Date/Time: Calendly Event Start Time
- Contact: ID from Action 1
- Description: Calendly join URL
- Subject:
Cost consideration: Zapier's free plan allows 100 tasks/month. A two-action Zap (find contact + create activity) uses 2 tasks per booking. If you have 50+ bookings per month, you'll need Zapier's Starter plan ($19.99/month).
Method 2 — Zoho Flow (No-Code, No Extra Cost)
If you're already on a Zoho One or Zoho CRM Plus plan, Zoho Flow is included. It has a Calendly connector and a Zoho CRM connector.
Supported Calendly triggers in Zoho Flow:
- New Event Scheduled
- Event Cancelled
Zoho Flow has one advantage over Zapier for Zoho CRM users: it can use CRM's native upsert functionality more reliably, and it doesn't count against a third-party task limit.
Flow setup — Create contact + log meeting on booking:
- Go to
flow.zoho.com→ Create Flow - Trigger: Calendly → New Event Scheduled
- Action 1: Zoho CRM → Search Records
- Module: Contacts
- Search field: Email
- Search value:
{{invitee_email}}from Calendly
- Add a Decision branch:
- If Contact found → proceed to update path
- If not found → proceed to create path
- Create path: Action → Zoho CRM → Create Contact with Calendly fields mapped
- Update path: Action → Zoho CRM → Update Record using the Contact ID from the search result
- After both paths merge: Action → Zoho CRM → Create Activity linked to the Contact
Handling the "meeting completed" trigger:
Calendly does not send a webhook when a meeting ends. Neither Zapier nor Zoho Flow can natively trigger on meeting completion. The workaround:
- Use a time-based trigger in Zoho CRM: create a CRM Workflow → Scheduled Action that runs X hours after the Activity Due Date. When the meeting time has passed, trigger the follow-up automation (update stage, create task, send email).
Method 3 — Calendly Webhooks + Zoho CRM API
For full control — including handling edge cases, retries, and complex field logic — use Calendly's webhook subscription directly and process events with a small server-side function that calls the Zoho CRM API.
Calendly webhook events:
invitee.created— fired immediately when someone booksinvitee.canceled— fired when a booking is cancelled
Step 1 — Create a Calendly webhook subscription
Using Calendly's API (requires a Calendly API key from your Calendly account settings):
POST https://api.calendly.com/webhook_subscriptions
Authorization: Bearer {CALENDLY_API_KEY}
Content-Type: application/json
{
"url": "https://your-server.com/calendly-webhook",
"events": ["invitee.created", "invitee.canceled"],
"organization": "https://api.calendly.com/organizations/{ORG_UUID}",
"user": "https://api.calendly.com/users/{USER_UUID}",
"scope": "organization"
}
Step 2 — Handle the webhook payload
Calendly sends a JSON payload to your endpoint. The invitee.created event payload contains:
{
"event": "invitee.created",
"payload": {
"event_type": {...},
"event": {
"start_time": "2026-10-15T10:00:00Z",
"end_time": "2026-10-15T10:30:00Z",
"location": {"join_url": "https://zoom.us/j/..."}
},
"invitee": {
"name": "Priya Sharma",
"email": "priya@company.com",
"questions_and_answers": [
{"question": "Company Name", "answer": "Sharma Exports"}
]
}
}
}
Note: Calendly's "Questions" on the booking form come through in questions_and_answers. Map these to CRM custom fields. If you ask "Company Name" and "Phone Number" on your Calendly form, extract them here.
Step 3 — Upsert the Zoho CRM Contact
POST https://www.zohoapis.in/crm/v6/Contacts/upsert
Authorization: Zoho-oauthtoken {ACCESS_TOKEN}
Content-Type: application/json
{
"data": [
{
"First_Name": "Priya",
"Last_Name": "Sharma",
"Email": "priya@company.com",
"Account_Name": "Sharma Exports",
"Lead_Source": "Calendly"
}
],
"duplicate_check_fields": ["Email"]
}
Step 4 — Create the CRM Activity
POST https://www.zohoapis.in/crm/v6/Activities
Authorization: Zoho-oauthtoken {ACCESS_TOKEN}
{
"data": [
{
"Activity_Type": "Meeting",
"Subject": "Demo Call — Priya Sharma",
"Due_Date": "2026-10-15",
"Due_Time": "10:00 AM",
"Status": "Open",
"Who_Id": "{CONTACT_ID_FROM_UPSERT_RESPONSE}",
"Description": "Calendly booking. Join URL: https://zoom.us/j/..."
}
]
}
Step 5 — Handle Deal stage update
If you want to update a Deal stage on meeting scheduled, add a search step to find the open Deal linked to this Contact, then update the Stage field:
PUT https://www.zohoapis.in/crm/v6/Deals/{DEAL_ID}
{
"data": [
{
"Stage": "Meeting Scheduled"
}
]
}
This approach requires maintaining a small server (Node.js, Python Flask, or a serverless function). The advantage: you handle every Calendly event, retry on CRM API failures, and add custom business logic without any platform limitations.
Method 4 — Replace Calendly with Zoho Bookings
Zoho Bookings is Zoho's native scheduling tool. It integrates with Zoho CRM without any third-party connector, webhook, or API work.
When to switch from Calendly to Zoho Bookings:
- You're on Zoho One or Zoho CRM Plus (Bookings is included)
- You want native CRM integration with zero setup overhead
- You don't need Calendly's specific enterprise features (routing forms, round-robin with availability weighting, etc.)
Zoho Bookings → Zoho CRM integration:
- In Zoho Bookings, go to Settings → Integrations → Zoho CRM
- Enable the integration
- Map the booking fields: Customer Name, Email, Phone, Notes → CRM Lead/Contact fields
- Choose the trigger: create a Lead, Contact, or both on every booking
- Optionally: create a CRM Activity linked to the Contact on booking
Zoho Bookings also fires CRM workflows natively. When a booking is completed (meeting time passed), you can set up a CRM workflow triggered by the Activity status change from "Open" to "Completed."
Calendly features Zoho Bookings does not have (as of September 2026):
- Routing forms (route bookers to different calendar owners based on form answers)
- LinkedIn/HubSpot direct integration
- Calendly's embed customization depth
If you're using Calendly's routing forms for lead qualification before scheduling, stay on Calendly and use Method 2 or 3. If you use basic scheduling, Zoho Bookings is simpler and cheaper.
Field Mapping Reference
| Calendly Field | Zoho CRM Field | Notes | |---|---|---| | Invitee Name | First Name + Last Name | Split on first space | | Invitee Email | Email | Use as duplicate check key | | Event Start Time | Activity Due Date | Convert to local timezone | | Event Name | Activity Subject | Prefix with "Meeting: " | | Location / Join URL | Activity Description | Full join URL | | Questions & Answers | Custom CRM fields | Map per question label | | Invitee Timezone | Custom field: Timezone | Useful for multi-timezone teams | | UTM parameters | Lead Source custom fields | Calendly passes these if set |
Deal Stage Automation on Meeting Completion
The most valuable part of this integration is updating deal stages automatically. Here's the recommended Zoho CRM workflow:
- Trigger: Activity → Status changes to "Completed" AND Activity Type = "Meeting"
- Condition: Associated Deal Stage = "Meeting Scheduled"
- Actions:
- Update Deal Stage → "Proposal/Price Quote"
- Create a Task: "Send proposal within 24 hours" — assigned to Deal Owner, due in 1 day
- Send internal email notification to deal owner with deal details
This runs inside Zoho CRM's workflow engine. It doesn't require Calendly to send any additional data — you rely on your team marking the CRM Activity as "Completed" after the meeting.
Which Method to Use
| Scenario | Method | |---|---| | Fastest setup, willing to pay for Zapier | Method 1 — Zapier | | On Zoho One / Zoho CRM Plus, no extra cost | Method 2 — Zoho Flow | | Complex logic, custom questions, retries | Method 3 — Webhooks + API | | New to scheduling, fully in Zoho ecosystem | Method 4 — Zoho Bookings |
VoltVave sets up Calendly–Zoho CRM integrations as part of CRM implementation projects for businesses across India, UAE, the UK, and the USA. If you want this built and tested correctly from day one, talk to us.
// Related Services
// Authorized Zoho Partner
Need help with Zoho?
VoltVave handles Zoho implementation, migration, and long-term support for businesses across India. Free initial consultation.
