Looking to stay updated about events in your Calendly account in real time? Calendly's webhooks make this possible. Whether you want to automate appointments, analyze data, or create custom integrations, the Calendly webhook API offers numerous ways to improve your scheduling processes. This article covers everything about setting up and using Calendly webhooks, including the new API v2, which will be the only option starting May 2025. By the way, Zeeg offers similar webhook functionality with additional GDPR-compliant options.
What is a Calendly webhook?

A webhook is essentially an automated messaging service that sends information in real time to a URL you specify when certain events occur. For Calendly specifically, this means when someone books or cancels an appointment, the Calendly webhook can immediately pass this information to your application.
With the Calendly webhook API, you can respond to three different event types:
- Invitee Created Events – Notifications when new appointments are booked
- Invitee Canceled Events – Notifications when appointments are canceled
- Routing Form Submissions – Notifications when someone submits a routing form (regardless of whether an appointment was booked)
This real-time data transfer allows you to create automated workflows without needing to regularly query the Calendly API. The webhook sends data directly to your server as soon as a relevant event occurs.
Who can use Calendly webhooks?
Webhook functionality is available to users of the following Calendly plans:
All users within these plans can configure and utilize webhooks. This applies to both current and legacy plans.
👉🏻 For more information about Calendly's prices and plans, check out our article: Calendly Pricing: Your Full Guide in 2025
How to set up a Calendly webhook
Setting up a Calendly webhook requires some technical knowledge, but is absolutely doable with the right instructions. Here's the detailed process:
1. Prepare authentication
Before creating a webhook, you need to authenticate with the Calendly API. You have two options:
- Personal Access Token
- OAuth application
For most individual use cases, the personal access token is the simplest approach. However, if you're developing an application that will be used by many Calendly users, OAuth is the better choice.
2. Set up an endpoint
You'll need a web server with an endpoint (URL) that can receive the webhook data. This server must:
- Be publicly accessible via the internet
- Accept HTTP POST requests
- Process JSON data
If you're just getting started with development, you can use tools like Pipedream or Webhook.site to set up a temporary endpoint for testing the Calendly webhooks.
3. Create webhook subscription
To create the webhook subscription, you need to send a POST request to the Calendly API endpoint. Here's an example using cURL:
curl --request POST \ --url https://api.calendly.com/webhook_subscriptions \ --header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \ --header 'Content-Type: application/json' \ --data '{ "url": "https://your-endpoint.com/webhook", "events": ["invitee.created", "invitee.canceled"], "scope": "user" }'
The parameters in the request body are:
- url: The endpoint where webhook data should be sent
- events: The event types for which you want to receive notifications
- scope: The notification scope ("user" for your own events or "organization" for events of all members in your organization)
4. Process webhook data
After setting up the webhook, Calendly will send data to your endpoint whenever a selected event occurs. This data is transmitted in JSON format and contains extensive information about the event.
Here's a simplified example of the data sent when a new appointment is booked:
{ "event": "invitee.created", "payload": { "calendar_event": { "start_time": "2025-05-30T10:00:00Z", "end_time": "2025-05-30T10:30:00Z" }, "created_at": "2025-05-20T14:30:10Z", "email": "customer@example.com", "name": "John Doe", "event_type": { "name": "30 Minute Meeting" }, "questions_and_answers": [ { "question": "What would you like to discuss?", "answer": "I'd like to discuss your services." } ] }}
With this data, you can implement various automations:
- Entry into a database
- Notification to other systems
- Update your CRM
- Creation of meeting notes
- Automatic email confirmations
Migration from API v1 to API v2
⚠️ Important to know: The Calendly API v1 and its associated webhooks will be gradually discontinued starting May 2025 (Source: Calendly). So if you're currently using the older API, now is the right time to migrate to version 2.
The API v2 offers several advantages:
- More secure connection through OAuth 2.0
- Additional endpoints for advanced use cases
- Better management of organizations with administrator permissions
- More detailed information about scheduled events
- Ability to retrieve information for all event types of all members in your organization
Note that API v2 is not backward compatible with v1. The data structure for API v2 responses does not match the payload of API v1. You will need to adjust your application accordingly when implementing Calendly webhooks in the new version.
Examples for using Calendly webhooks
The Calendly webhook API can be employed for various scenarios:
1. Integration with your CRM system
One of the most common use cases is direct integration with your CRM system. When an appointment is booked, the webhook can automatically:
- Create a new contact in the CRM (if not already existing)
- Create an activity for the booked appointment
- Update a lead's status
- Assign follow-up tasks for your team
2. Automated email campaigns
Connect your Calendly webhook with your email marketing tool to:
- Send personalized confirmation emails
- Deliver reminders before the appointment
- Send follow-up emails with relevant materials after the appointment
- Adjust marketing campaigns based on booked appointment topics
3. Analytics and reporting
With webhooks, you can capture and analyze appointment booking data in real time:
- Track the number of booked appointments per day/week/month
- Analyze the most popular appointment types
- Monitor cancellation rates
- Create custom reports for your team
4. Custom integrations
If you have special requirements that aren't covered by existing integrations, you can develop your own solutions with Calendly webhooks:
- Connection with internal systems
- Updates to project management tools
- Automation of invoicing for paid appointments
- Synchronization with other calendar systems
Calendly webhook security and best practices
When working with webhooks, you should consider several security aspects and best practices:
Security measures
- Verify authentication: Check the webhook sender to ensure the request actually comes from Calendly
- Use HTTPS: Make sure your webhook endpoint uses HTTPS to encrypt data transmission
- Restrict access rights: Limit access to your webhook endpoint to necessary systems only
- Regular token rotation: Update your authentication tokens periodically
Best practices
- Implement error handling: Plan for possible failures or delays
- Build retry logic: In case your server is temporarily unavailable
- Subscribe only to needed events: Only subscribe to the event types you actually need
- Monitor webhook responses: Keep an eye on your server's response times
- Validate data: Check received data for completeness and correctness when processing Calendly webhooks
Why you should use Zeeg webhooks instead

