# Calendly
URL: https://docs.awellhealth.com/docs/marketplace/calendly

> For the complete documentation index, see [llms.txt](https://docs.awellhealth.com/llms.txt).



<img src="/marketplace/calendly.png" width="48" height="48" />

\*\* In beta \*\* Enable scheduling in your care flows with Calendly.

Category: Scheduling. Adds 2 webhooks to a care flow. Built by External.

## Webhooks [#webhooks]

Calendly can send these 2 events into Awell, where each one can start a care flow or move a patient along. Point the webhook at the URL Studio shows you when you enable it.

### `eventCanceled` [#eventcanceled]

Payload:

| Data point            | Type      |
| --------------------- | --------- |
| `cancellation_reason` | `string`  |
| `cancelUrl`           | `string`  |
| `endTime`             | `date`    |
| `eventId`             | `string`  |
| `eventName`           | `string`  |
| `eventTypeId`         | `string`  |
| `hostEmail`           | `string`  |
| `inviteeEmail`        | `string`  |
| `inviteeFirstName`    | `string`  |
| `inviteeLastName`     | `string`  |
| `inviteeName`         | `string`  |
| `inviteePhoneNumber`  | `string`  |
| `inviteeStatus`       | `string`  |
| `inviteeTimezone`     | `string`  |
| `rescheduled`         | `boolean` |
| `rescheduleUrl`       | `string`  |
| `startTime`           | `date`    |
| `videoCallUrl`        | `string`  |

### `eventCreated` [#eventcreated]

Payload:

| Data point             | Type      |
| ---------------------- | --------- |
| `cancelUrl`            | `string`  |
| `endTime`              | `date`    |
| `eventId`              | `string`  |
| `eventName`            | `string`  |
| `eventTypeId`          | `string`  |
| `hostEmail`            | `string`  |
| `inviteeEmail`         | `string`  |
| `inviteeFirstName`     | `string`  |
| `inviteeLastName`      | `string`  |
| `inviteeName`          | `string`  |
| `inviteePhoneNumber`   | `string`  |
| `inviteeStatus`        | `string`  |
| `inviteeTimezone`      | `string`  |
| `is_rescheduled_event` | `boolean` |
| `rescheduled`          | `boolean` |
| `rescheduleUrl`        | `string`  |
| `startTime`            | `date`    |
| `videoCallUrl`         | `string`  |

## Setup and notes [#setup-and-notes]

[Calendly](https://calendly.com/) is the scheduling automation platform with team-based scheduling, solutions and integrations for every department, and advanced security features. Note that Calendly is not HIPAA-compliant, so is not endorsed by Awell. If you wish to use a HIPAA-compliant scheduling solution, we recommend using our Cal.com extension instead.

### Extension settings [#extension-settings]

In order to set up this extension, \*\*you will need to provide a Calendly API key. You can obtain an API key via the Calendly portal (`Settings > Developer > API keys`).

### Pricing [#pricing]

This extension is free but keep in mind that you might need a paid plan for Calendly depending on your needs.

### Webhooks [#webhooks-1]

Webhooks offer a great way to automate the flow with Awell when invitees schedule, cancel, or reschedule events, or when the meeting ends.

Important notes:

1. An Awell webhook endpoint can only listen to one event type. So make sure that when you create a webhook in Calendly, the subscriber URL and the event trigger match the Awell webhook endpoint. This also means there can only be one event type per subscriber URL.
2. Using a secret to verify the authenticity of the received payload is not yet supported.
3. Custom payload templates are not supported, please use the default ones.

### Notes about rescheduled appointments [#notes-about-rescheduled-appointments]

Apparently, Calendly doesn't make it completely clear when an `invitee.created` event is created and sent via a webhook. Instead, the `rescheduled` field is part of the `invitee.cancelled` webhook, and the `old_invitee` field is populated in the new `invitee.created` event. So, this extension uses a `is_rescheduled_event` field in the `invitee.created` listener to reflect an `old_invitee` being present. So:

In order to check to see if an event was rescheduled (rather than a new event):

* validate `is_rescheduled_event` is true

In order to understand if a cancellation was actually a rescheduling\*\*:

* validate `rescheduled` is true

## Changelog [#changelog]

### November 3, 2023 [#november-3-2023]

* Calendly webhooks for event created, canceled and rescheduled are now supported.

### November 20, 2023 [#november-20-2023]

* Removed rescheduled event; expectation is that the rescheduling should be handled on the client side, given Calendly does not direcly support a rescheduled webhook

## Where this page comes from [#where-this-page-comes-from]

The settings, actions, inputs, outputs and webhooks above are generated from the
extension's own code, at `@awell-health/awell-extensions` v2.1.159. They match what the
platform actually does rather than a description of it.

Field-level detail also appears in Awell Studio when you configure the action.
Something wrong or missing? Email [support@awellhealth.com](mailto:support@awellhealth.com).
