Webhooks overview

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

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.