If you're looking for an alternative to Calendly, Zeeg also offers powerful webhook functionality. As a GDPR-compliant scheduling solution from Germany, Zeeg offers some serious benefits:
- Complete GDPR compliance with hosting in Europe
- Similar webhook functionality with real-time notifications
- Integration with Apple Calendar (unlike Calendly, which discontinued iCloud integration for new users)
- More comprehensive free version with two scheduling pages
- Pricing starting at $10 per user/month
Zeeg's webhook functionality can connect with the same systems and applications that work with Calendly webhooks, but offers additional privacy benefits for companies operating in the EU or working with European customers.
Conclusion: Using Calendly webhooks for your business processes
The Calendly webhook API offers a powerful way to connect your scheduling data with other systems in real time. From simple notifications to complex automations – the possibilities are diverse.
With the upcoming switch to API v2 in May 2025, now is the ideal time to update or redesign your integration. The enhanced features of the new API provide even more ways to optimize your scheduling processes.
Whether you choose Calendly or an alternative like Zeeg – webhooks can make a huge difference in the efficiency of your appointment scheduling and related processes.
Frequently asked questions about Calendly webhooks
What technical knowledge do I need to use Calendly webhooks?
Basic programming knowledge and understanding of API requests are helpful. You should be familiar with JSON data formats and HTTP requests, and be able to set up a server that can receive webhook data.
Can I set up multiple webhooks for different event types?
Yes, you can create multiple webhook subscriptions that respond to different event types or send the data to different endpoints when implementing the Calendly API webhooks.
What happens to webhooks when an administrator leaves the organization?
If an administrator who created webhooks is later downgraded in their role or removed from the organization, these webhooks remain active. You'll need to delete them manually if necessary.
How do I delete a webhook?
To delete a webhook subscription, you can send a DELETE request to the corresponding endpoint of the Calendly API. You can find the exact documentation in the Calendly Developer Portal.
Are webhooks triggered for all users in my organization?
This depends on the "scope" parameter you set when creating the webhook. With "scope": "user", only your own events are considered, while "scope": "organization" captures events from all members of your organization.