Calendly supports webhooks through our open API, allowing you to receive real-time updates when key events occur in your account. Use the v2 API to send event data to a specified URL when someone schedules or cancels a meeting, or submits a routing form.
For example, you can:
- Trigger actions when a new meeting is booked
- Update systems when an event is canceled
- Capture data when someone submits a routing form (even if no event is booked)
Before you begin
- You’ll need access to either a personal access token or an OAuth application for authentication.
- Make sure your endpoint is ready to receive and process webhook data.
- View the Calendly API Use Cases for more ideas and examples.
Webhook event types
Calendly supports the following webhook subscriptions:
- Invitee Created Events — when a new event is scheduled
- Invitee Canceled Events — when an existing event is canceled
- Routing Form Submissions — when someone submits a routing form (with or without booking)
Create a webhook
Follow the steps shown in our Developer Portal.
Once you create a webhook subscription, Calendly sends event data to the endpoint you specify when new activity occurs.
To test your webhook, trigger a new event (such as a booking, cancellation, or reschedule). Webhooks are not triggered by past events.
View sample data in our Webhook Payload documentation.
Delete a webhook
To remove a webhook, visit our Delete Webhook Subscription guide.
Best practices
For developers:
- Use secure, HTTPS URLs for your webhook endpoints.
- Validate incoming webhook signatures for added security.
- Handle retries and avoid duplicate processing by checking event IDs.
For admins:
- Monitor who has created webhook subscriptions.
- If a user who created webhooks is removed from your organization, their webhooks remain active until manually deleted.