> Calendly developer docs. For page Markdown, append .md to any URL.
> Index: https://developer.calendly.com/llms.txt
> API catalog: https://developer.calendly.com/.well-known/api-catalog
> OpenAPI: https://developer.calendly.com/openapi/calendly-api.yaml
> OAuth authorization server: https://calendly.com/.well-known/oauth-authorization-server
> MCP protected resource: https://mcp.calendly.com/.well-known/oauth-protected-resource
> Scheduling MCP endpoint: https://mcp.calendly.com
> Docs search MCP: https://developer.calendly.com/_mcp/server

# Automate Your Process

Our webhook subscription will inform you when invitees book, cancel, or reschedule events. While the process is completely manual, you can use the values within the webhook payload to trigger follow up actions in the internal or custom-built apps you or your team use.

If you want to trigger automations without any development work, [learn more about our integration with Zapier](https://help.calendly.com/hc/en-us/articles/235289507-Zapier), which connects Calendly to apps you use daily.

* When an event is **scheduled**, the **`invitee.created`** webhook is triggered.
* When an event is **canceled**, the **`invitee.canceled`** webhook is triggered.
* When an event is **rescheduled**, both the **`invitee.created`** and **`invitee.canceled`** webhooks are triggered.

To learn more about creating a webhook subscription, see [receive scheduled event data in real time with webhook subscriptions](/docs/api-guides/receive-data-from-scheduled-events-in-real-time-with-webhook-subscriptions).

## Webhook payload values

To create your own follow up actions, use the values located within the webhook payload. Some that may be helpful include:

### The event value

The **`event`** value identifies which payload was triggered as a result of the meeting being scheduled or canceled:

When an event is **scheduled**:

```json
{
  "event": "invitee.created"
}
```

When an event is **canceled**:

```json
{
  "event": "invitee.canceled"
}
```

### The status value

The **`status`** value identifies if the **invitee** is attending or not attending the scheduled event.

When the invitee will attend the scheduled event:

```json
{
  "status": "active"
}
```

When the invitee will **not** attend the scheduled event:

```json
{
  "status": "canceled"
}
```

### The canceled value

The **`canceled`** value identifies if the **event** was canceled.

When the event has **not** been canceled:

```json
{
  "canceled": false
}
```

When the event has been canceled:

```json
{
  "canceled": true
}
```

* The **`canceled_by`** value identifies who, either the Calendly user or invitee, canceled the meeting
  * The **`reason`** value (if provided by the canceler) lists the textual response the canceler entered when canceling the event

## The rescheduled value

The **`rescheduled`** value identifies if the event has been rescheduled.

When the event has been rescheduled:

```json
{
  "rescheduled": true
}
```

When the event has **not** been rescheduled:

```json
{
  "rescheduled": false
}
```

## Working with webhooks to analyze data or trigger automation

Put your data to work when you use these guides to receive, understand, and report on Calendly data when it arrives at an endpoint you specify.

[**How to track and report on all scheduled events across your organization**](/docs/api-guides/track-and-report-on-all-scheduled-events-across-your-organization)

[**How to receive data from scheduled events in real-time with webhook subscriptions**](/docs/api-guides/receive-data-from-scheduled-events-in-real-time-with-webhook-subscriptions)

[**How to understand webhook payloads when invitees reschedule events**](/docs/api-guides/see-how-webhook-payloads-change-when-invitees-reschedule-events)