> 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

# Get sample webhook data

GET https://api.calendly.com/sample_webhook_data

Test your webhook subscription

> `webhooks:read`

Reference: https://developer.calendly.com/api-docs/calendly-api/webhooks/get-sample-webhook-data

## Authentication

- `Authorization` header (bearer token, required) — OAuth 2.0
- `Authorization` header (bearer token, required) — Personal Access Token

## Request

### Query parameters

- `event` (enum, required)
  - Allowed values: `invitee.created`, `invitee.canceled`, `invitee_no_show.created`, `invitee_no_show.deleted`, `routing_form_submission.created`, `event_type.created`, `event_type.deleted`, `event_type.updated`, `meeting_recap.created`, `meeting_recap.updated`, `meeting_recap.deleted`, `contact.created`, `contact.updated`, `contact.deleted`
- `organization` (string, required)
- `user` (string, optional)
- `scope` (enum, required)
  - Allowed values: `user`, `organization`, `group`
- `group` (string, optional)

## Response

### 200

OK

- `event` (enum, required) — The event that caused the webhook to fire
  - Allowed values: `invitee.created`, `invitee.canceled`, `invitee_no_show.created`, `invitee_no_show.deleted`, `routing_form_submission.created`, `event_type.created`, `event_type.deleted`, `event_type.updated`, `meeting_recap.created`, `meeting_recap.updated`, `meeting_recap.deleted`, `contact.created`, `contact.updated`, `contact.deleted`
- `created_at` (string, required) — The moment when the event was created (e.g. "2020-01-02T03:04:05.678123Z")
- `created_by` (string, required) — The user who created the webhook
- `payload` (WebhookPayloadPayload, required) — The payload for the webhook event. The data in the payload depends on the event. For example, an `invitee.*` event produces an `Invitee` object in the payload.

## Errors

### 400 Bad Request Error

Request is not valid

- `title` (enum, required)
  - Allowed values: `Internal Server Error`
- `message` (enum, required)
  - Allowed values: `The server encountered an unexpected condition that prevented it from fulfilling the request.`
- `details` (list of ErrorResponseDetailsItem, optional)

### 401 Unauthorized Error

Cannot authenticate caller

- `title` (enum, required)
  - Allowed values: `Internal Server Error`
- `message` (enum, required)
  - Allowed values: `The server encountered an unexpected condition that prevented it from fulfilling the request.`
- `details` (list of ErrorResponseDetailsItem, optional)

### 403 Forbidden Error

Permission denied or insufficient scope

- `Get-sample-webhook-dataRequestForbiddenError`

### 404 Not Found Error

Requested resource not found

- `title` (enum, required)
  - Allowed values: `Internal Server Error`
- `message` (enum, required)
  - Allowed values: `The server encountered an unexpected condition that prevented it from fulfilling the request.`
- `details` (list of ErrorResponseDetailsItem, optional)

### 500 Internal Server Error

An error has occurred on the server

- `title` (enum, required)
  - Allowed values: `Internal Server Error`
- `message` (enum, required)
  - Allowed values: `The server encountered an unexpected condition that prevented it from fulfilling the request.`
- `details` (list of ErrorResponseDetailsItem, optional)

## Types

### WebhookPayloadPayload

The payload for the webhook event. The data in the payload depends on the event. For example, an `invitee.*` event produces an `Invitee` object in the payload.

### ErrorResponseDetailsItem

- `message` (string, required)
- `parameter` (string, optional)
- `code` (string, optional)

### GetSampleWebhookDataRequestForbiddenError0

Error Object

- `title` (enum, required)
  - Allowed values: `Permission Denied`
- `message` (enum, required)
  - Allowed values: `You do not have permission to access this resource.`, `You do not have permission`
- `details` (list of ErrorResponseDetailsItem, optional)

### InsufficientScopeError

Caller does not have required oauth scopes

- `title` (enum, required)
  - Allowed values: `Insufficient scope`
- `message` (enum, required)
  - Allowed values: `This operation requires the scopes listed in the 'required_scopes' array.`
- `required_scopes` (list of string, required)

### InviteePayload

The payload that is sent via Webhook when an invitee creates or schedules a meeting, and when an invitee cancels.

- `uri` (string, required) — Canonical reference (unique identifier) for the invitee
- `email` (string, required) — The invitee’s email address
- `first_name` (string, required, nullable) — The first name of the invitee who booked the event when the event type is configured to use separate fields for first name and last name. Null when event type is configured to use a single field for name.
- `last_name` (string, required, nullable) — The last name of the invitee who booked the event when the event type is configured to use separate fields for first name and last name. Null when event type is configured to use a single field for name.
- `name` (string, required) — The invitee’s name (in human-readable format)
- `status` (enum, required) — Indicates if the invitee is "active" or "canceled"
  - Allowed values: `active`, `canceled`
- `questions_and_answers` (list of InviteeQuestionAndAnswer, required) — A collection of the invitee's responses to questions on the event booking confirmation form
- `timezone` (string, required, nullable) — Time zone to use when displaying time to the invitee
- `event` (string, required) — A reference to the event
- `created_at` (string, required) — The moment when the event was created (e.g. "2020-01-02T03:04:05.678123Z")
- `updated_at` (string, required) — The moment when the event was last updated (e.g. "2020-01-02T03:04:05.678123Z")
- `tracking` (InviteeTracking, required) — The UTM and Salesforce tracking parameters associated with an Invitee
- `text_reminder_number` (string, required, nullable) — The phone number to use when sending text (SMS) reminders
- `rescheduled` (boolean, required) — Indicates if this invitee has rescheduled. If `true`, a reference to the new Invitee instance is provided in the `new_invitee` field.
- `old_invitee` (string, required, nullable) — Reference to old Invitee instance that got rescheduled
- `new_invitee` (string, required, nullable) — Link to new invitee, after reschedule
- `cancel_url` (string, required) — Link to cancelling the event for the invitee
- `reschedule_url` (string, required) — Link to rescheduling the event for the invitee
- `routing_form_submission` (string, required, nullable) — Reference to a routing form submission that redirected the invitee to a booking page.
- `payment` (InviteePayloadPayment, required, nullable) — Invitee payment
- `no_show` (InviteePayloadAssociatedNoShow, required, nullable) — Provides data pertaining to the associated no show for the Invitee
- `reconfirmation` (InviteePayloadReconfirmation, required, nullable) — Assuming reconfirmation is enabled for the event type, when reconfirmation is requested this object is present with a `created_at` that reflects when the reconfirmation notification was sent. Once the invitee has reconfirmed the `confirmed_at` attribute will change from `null` to a timestamp that reflects when they took action.
- `scheduling_method` (enum, required, nullable) — The method used to schedule the event
  - Allowed values: `instant_book`, `api`
- `invitee_scheduled_by` (string, required, nullable) — Reference to user URI who scheduled the event
- `scheduled_event` (InviteePayloadScheduledEvent, required) — Information about the invitee's scheduled meeting
- `cancellation` (Cancellation, optional) — Provides data pertaining to the cancellation of the Event or the Invitee

### RoutingFormSubmission

Information about a Routing Form Submission.

- `uri` (string, required) — Canonical reference (unique identifier) for the routing form submission.
- `routing_form` (string, required) — The URI of the routing form that's associated with the submission.
- `questions_and_answers` (list of SubmissionQuestionAndAnswer, required) — All Routing Form Submission questions with answers.
- `tracking` (SubmissionTracking, required) — The UTM and Salesforce tracking parameters associated with a Routing Form Submission.
- `submitter` (string, required, nullable) — The reference to the Invitee resource when routing form submission results in a scheduled meeting.
- `submitter_type` (enum, required, nullable) — Type of the respondent resource that submitted the form and scheduled a meeting.
  - Allowed values: `Invitee`
- `created_at` (string, required) — The moment the routing form was submitted.
- `updated_at` (string, required) — The moment when the routing form submission was last updated.
- `result` (SubmissionResult, optional) — The polymorphic base type for a Routing Form Submission result.

### EventTypePayload

A configuration for an Event Type

- `uri` (string, required) — Canonical reference (unique identifier) for the event type
- `name` (string, required, nullable) — The event type name (in human-readable format)
- `active` (boolean, required) — Indicates if the event is active or not.
- `slug` (string, required, nullable) — The portion of the event type's URL that identifies a specific web page (in a human-readable format)
- `scheduling_url` (string, required) — The URL of the user’s scheduling site where invitees book this event type
- `duration` (double, required) — The length of sessions booked with this event type
- `duration_options` (list of integer, required, nullable) — Array of duration options. Always null for adhoc event types.
- `kind` (enum, required) — Indicates if the event type is "solo" (belongs to an individual user) or "group"
  - Allowed values: `solo`, `group`
- `pooling_type` (enum, required, nullable) — Indicates if the event type is "round robin" (alternates between hosts) or "collective" (invitees pick a time when all participants are available) or “multi-pool” (considers availability delineated by pools of participants) or "null" (the event type doesn’t consider the availability of a group participants)
  - Allowed values: `round_robin`, `collective`, `multi_pool`
- `type` (enum, required) — Indicates if the event type is "AdhocEventType" (ad hoc event) or "StandardEventType" (standard event type)
  - Allowed values: `StandardEventType`, `AdhocEventType`
- `color` (string, required) — The hexadecimal color value of the event type's scheduling page
- `created_at` (string, required) — The moment the event type was created (e.g. "2020-01-02T03:04:05.678123Z")
- `updated_at` (string, required) — The moment the event type was last updated (e.g. "2020-01-02T03:04:05.678123Z")
- `internal_note` (string, required, nullable) — Contents of a note that may be associated with the event type
- `is_paid` (boolean, required)
- `description_plain` (string, required, nullable) — The event type's description (in non formatted text)
- `profile` (Profile, required) — The publicly visible profile of a User or a Team that's associated with the Event Type (note: some Event Types don't have profiles)
- `secret` (boolean, required) — Indicates if the event type is hidden on the owner's main scheduling page
- `booking_method` (enum, required) — Indicates if the event type is for a poll or an instant booking
  - Allowed values: `instant`, `poll`
- `custom_questions` (list of EventTypeCustomQuestion, required)
- `deleted_at` (string, required, nullable) — The moment the event type was deleted (e.g. "2020-01-02T03:04:05.678123Z"). Since event types can be deleted but their scheduled events remain it's useful to fetch a deleted event type when you still require event type data for a scheduled event.
- `admin_managed` (boolean, required) — Indicates if this event type is managed by an organization admin
- `locations` (list of LocationConfiguration, required, nullable) — Configuration information for each possible location for this Event Type
- `position` (integer, required) — Position order of Event Type, starting with 0 (for display purposes)
- `locale` (enum, required) — The locale on the event type, used to determine the language of the event type's scheduling page
  - Allowed values: `en`, `fr`, `es`, `de`, `nl`, `pt`, `it`, `uk`

### ContactCreatedWebhookPayload

Payload for `contact.created` (`user_uuid` plus `contact`)

- `user_uuid` (string, required) — User unique identifier
- `contact` (ContactCreatedWebhookPayloadContact, required) — Contact record for this event.

### ContactUpdatedWebhookPayload

Payload for `contact.updated` (`user_uuid` plus `contact`).

- `user_uuid` (string, required) — User unique identifier
- `contact` (ContactUpdatedWebhookPayloadContact, required) — Contact record for this event.

### ContactDeletedWebhookPayload

Payload for `contact.deleted` (`user_uuid` plus nested `contact` with `uri` and `deleted_at`).

- `user_uuid` (string, required) — User unique identifier
- `contact` (ContactDeletedWebhookPayloadContact, required) — Deleted contact snapshot

### MeetingRecapCreatedWebhookPayload

V2 webhook payload for `meeting_recap.created`

- `created_at` (string, required) — When the meeting recap was processed/completed.
- `event` (MeetingRecapCreatedWebhookPayloadEvent, required) — Snapshot of the related scheduled event
- `recap` (MeetingRecapCreatedWebhookPayloadRecap, required) — Meeting recap resource references and content

### MeetingRecapUpdatedWebhookPayload

V2 webhook payload for `meeting_recap.updated`

- `event` (MeetingRecapUpdatedWebhookPayloadEvent, required) — Snapshot of the related scheduled event
- `recap` (MeetingRecapUpdatedWebhookPayloadRecap, required) — Updated meeting recap resource

### MeetingRecapDeletedWebhookPayload

V2 webhook payload for `meeting_recap.deleted`

- `recap` (MeetingRecapDeletedWebhookPayloadRecap, required) — Deleted meeting recap resource reference
- `event` (MeetingRecapDeletedWebhookPayloadEvent, optional) — Related scheduled event reference

### InviteeQuestionAndAnswer

A response to a question on a booking page form. Required questions must be included in the body and match on the question string exactly.

- `question` (string, required) — A question for the invitee. String is case sensitive and must exactly match the question.
- `answer` (string, required) — The invitee's response to the question
- `position` (integer, required) — The position of the question in relation to others

### InviteeTracking

The UTM and Salesforce tracking parameters associated with an Invitee

- `utm_campaign` (string, required, nullable) — The UTM parameter used to track a campaign
- `utm_source` (string, required, nullable) — The UTM parameter that identifies the source (platform where the traffic originates)
- `utm_medium` (string, required, nullable) — The UTM parameter that identifies the type of input (e.g. Cost Per Click (CPC), social media, affiliate or QR code)
- `utm_content` (string, required, nullable) — UTM content tracking parameter
- `utm_term` (string, required, nullable) — The UTM parameter used to track keywords
- `salesforce_uuid` (string, required, nullable) — The Salesforce record unique identifier

### InviteePayloadPayment

Invitee payment

- `external_id` (string, required) — Unique identifier for the payment
- `provider` (enum, required) — Payment provider
  - Allowed values: `stripe`, `paypal`
- `amount` (float, required) — The amount of the payment
- `currency` (enum, required) — The currency format that the payment is in.
  - Allowed values: `AUD`, `CAD`, `EUR`, `GBP`, `USD`
- `terms` (string, required, nullable) — Terms of the payment
- `successful` (boolean, required) — Indicates whether the payment was successfully processed

### InviteePayloadAssociatedNoShow

Provides data pertaining to the associated no show for the Invitee

- `uri` (string, required) — Canonical reference (unique identifier) for the no show
- `created_at` (string, required) — The moment when the no show was created

### InviteePayloadReconfirmation

Assuming reconfirmation is enabled for the event type, when reconfirmation is requested this object is present with a `created_at` that reflects when the reconfirmation notification was sent. Once the invitee has reconfirmed the `confirmed_at` attribute will change from `null` to a timestamp that reflects when they took action.

- `created_at` (string, required) — When the reconfirmation was created.
- `confirmed_at` (string, required, nullable) — When the Invitee confirmed their attendance.

### InviteePayloadScheduledEvent

Information about the invitee's scheduled meeting

- `uri` (string, required) — Canonical reference (unique identifier) for the resource
- `name` (string, required, nullable) — The event name
- `status` (enum, required) — Indicates if the event is "active" or "canceled"
  - Allowed values: `active`, `canceled`
- `start_time` (string, required) — The moment the event was scheduled to start in UTC time (e.g. "2020-01-02T03:04:05.678123Z").
- `end_time` (string, required) — The moment the event was scheduled to end in UTC time (e.g. "2020-01-02T03:04:05.678123Z")
- `event_type` (string, required) — The event type associated with this event
- `location` (Location, required) — The polymorphic base type for an event location that Calendly supports
- `invitees_counter` (InviteePayloadScheduledEventInviteesCounter, required)
- `created_at` (string, required) — The moment when the event was created (e.g. "2020-01-02T03:04:05.678123Z")
- `updated_at` (string, required) — The moment when the event was last updated (e.g. "2020-01-02T03:04:05.678123Z")
- `event_memberships` (list of InviteePayloadScheduledEventEventMembershipsItems, required) — Event membership list
- `event_guests` (list of Guest, required) — Additional people added to an event by an invitee
- `meeting_notes_plain` (string, optional, nullable) — The event's meeting notes (in non formatted text)
- `meeting_notes_html` (string, optional) — The event's meeting notes (formatted with HTML)
- `cancellation` (Cancellation, optional) — Provides data pertaining to the cancellation of the Event or the Invitee

### Cancellation

Provides data pertaining to the cancellation of the Event or the Invitee

- `canceled_by` (string, required) — Name of the person whom canceled
- `reason` (string, required, nullable) — Reason that the cancellation occurred
- `canceler_type` (enum, required)
  - Allowed values: `host`, `invitee`
- `created_at` (string, required) — The moment when the cancellation was created

### SubmissionQuestionAndAnswer

All Routing Form Submission questions with answers.

- `question_uuid` (string, required, nullable) — Unique identifier for the routing form question.
- `question` (string, required) — Question name (in human-readable format).
- `answer` (string, optional, nullable) — Answer provided by the respondent when the form was submitted.

### SubmissionTracking

The UTM and Salesforce tracking parameters associated with a Routing Form Submission.

- `utm_campaign` (string, required, nullable) — The UTM parameter used to track a campaign.
- `utm_source` (string, required, nullable) — The UTM parameter that identifies the source (platform where the traffic originates).
- `utm_medium` (string, required, nullable) — The UTM parameter that identifies the type of input (e.g. Cost Per Click (CPC), social media, affiliate or QR code).
- `utm_content` (string, required, nullable) — UTM content tracking parameter.
- `utm_term` (string, required, nullable) — The UTM parameter used to track keywords.
- `salesforce_uuid` (string, required, nullable) — The Salesforce record unique identifier.

### SubmissionResult

The polymorphic base type for a Routing Form Submission result.

### Profile

The publicly visible profile of a User or a Team that's associated with the Event Type (note: some Event Types don't have profiles)

- `type` (enum, required) — Indicates if the profile belongs to a "user" (individual) or "team"
  - Allowed values: `User`, `Team`
- `name` (string, required) — Human-readable name for the profile of the user that's associated with the event type
- `owner` (string, required) — The unique reference to the user associated with the profile

### EventTypeCustomQuestion

- `name` (string, required) — The custom question that the host created for the event type.
- `type` (enum, required) — The type of response that the invitee provides to the custom question; can be one or multiple lines of text, a phone number, or single- or multiple-select.
  - Allowed values: `string`, `text`, `phone_number`, `single_select`, `multi_select`
- `position` (integer, required) — The numerical position of the question on the event booking page after the name and email address fields.
- `enabled` (boolean, required) — true if the question created by the host is turned ON and visible on the event booking page; false if turned OFF and invisible on the event booking page.
- `required` (boolean, required) — true if a response to the question created by the host is required for invitees to book the event type; false if not required.
- `answer_choices` (list of string, required) — The invitee’s option(s) for single_select or multi_select type of responses.
- `include_other` (boolean, required) — true if the custom question lets invitees record a written response in addition to single-select or multiple-select type of responses; false if it doesn’t.

### LocationConfiguration

A configuration for an EventType's location

- `kind` (enum, optional)
  - Allowed values: `ask_invitee`, `custom`, `google_conference`, `gotomeeting_conference`, `inbound_call`, `microsoft_teams_conference`, `outbound_call`, `physical`, `webex_conference`, `zoom_conference`
- `location` (string, optional)
- `additional_info` (string, optional)
- `phone_number` (string, optional)

### ContactCreatedWebhookPayloadContact

Contact record for this event.

- `uri` (string, required) — Contact resource URI
- `creation_source` (string, required) — How the contact was created
- `name` (string, required) — Contact display name
- `emails` (list of Email, required) — The users' email addresses. Max 10.
- `created_at` (string, required) — Timestamp when the contact was created
- `updated_at` (string, required) — Timestamp when the contact was last updated
- `next_meeting_date` (string, required, nullable) — Start time of the next scheduled meeting from interaction summaries (ISO 8601), or null when unknown. Always null on `contact.created`.
- `last_meeting_date` (string, required, nullable) — Start time of the most recent meeting from interaction summaries (ISO 8601), or null when unknown. Always null on `contact.created`.
- `last_interaction_date` (string, required, nullable) — Timestamp of the most recent interaction from interaction summaries (ISO 8601), or null when unknown. Always null on `contact.created`.
- `phone_numbers` (list of PhoneNumber, optional) — The users' phone numbers. Max 10.
- `timezone` (string, optional, nullable) — IANA time zone name
- `job_title` (string, optional, nullable) — Job title
- `company` (string, optional, nullable) — Company name
- `country` (string, optional, nullable) — Country code or name
- `state` (string, optional, nullable) — State or region
- `city` (string, optional, nullable) — City
- `linkedin` (string, optional, nullable) — LinkedIn profile URL
- `custom_fields` (list of ContactCustomField, optional) — Custom field values
- `first_email_date` (string, optional, nullable) — Earliest email interaction (ISO 8601). Always null on `contact.created`.
- `last_email_date` (string, optional, nullable) — Latest email interaction (ISO 8601). Always null on `contact.created`.

### ContactUpdatedWebhookPayloadContact

Contact record for this event.

- `uri` (string, required) — Contact resource URI
- `creation_source` (string, required) — How the contact was created
- `name` (string, required) — Contact display name
- `emails` (list of Email, required) — The users' email addresses. Max 10.
- `created_at` (string, required) — Timestamp when the contact was created
- `updated_at` (string, required) — Timestamp when the contact was last updated
- `next_meeting_date` (string, required, nullable) — Start time of the next scheduled meeting from interaction summaries (ISO 8601), or null when unknown. Null when unknown.
- `last_meeting_date` (string, required, nullable) — Start time of the most recent meeting from interaction summaries (ISO 8601), or null when unknown. Null when unknown.
- `last_interaction_date` (string, required, nullable) — Timestamp of the most recent interaction from interaction summaries (ISO 8601), or null when unknown. Null when unknown.
- `phone_numbers` (list of PhoneNumber, optional) — The users' phone numbers. Max 10.
- `timezone` (string, optional, nullable) — IANA time zone name
- `job_title` (string, optional, nullable) — Job title
- `company` (string, optional, nullable) — Company name
- `country` (string, optional, nullable) — Country code or name
- `state` (string, optional, nullable) — State or region
- `city` (string, optional, nullable) — City
- `linkedin` (string, optional, nullable) — LinkedIn profile URL
- `custom_fields` (list of ContactCustomField, optional) — Custom field values
- `first_email_date` (string, optional, nullable) — Earliest email interaction (ISO 8601). Null when unknown.
- `last_email_date` (string, optional, nullable) — Latest email interaction (ISO 8601). Null when unknown.

### ContactDeletedWebhookPayloadContact

Deleted contact snapshot

- `uri` (string, required) — Contact resource URI
- `deleted_at` (string, required) — Timestamp when the contact was deleted

### MeetingRecapCreatedWebhookPayloadEvent

Snapshot of the related scheduled event

- `uri` (string, optional) — Scheduled event resource URI (present when the event provider is Calendly)
- `name` (string, optional)
- `start_time` (string, optional)
- `end_time` (string, optional)
- `location` (Location, optional) — The polymorphic base type for an event location that Calendly supports
- `attendees` (list of MeetingRecapCreatedWebhookPayloadEventAttendeesItems, optional)

### MeetingRecapCreatedWebhookPayloadRecap

Meeting recap resource references and content

- `uri` (string, required) — Meeting recap resource URI
- `transcript` (string, required) — Transcript resource URI
- `summary_md` (string, optional) — Markdown summary of the meeting
- `action_items_md` (string, optional) — Markdown action items from the meeting
- `discussion_md` (string, optional) — Markdown discussion points
- `share_link` (string, optional) — URL for sharing this meeting recap with others. Access is determined by the recap’s sharing settings.
- `created_at` (string, optional) — When the meeting recap was created
- `updated_at` (string, optional) — When the meeting recap was last updated

### MeetingRecapUpdatedWebhookPayloadEvent

Snapshot of the related scheduled event

- `uri` (string, optional) — Scheduled event resource URI (present when the event provider is Calendly)
- `name` (string, optional)
- `start_time` (string, optional)
- `end_time` (string, optional)
- `location` (Location, optional) — The polymorphic base type for an event location that Calendly supports
- `attendees` (list of MeetingRecapUpdatedWebhookPayloadEventAttendeesItems, optional)

### MeetingRecapUpdatedWebhookPayloadRecap

Updated meeting recap resource

- `uri` (string, required) — Meeting recap resource URI
- `summary_md` (string, optional) — Markdown summary of the meeting
- `action_items_md` (string, optional) — Markdown action items from the meeting
- `discussion_md` (string, optional) — Markdown discussion points
- `transcript` (string, optional) — Transcript resource URI
- `share_link` (string, optional) — URL for sharing this meeting recap with others. Access is determined by the recap’s sharing settings.
- `created_at` (string, optional) — When the meeting recap was created
- `updated_at` (string, optional) — When the meeting recap was last updated

### MeetingRecapDeletedWebhookPayloadRecap

Deleted meeting recap resource reference

- `uri` (string, required) — Meeting recap resource URI
- `deleted_at` (string, required) — When the meeting recap was deleted

### MeetingRecapDeletedWebhookPayloadEvent

Related scheduled event reference

- `uri` (string, optional) — Scheduled event resource URI (present when the event provider is Calendly)

### Location

The polymorphic base type for an event location that Calendly supports

### InviteePayloadScheduledEventInviteesCounter

- `total` (double, required) — Total invitees for an event, including invitees that have canceled
- `active` (double, required) — Total invitees for an event that have not canceled
- `limit` (double, required) — Maximum number of active invitees that can book the event

### InviteePayloadScheduledEventEventMembershipsItems

- `user` (string, required) — Canonical reference (unique identifier) for the user
- `user_email` (string, optional) — The user's email
- `user_name` (string, optional) — The user's name

### Guest

An individual whom an invitee has invited to be a guest attendee to an event

- `email` (string, required)
- `created_at` (string, required)
- `updated_at` (string, required)

### SubmissionEventTypeResult

Information about the event type Routing Form Submission result.

- `type` (enum, required) — Indicates that the routing form submission resulted in a redirect to an event type booking page.
  - Allowed values: `event_type`
- `value` (string, required) — A reference to the event type resource.

### SubmissionExternalUrlResult

Information about the external URL Routing Form Submission result.

- `type` (enum, required) — Indicates that the routing form submission resulted in a redirect to an external URL.
  - Allowed values: `external_url`
- `value` (string, required) — The external URL the respondent were redirected to.

### SubmissionCustomMessageResult

Information about the custom message Routing Form Submission result.

- `type` (enum, required) — Indicates if the routing form submission resulted in a custom "thank you" message.
  - Allowed values: `custom_message`
- `value` (SubmissionCustomMessageResultValue, required) — Contains an object with custom message headline and body.

### Email

An email address for a contact. Exactly one entry in the emails array must have is_primary true.

- `email` (string, required) — Email address.
- `is_primary` (boolean, required) — Whether this is the primary email.

### PhoneNumber

A phone number associated with a contact.

- `phone_number` (string, required) — Phone number.

### ContactCustomField

A custom field value on a Contact. `uri` is the custom field definition URI. `label` is derived from the custom field definition's name.

- `uri` (string, required) — Canonical URI of the custom field definition this value belongs to.
- `value` (ContactCustomFieldValue, required, nullable) — The custom field value; the accepted type is set by the field definition's `field_type`. `text` and `single_select` take a string (`single_select` must equal one of the definition's option `uuid`s); `number` takes a number; `boolean` takes a boolean; `currency` takes an integer amount in the currency's minor units (the ISO currency code lives on the field definition, not on this entry); `date` takes a string in ISO 8601 date format (`YYYY-MM-DD`); `tags` takes an array of strings. Scalar fields reject array values, and `tags` rejects non-array values.
- `label` (string, optional) — User-facing display name of the custom field (for readability).

### MeetingRecapCreatedWebhookPayloadEventAttendeesItems

- `host` (boolean, required)
- `user_email` (string, required)
- `user_name` (string, required)

### MeetingRecapUpdatedWebhookPayloadEventAttendeesItems

- `host` (boolean, required)
- `user_email` (string, required)
- `user_name` (string, required)

### InPersonMeeting

Information about the physical (in-person) event location

- `type` (enum, required) — Indicates that the event will be an in-person meeting.
  - Allowed values: `physical`
- `location` (string, required) — The physical location specified by the event host (publisher)
- `additional_info` (string, optional)

### OutboundCall

Meeting publisher will call the Invitee

- `type` (enum, required) — Indicates that the event host (publisher) will call the invitee
  - Allowed values: `outbound_call`
- `location` (string, required, nullable) — The phone number the event host (publisher) will use to call the invitee

### InboundCall

Invitee will call meeting publisher at the specified phone number

- `type` (enum, required) — Indicates that the invitee will call the event host
  - Allowed values: `inbound_call`
- `location` (string, required) — The phone number the invitee will use to call the event host (publisher)
- `additional_info` (string, optional)

### GoogleConference

Details about an Event that will take place using a Google Meet / Hangout conference. Location details will not be available 6 months after event has occurred.

- `type` (enum, required) — The event location is a Google Meet or Hangouts conference
  - Allowed values: `google_conference`
- `status` (enum, required, nullable) — Indicates the current status of the Google conference \* Expect only `pushed` status to have a non-`null` value for the `join_url` field. - `processing` Location details generation pending - `initiated` Requesting location details from Google - `pushed` Location details are available - `failed` Error occurred or event has been canceled - `null` Location details are no longer available
  - Allowed values: `processing`, `initiated`, `pushed`, `failed`
- `join_url` (string, required, nullable) — Google conference meeting url

### ZoomConference

Meeting will take place in a Zoom conference. Location details will not be available 6 months after event has occurred.

- `type` (enum, required) — The event location is a Zoom conference
  - Allowed values: `zoom`
- `status` (enum, required, nullable) — Indicates the current status of the Zoom conference \* Expect only `pushed` status to have non-`null` values for `join_url` & `data` fields. - `processing` Location details generation pending - `initiated` Requesting location details from Zoom - `pushed` Location details are available - `failed` Error occurred or event has been canceled - `null` Location details are no longer available
  - Allowed values: `processing`, `initiated`, `pushed`, `failed`
- `join_url` (string, required, nullable) — Zoom meeting url
- `data` (ZoomConferenceData, required, nullable) — The conference metadata supplied by Zoom

### GotoMeetingConference

Details about an Event that will take place using a GotoMeeting conference. Location details will not be available 6 months after event has occurred.

- `type` (enum, required) — The event location is a GoToMeeting conference
  - Allowed values: `gotomeeting`
- `status` (enum, required, nullable) — Indicates the current status of the GoToMeeting conference \* Expect only `pushed` status to have non-`null` values for `join_url` & `data` fields. - `processing` Location details generation pending - `initiated` Requesting location details from GoToMeeting - `pushed` Location details are available - `failed` Error occurred or event has been canceled - `null` Location details are no longer available
  - Allowed values: `initiated`, `processing`, `pushed`, `failed`
- `join_url` (string, required, nullable) — GoToMeeting conference meeting url
- `data` (GotoMeetingConferenceData, required, nullable) — The conference metadata supplied by GoToMeeting

### MicrosoftTeamsConference

Meeting will take place in a Microsoft Teams conference. Location details will not be available 6 months after event has occurred.

- `type` (enum, required) — The event location is a Microsoft Teams conference
  - Allowed values: `microsoft_teams_conference`
- `status` (enum, required, nullable) — Indicates the current status of the Microsoft Teams conference \* Expect only `pushed` status to have non-`null` values for `join_url` & `data` fields. - `processing` Location details generation pending - `initiated` Requesting location details from MS Teams - `pushed` Location details are available - `failed` Error occurred or event has been canceled - `null` Location details are no longer available
  - Allowed values: `processing`, `initiated`, `pushed`, `failed`
- `join_url` (string, required, nullable) — Microsoft Teams meeting url
- `data` (MicrosoftTeamsConferenceData, required, nullable) — The conference metadata supplied by Microsoft Teams

### CustomLocation

Use this to describe an existing Calendly-supported event location.

- `type` (enum, required) — The event location doesn't fall into a standard category defined by the event host (publisher)
  - Allowed values: `custom`
- `location` (string, required, nullable) — The location description provided by the event host (publisher)

### InviteeSpecifiedLocation

Information about an event location that’s specified by the invitee.

- `type` (enum, required) — The event location selected by the invitee
  - Allowed values: `ask_invitee`
- `location` (string, required) — The event location description provided by the invitee

### WebExConference

Details about an Event that will take place using a WebEx conference. Location details will not be available 6 months after event has occurred.

- `type` (enum, required) — The event location is a WebEx conference
  - Allowed values: `webex_conference`
- `status` (enum, required, nullable) — Indicates the current status of the WebEx conference \* Expect only `pushed` status to have non-`null` values for `join_url` & `data` fields. - `processing` Location details generation pending - `initiated` Requesting location details from WebEx - `pushed` Location details are available - `failed` Error occurred or event has been canceled - `null` Location details are no longer available
  - Allowed values: `processing`, `initiated`, `pushed`, `failed`
- `join_url` (string, required, nullable) — WebEx conference meeting url
- `data` (WebExConferenceData, required, nullable) — The conference metadata supplied by GoToMeeting

### SubmissionCustomMessageResultValue

Contains an object with custom message headline and body.

- `headline` (string, required) — Headline displayed when answers don't match any routes.
- `body` (string, required) — Body text displayed when answers don't match any routes.

### ContactCustomFieldValue

The custom field value; the accepted type is set by the field definition's `field_type`. `text` and `single_select` take a string (`single_select` must equal one of the definition's option `uuid`s); `number` takes a number; `boolean` takes a boolean; `currency` takes an integer amount in the currency's minor units (the ISO currency code lives on the field definition, not on this entry); `date` takes a string in ISO 8601 date format (`YYYY-MM-DD`); `tags` takes an array of strings. Scalar fields reject array values, and `tags` rejects non-array values.

### ZoomConferenceData

The conference metadata supplied by Zoom

- `id` (ZoomConferenceDataId, optional) — The conference ID provided by Zoom
- `settings` (ZoomConferenceDataSettings, optional)
- `extra` (ZoomConferenceDataExtra, optional)
- `password` (string, optional) — Zoom meeting password

### GotoMeetingConferenceData

The conference metadata supplied by GoToMeeting

- `uniqueMeetingId` (double, optional) — Canonical reference (unique identifier) for the GoToMeeting conference
- `conferenceCallInfo` (string, optional)

### MicrosoftTeamsConferenceData

The conference metadata supplied by Microsoft Teams

- `id` (string, optional) — The conference ID provided by Microsoft Teams
- `audioConferencing` (MicrosoftTeamsConferenceDataAudioConferencing, optional, nullable)

### WebExConferenceData

The conference metadata supplied by GoToMeeting

- `id` (string, required) — Canonical reference (unique identifier) for the WebEx conference
- `telephony` (WebExConferenceDataTelephony, required)
- `password` (string, required)

### ZoomConferenceDataId

The conference ID provided by Zoom

### ZoomConferenceDataSettings

- `global_dial_in_numbers` (list of ZoomConferenceDataSettingsGlobalDialInNumbersItems, optional)

### ZoomConferenceDataExtra

- `intl_numbers_url` (string, optional) — Zoom International Dial-in Numbers URL

### MicrosoftTeamsConferenceDataAudioConferencing

- `conferenceId` (string, optional)
- `dialinUrl` (string, optional)
- `tollNumber` (string, optional)

### WebExConferenceDataTelephony

- `callInNumbers` (list of WebExConferenceDataTelephonyCallInNumbersItems, required)

### ZoomConferenceDataSettingsGlobalDialInNumbersItems

- `number` (string, optional) — Phone number
- `country` (string, optional) — Country code
- `type` (string, optional)
- `city` (string, optional)
- `country_name` (string, optional)

### WebExConferenceDataTelephonyCallInNumbersItems

- `label` (string, required)
- `callInNumber` (string, required)
- `tollType` (string, required)

## Examples

### Invitee Created

**Response**

```json
{
  "event": "invitee.created",
  "created_at": "2020-11-23T17:51:19.000000Z",
  "created_by": "https://api.calendly.com/users/AAAAAAAAAAAAAAAA",
  "payload": {
    "cancel_url": "https://calendly.com/cancellations/AAAAAAAAAAAAAAAA",
    "created_at": "2020-11-23T17:51:18.327602Z",
    "email": "test@example.com",
    "event": "https://api.calendly.com/scheduled_events/AAAAAAAAAAAAAAAA",
    "name": "John Doe",
    "new_invitee": null,
    "old_invitee": null,
    "questions_and_answers": [],
    "reschedule_url": "https://calendly.com/reschedulings/AAAAAAAAAAAAAAAA",
    "rescheduled": false,
    "scheduled_event": {
      "created_at": "2019-01-02T03:04:05.678123Z",
      "end_time": "2019-08-24T14:15:22.123456Z",
      "event_guests": [
        {
          "created_at": "2019-08-24T14:15:22.123456Z",
          "email": "user@example.com",
          "updated_at": "2019-08-24T14:15:22.123456Z"
        }
      ],
      "event_memberships": [
        {
          "user": "https://api.calendly.com/users/AAAAAAAAAAAAAAAA",
          "user_email": "user@example.com",
          "user_name": "John Smith"
        }
      ],
      "event_type": "https://api.calendly.com/event_types/AAAAAAAAAAAAAAAA",
      "invitees_counter": {
        "active": 0,
        "limit": 0,
        "total": 0
      },
      "location": {
        "additional_info": "Please check in at the front desk.",
        "location": "Calendly Office",
        "type": "physical"
      },
      "meeting_notes_html": "<p>Internal meeting notes</p>",
      "meeting_notes_plain": "Internal meeting notes",
      "name": "15 Minute Meeting",
      "start_time": "2019-08-24T14:15:22.123456Z",
      "status": "active",
      "updated_at": "2019-01-02T03:04:05.678123Z",
      "uri": "https://api.calendly.com/scheduled_events/AAAAAAAAAAAAAAAA"
    },
    "status": "active",
    "text_reminder_number": null,
    "timezone": "America/New_York",
    "tracking": {
      "salesforce_uuid": null,
      "utm_campaign": null,
      "utm_content": null,
      "utm_medium": null,
      "utm_source": null,
      "utm_term": null
    },
    "updated_at": "2020-11-23T17:51:18.341657Z",
    "uri": "https://api.calendly.com/scheduled_events/AAAAAAAAAAAAAAAA/invitees/AAAAAAAAAAAAAAAA"
  }
}
```

**SDK Code**

```python Invitee Created
import requests

url = "https://api.calendly.com/sample_webhook_data"

querystring = {"event":"invitee.created","organization":"https://api.calendly.com/organizations/AAAAAAAAAAAAAAAA","scope":"organization"}

headers = {"Authorization": "Bearer <token>"}

response = requests.get(url, headers=headers, params=querystring)

print(response.json())
```

```javascript Invitee Created
const url = 'https://api.calendly.com/sample_webhook_data?event=invitee.created&organization=https%3A%2F%2Fapi.calendly.com%2Forganizations%2FAAAAAAAAAAAAAAAA&scope=organization';
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Invitee Created
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://api.calendly.com/sample_webhook_data?event=invitee.created&organization=https%3A%2F%2Fapi.calendly.com%2Forganizations%2FAAAAAAAAAAAAAAAA&scope=organization"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("Authorization", "Bearer <token>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Invitee Created
require 'uri'
require 'net/http'

url = URI("https://api.calendly.com/sample_webhook_data?event=invitee.created&organization=https%3A%2F%2Fapi.calendly.com%2Forganizations%2FAAAAAAAAAAAAAAAA&scope=organization")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'

response = http.request(request)
puts response.read_body
```

```java Invitee Created
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://api.calendly.com/sample_webhook_data?event=invitee.created&organization=https%3A%2F%2Fapi.calendly.com%2Forganizations%2FAAAAAAAAAAAAAAAA&scope=organization")
  .header("Authorization", "Bearer <token>")
  .asString();
```

```php Invitee Created
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://api.calendly.com/sample_webhook_data?event=invitee.created&organization=https%3A%2F%2Fapi.calendly.com%2Forganizations%2FAAAAAAAAAAAAAAAA&scope=organization', [
  'headers' => [
    'Authorization' => 'Bearer <token>',
  ],
]);

echo $response->getBody();
```

```csharp Invitee Created
using RestSharp;

var client = new RestClient("https://api.calendly.com/sample_webhook_data?event=invitee.created&organization=https%3A%2F%2Fapi.calendly.com%2Forganizations%2FAAAAAAAAAAAAAAAA&scope=organization");
var request = new RestRequest(Method.GET);
request.AddHeader("Authorization", "Bearer <token>");
IRestResponse response = client.Execute(request);
```

```swift Invitee Created
import Foundation

let headers = ["Authorization": "Bearer <token>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://api.calendly.com/sample_webhook_data?event=invitee.created&organization=https%3A%2F%2Fapi.calendly.com%2Forganizations%2FAAAAAAAAAAAAAAAA&scope=organization")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```

### Invitee Canceled

**Response**

```json
{
  "event": "invitee.canceled",
  "created_at": "2020-11-23T17:54:22.000000Z",
  "created_by": "https://api.calendly.com/users/AAAAAAAAAAAAAAAA",
  "payload": {
    "cancel_url": "https://calendly.com/cancellations/AAAAAAAAAAAAAAAA",
    "cancellation": {
      "canceled_by": "John Doe",
      "canceler_type": "invitee",
      "created_at": "2020-11-23T17:54:22.356897Z",
      "reason": "Meeting Conflict"
    },
    "created_at": "2020-11-23T17:51:18.327602Z",
    "email": "test@example.com",
    "event": "https://api.calendly.com/scheduled_events/AAAAAAAAAAAAAAAA",
    "name": "John Doe",
    "new_invitee": null,
    "old_invitee": null,
    "questions_and_answers": [],
    "reschedule_url": "https://calendly.com/reschedulings/AAAAAAAAAAAAAAAA",
    "rescheduled": false,
    "scheduled_event": {
      "created_at": "2019-01-02T03:04:05.678123Z",
      "end_time": "2019-08-24T14:15:22.123456Z",
      "event_guests": [
        {
          "created_at": "2019-08-24T14:15:22.123456Z",
          "email": "user@example.com",
          "updated_at": "2019-08-24T14:15:22.123456Z"
        }
      ],
      "event_memberships": [
        {
          "user": "https://api.calendly.com/users/AAAAAAAAAAAAAAAA",
          "user_email": "user@example.com",
          "user_name": "John Smith"
        }
      ],
      "event_type": "https://api.calendly.com/event_types/AAAAAAAAAAAAAAAA",
      "invitees_counter": {
        "active": 0,
        "limit": 0,
        "total": 0
      },
      "location": {
        "additional_info": "Please check in at the front desk.",
        "location": "Calendly Office",
        "type": "physical"
      },
      "meeting_notes_html": "<p>Internal meeting notes</p>",
      "meeting_notes_plain": "Internal meeting notes",
      "name": "15 Minute Meeting",
      "start_time": "2019-08-24T14:15:22.123456Z",
      "status": "active",
      "updated_at": "2019-01-02T03:04:05.678123Z",
      "uri": "https://api.calendly.com/scheduled_events/AAAAAAAAAAAAAAAA"
    },
    "status": "canceled",
    "text_reminder_number": null,
    "timezone": "America/New_York",
    "tracking": {
      "salesforce_uuid": null,
      "utm_campaign": null,
      "utm_content": null,
      "utm_medium": null,
      "utm_source": null,
      "utm_term": null
    },
    "updated_at": "2020-11-23T17:54:22.356897Z",
    "uri": "https://api.calendly.com/scheduled_events/AAAAAAAAAAAAAAAA/invitees/AAAAAAAAAAAAAAAA"
  }
}
```

**SDK Code**

```python Invitee Canceled
import requests

url = "https://api.calendly.com/sample_webhook_data"

querystring = {"event":"invitee.canceled","organization":"https://api.calendly.com/organizations/AAAAAAAAAAAAAAAA","scope":"organization"}

headers = {"Authorization": "Bearer <token>"}

response = requests.get(url, headers=headers, params=querystring)

print(response.json())
```

```javascript Invitee Canceled
const url = 'https://api.calendly.com/sample_webhook_data?event=invitee.canceled&organization=https%3A%2F%2Fapi.calendly.com%2Forganizations%2FAAAAAAAAAAAAAAAA&scope=organization';
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Invitee Canceled
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://api.calendly.com/sample_webhook_data?event=invitee.canceled&organization=https%3A%2F%2Fapi.calendly.com%2Forganizations%2FAAAAAAAAAAAAAAAA&scope=organization"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("Authorization", "Bearer <token>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Invitee Canceled
require 'uri'
require 'net/http'

url = URI("https://api.calendly.com/sample_webhook_data?event=invitee.canceled&organization=https%3A%2F%2Fapi.calendly.com%2Forganizations%2FAAAAAAAAAAAAAAAA&scope=organization")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'

response = http.request(request)
puts response.read_body
```

```java Invitee Canceled
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://api.calendly.com/sample_webhook_data?event=invitee.canceled&organization=https%3A%2F%2Fapi.calendly.com%2Forganizations%2FAAAAAAAAAAAAAAAA&scope=organization")
  .header("Authorization", "Bearer <token>")
  .asString();
```

```php Invitee Canceled
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://api.calendly.com/sample_webhook_data?event=invitee.canceled&organization=https%3A%2F%2Fapi.calendly.com%2Forganizations%2FAAAAAAAAAAAAAAAA&scope=organization', [
  'headers' => [
    'Authorization' => 'Bearer <token>',
  ],
]);

echo $response->getBody();
```

```csharp Invitee Canceled
using RestSharp;

var client = new RestClient("https://api.calendly.com/sample_webhook_data?event=invitee.canceled&organization=https%3A%2F%2Fapi.calendly.com%2Forganizations%2FAAAAAAAAAAAAAAAA&scope=organization");
var request = new RestRequest(Method.GET);
request.AddHeader("Authorization", "Bearer <token>");
IRestResponse response = client.Execute(request);
```

```swift Invitee Canceled
import Foundation

let headers = ["Authorization": "Bearer <token>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://api.calendly.com/sample_webhook_data?event=invitee.canceled&organization=https%3A%2F%2Fapi.calendly.com%2Forganizations%2FAAAAAAAAAAAAAAAA&scope=organization")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```

### Invitee No Show

**Response**

```json
{
  "event": "invitee_no_show.created",
  "created_at": "2020-11-23T17:51:19.000000Z",
  "created_by": "https://api.calendly.com/users/AAAAAAAAAAAAAAAA",
  "payload": {
    "cancel_url": "https://calendly.com/cancellations/AAAAAAAAAAAAAAAA",
    "created_at": "2020-11-23T17:51:18.327602Z",
    "email": "test@example.com",
    "event": "https://api.calendly.com/scheduled_events/AAAAAAAAAAAAAAAA",
    "name": "John Doe",
    "new_invitee": null,
    "no_show": {
      "created_at": "2020-11-23T17:51:18.341657Z",
      "uri": "https://api.calendly.com/invitee_no_shows/AAAAAAAAAAAAAAAA"
    },
    "old_invitee": null,
    "questions_and_answers": [],
    "reschedule_url": "https://calendly.com/reschedulings/AAAAAAAAAAAAAAAA",
    "rescheduled": false,
    "scheduled_event": {
      "created_at": "2019-01-02T03:04:05.678123Z",
      "end_time": "2019-08-24T14:15:22.123456Z",
      "event_guests": [
        {
          "created_at": "2019-08-24T14:15:22.123456Z",
          "email": "user@example.com",
          "updated_at": "2019-08-24T14:15:22.123456Z"
        }
      ],
      "event_memberships": [
        {
          "user": "https://api.calendly.com/users/AAAAAAAAAAAAAAAA",
          "user_email": "user@example.com",
          "user_name": "John Smith"
        }
      ],
      "event_type": "https://api.calendly.com/event_types/AAAAAAAAAAAAAAAA",
      "invitees_counter": {
        "active": 0,
        "limit": 0,
        "total": 0
      },
      "location": {
        "additional_info": "Please check in at the front desk.",
        "location": "Calendly Office",
        "type": "physical"
      },
      "meeting_notes_html": "<p>Internal meeting notes</p>",
      "meeting_notes_plain": "Internal meeting notes",
      "name": "15 Minute Meeting",
      "start_time": "2019-08-24T14:15:22.123456Z",
      "status": "active",
      "updated_at": "2019-01-02T03:04:05.678123Z",
      "uri": "https://api.calendly.com/scheduled_events/AAAAAAAAAAAAAAAA"
    },
    "status": "active",
    "text_reminder_number": null,
    "timezone": "America/New_York",
    "tracking": {
      "salesforce_uuid": null,
      "utm_campaign": null,
      "utm_content": null,
      "utm_medium": null,
      "utm_source": null,
      "utm_term": null
    },
    "updated_at": "2020-11-23T17:51:18.341657Z",
    "uri": "https://api.calendly.com/scheduled_events/AAAAAAAAAAAAAAAA/invitees/AAAAAAAAAAAAAAAA"
  }
}
```

**SDK Code**

```python Invitee No Show
import requests

url = "https://api.calendly.com/sample_webhook_data"

querystring = {"event":"invitee_no_show.created","organization":"https://api.calendly.com/organizations/AAAAAAAAAAAAAAAA","scope":"organization"}

headers = {"Authorization": "Bearer <token>"}

response = requests.get(url, headers=headers, params=querystring)

print(response.json())
```

```javascript Invitee No Show
const url = 'https://api.calendly.com/sample_webhook_data?event=invitee_no_show.created&organization=https%3A%2F%2Fapi.calendly.com%2Forganizations%2FAAAAAAAAAAAAAAAA&scope=organization';
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Invitee No Show
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://api.calendly.com/sample_webhook_data?event=invitee_no_show.created&organization=https%3A%2F%2Fapi.calendly.com%2Forganizations%2FAAAAAAAAAAAAAAAA&scope=organization"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("Authorization", "Bearer <token>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Invitee No Show
require 'uri'
require 'net/http'

url = URI("https://api.calendly.com/sample_webhook_data?event=invitee_no_show.created&organization=https%3A%2F%2Fapi.calendly.com%2Forganizations%2FAAAAAAAAAAAAAAAA&scope=organization")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'

response = http.request(request)
puts response.read_body
```

```java Invitee No Show
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://api.calendly.com/sample_webhook_data?event=invitee_no_show.created&organization=https%3A%2F%2Fapi.calendly.com%2Forganizations%2FAAAAAAAAAAAAAAAA&scope=organization")
  .header("Authorization", "Bearer <token>")
  .asString();
```

```php Invitee No Show
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://api.calendly.com/sample_webhook_data?event=invitee_no_show.created&organization=https%3A%2F%2Fapi.calendly.com%2Forganizations%2FAAAAAAAAAAAAAAAA&scope=organization', [
  'headers' => [
    'Authorization' => 'Bearer <token>',
  ],
]);

echo $response->getBody();
```

```csharp Invitee No Show
using RestSharp;

var client = new RestClient("https://api.calendly.com/sample_webhook_data?event=invitee_no_show.created&organization=https%3A%2F%2Fapi.calendly.com%2Forganizations%2FAAAAAAAAAAAAAAAA&scope=organization");
var request = new RestRequest(Method.GET);
request.AddHeader("Authorization", "Bearer <token>");
IRestResponse response = client.Execute(request);
```

```swift Invitee No Show
import Foundation

let headers = ["Authorization": "Bearer <token>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://api.calendly.com/sample_webhook_data?event=invitee_no_show.created&organization=https%3A%2F%2Fapi.calendly.com%2Forganizations%2FAAAAAAAAAAAAAAAA&scope=organization")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```

### Invitee No Show Deleted

**Response**

```json
{
  "event": "invitee_no_show.deleted",
  "created_at": "2020-11-23T17:51:19.000000Z",
  "created_by": "https://api.calendly.com/users/AAAAAAAAAAAAAAAA",
  "payload": {
    "cancel_url": "https://calendly.com/cancellations/AAAAAAAAAAAAAAAA",
    "created_at": "2020-11-23T17:51:18.327602Z",
    "email": "test@example.com",
    "event": "https://api.calendly.com/scheduled_events/AAAAAAAAAAAAAAAA",
    "name": "John Doe",
    "new_invitee": null,
    "old_invitee": null,
    "questions_and_answers": [],
    "reschedule_url": "https://calendly.com/reschedulings/AAAAAAAAAAAAAAAA",
    "rescheduled": false,
    "scheduled_event": {
      "created_at": "2019-01-02T03:04:05.678123Z",
      "end_time": "2019-08-24T14:15:22.123456Z",
      "event_guests": [
        {
          "created_at": "2019-08-24T14:15:22.123456Z",
          "email": "user@example.com",
          "updated_at": "2019-08-24T14:15:22.123456Z"
        }
      ],
      "event_memberships": [
        {
          "user": "https://api.calendly.com/users/AAAAAAAAAAAAAAAA",
          "user_email": "user@example.com",
          "user_name": "John Smith"
        }
      ],
      "event_type": "https://api.calendly.com/event_types/AAAAAAAAAAAAAAAA",
      "invitees_counter": {
        "active": 0,
        "limit": 0,
        "total": 0
      },
      "location": {
        "additional_info": "Please check in at the front desk.",
        "location": "Calendly Office",
        "type": "physical"
      },
      "meeting_notes_html": "<p>Internal meeting notes</p>",
      "meeting_notes_plain": "Internal meeting notes",
      "name": "15 Minute Meeting",
      "start_time": "2019-08-24T14:15:22.123456Z",
      "status": "active",
      "updated_at": "2019-01-02T03:04:05.678123Z",
      "uri": "https://api.calendly.com/scheduled_events/AAAAAAAAAAAAAAAA"
    },
    "status": "active",
    "text_reminder_number": null,
    "timezone": "America/New_York",
    "tracking": {
      "salesforce_uuid": null,
      "utm_campaign": null,
      "utm_content": null,
      "utm_medium": null,
      "utm_source": null,
      "utm_term": null
    },
    "updated_at": "2020-11-23T17:51:18.341657Z",
    "uri": "https://api.calendly.com/scheduled_events/AAAAAAAAAAAAAAAA/invitees/AAAAAAAAAAAAAAAA"
  }
}
```

**SDK Code**

```python Invitee No Show Deleted
import requests

url = "https://api.calendly.com/sample_webhook_data"

querystring = {"event":"invitee_no_show.deleted","organization":"https://api.calendly.com/organizations/AAAAAAAAAAAAAAAA","scope":"organization"}

headers = {"Authorization": "Bearer <token>"}

response = requests.get(url, headers=headers, params=querystring)

print(response.json())
```

```javascript Invitee No Show Deleted
const url = 'https://api.calendly.com/sample_webhook_data?event=invitee_no_show.deleted&organization=https%3A%2F%2Fapi.calendly.com%2Forganizations%2FAAAAAAAAAAAAAAAA&scope=organization';
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Invitee No Show Deleted
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://api.calendly.com/sample_webhook_data?event=invitee_no_show.deleted&organization=https%3A%2F%2Fapi.calendly.com%2Forganizations%2FAAAAAAAAAAAAAAAA&scope=organization"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("Authorization", "Bearer <token>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Invitee No Show Deleted
require 'uri'
require 'net/http'

url = URI("https://api.calendly.com/sample_webhook_data?event=invitee_no_show.deleted&organization=https%3A%2F%2Fapi.calendly.com%2Forganizations%2FAAAAAAAAAAAAAAAA&scope=organization")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'

response = http.request(request)
puts response.read_body
```

```java Invitee No Show Deleted
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://api.calendly.com/sample_webhook_data?event=invitee_no_show.deleted&organization=https%3A%2F%2Fapi.calendly.com%2Forganizations%2FAAAAAAAAAAAAAAAA&scope=organization")
  .header("Authorization", "Bearer <token>")
  .asString();
```

```php Invitee No Show Deleted
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://api.calendly.com/sample_webhook_data?event=invitee_no_show.deleted&organization=https%3A%2F%2Fapi.calendly.com%2Forganizations%2FAAAAAAAAAAAAAAAA&scope=organization', [
  'headers' => [
    'Authorization' => 'Bearer <token>',
  ],
]);

echo $response->getBody();
```

```csharp Invitee No Show Deleted
using RestSharp;

var client = new RestClient("https://api.calendly.com/sample_webhook_data?event=invitee_no_show.deleted&organization=https%3A%2F%2Fapi.calendly.com%2Forganizations%2FAAAAAAAAAAAAAAAA&scope=organization");
var request = new RestRequest(Method.GET);
request.AddHeader("Authorization", "Bearer <token>");
IRestResponse response = client.Execute(request);
```

```swift Invitee No Show Deleted
import Foundation

let headers = ["Authorization": "Bearer <token>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://api.calendly.com/sample_webhook_data?event=invitee_no_show.deleted&organization=https%3A%2F%2Fapi.calendly.com%2Forganizations%2FAAAAAAAAAAAAAAAA&scope=organization")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```

### Routing Form Submission Created

**Response**

```json
{
  "event": "routing_form_submission.created",
  "created_at": "2022-05-15T14:59:59.000000Z",
  "created_by": "https://api.calendly.com/users/AAAAAAAAAAAAAAAA",
  "payload": {
    "created_at": "2022-05-15T03:04:05.678Z",
    "questions_and_answers": [
      {
        "answer": "IT & Software",
        "question": "What is your industry?",
        "question_uuid": "dddddddd-dddd-dddd-dddd-dddddddddddd"
      }
    ],
    "result": {
      "type": "event_type",
      "value": "https://api.calendly.com/event_types/AAAAAAAAAAAAAAAA"
    },
    "routing_form": "https://api.calendly.com/routing_forms/AAAAAAAAAAAAAAAA",
    "submitter": "https://calendly.com/scheduled_events/AAAAAAAAAAAAAAAA/invitees/AAAAAAAAAAAAAAAA",
    "submitter_type": "Invitee",
    "tracking": {
      "salesforce_uuid": null,
      "utm_campaign": null,
      "utm_content": null,
      "utm_medium": null,
      "utm_source": null,
      "utm_term": null
    },
    "updated_at": "2022-05-15T06:05:04.321Z",
    "uri": "https://api.calendly.com/routing_form_submissions/AAAAAAAAAAAAAAAA"
  }
}
```

**SDK Code**

```python Routing Form Submission Created
import requests

url = "https://api.calendly.com/sample_webhook_data"

querystring = {"event":"routing_form_submission.created","organization":"https://api.calendly.com/organizations/AAAAAAAAAAAAAAAA","scope":"organization"}

headers = {"Authorization": "Bearer <token>"}

response = requests.get(url, headers=headers, params=querystring)

print(response.json())
```

```javascript Routing Form Submission Created
const url = 'https://api.calendly.com/sample_webhook_data?event=routing_form_submission.created&organization=https%3A%2F%2Fapi.calendly.com%2Forganizations%2FAAAAAAAAAAAAAAAA&scope=organization';
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Routing Form Submission Created
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://api.calendly.com/sample_webhook_data?event=routing_form_submission.created&organization=https%3A%2F%2Fapi.calendly.com%2Forganizations%2FAAAAAAAAAAAAAAAA&scope=organization"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("Authorization", "Bearer <token>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Routing Form Submission Created
require 'uri'
require 'net/http'

url = URI("https://api.calendly.com/sample_webhook_data?event=routing_form_submission.created&organization=https%3A%2F%2Fapi.calendly.com%2Forganizations%2FAAAAAAAAAAAAAAAA&scope=organization")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'

response = http.request(request)
puts response.read_body
```

```java Routing Form Submission Created
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://api.calendly.com/sample_webhook_data?event=routing_form_submission.created&organization=https%3A%2F%2Fapi.calendly.com%2Forganizations%2FAAAAAAAAAAAAAAAA&scope=organization")
  .header("Authorization", "Bearer <token>")
  .asString();
```

```php Routing Form Submission Created
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://api.calendly.com/sample_webhook_data?event=routing_form_submission.created&organization=https%3A%2F%2Fapi.calendly.com%2Forganizations%2FAAAAAAAAAAAAAAAA&scope=organization', [
  'headers' => [
    'Authorization' => 'Bearer <token>',
  ],
]);

echo $response->getBody();
```

```csharp Routing Form Submission Created
using RestSharp;

var client = new RestClient("https://api.calendly.com/sample_webhook_data?event=routing_form_submission.created&organization=https%3A%2F%2Fapi.calendly.com%2Forganizations%2FAAAAAAAAAAAAAAAA&scope=organization");
var request = new RestRequest(Method.GET);
request.AddHeader("Authorization", "Bearer <token>");
IRestResponse response = client.Execute(request);
```

```swift Routing Form Submission Created
import Foundation

let headers = ["Authorization": "Bearer <token>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://api.calendly.com/sample_webhook_data?event=routing_form_submission.created&organization=https%3A%2F%2Fapi.calendly.com%2Forganizations%2FAAAAAAAAAAAAAAAA&scope=organization")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```

### Contact Created

**Response**

```json
{
  "event": "contact.created",
  "created_at": "2026-01-15T18:01:10Z",
  "created_by": "https://api.calendly.com/users/AAAAAAAAAAAAAAAA",
  "payload": {
    "contact": {
      "city": "San Francisco",
      "company": "ExampleCo",
      "country": "US",
      "created_at": "2026-01-15T18:01:09Z",
      "creation_source": "calendly_api",
      "custom_fields": [
        {
          "label": "Lead source",
          "uri": "https://api.calendly.com/contacts/custom_field_definitions/CCCCCCCCCCCCCCCC",
          "value": "event"
        },
        {
          "label": "Tags",
          "uri": "https://api.calendly.com/contacts/custom_field_definitions/DDDDDDDDDDDDDDDD",
          "value": [
            "enterprise",
            "strategic"
          ]
        },
        {
          "label": "Opted in",
          "uri": "https://api.calendly.com/contacts/custom_field_definitions/EEEEEEEEEEEEEEEE",
          "value": true
        }
      ],
      "emails": [
        {
          "email": "jane.doe@example.com",
          "is_primary": true
        },
        {
          "email": "jane.alt@example.com",
          "is_primary": false
        }
      ],
      "job_title": "Director of Operations",
      "last_interaction_date": null,
      "last_meeting_date": null,
      "linkedin": "https://www.linkedin.com/in/janedoe",
      "name": "Jane Doe",
      "next_meeting_date": null,
      "phone_numbers": [
        {
          "phone_number": "+1-404-555-0199"
        },
        {
          "phone_number": "+1-405-554-0199"
        }
      ],
      "state": "CA",
      "timezone": "America/Los_Angeles",
      "updated_at": "2026-01-15T18:01:09Z",
      "uri": "https://api.calendly.com/contacts/CCCCCCCCCCCCCCCC"
    },
    "user_uuid": "bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb"
  }
}
```

**SDK Code**

```python Contact Created
import requests

url = "https://api.calendly.com/sample_webhook_data"

querystring = {"event":"contact.created","organization":"https://api.calendly.com/organizations/AAAAAAAAAAAAAAAA","scope":"organization"}

headers = {"Authorization": "Bearer <token>"}

response = requests.get(url, headers=headers, params=querystring)

print(response.json())
```

```javascript Contact Created
const url = 'https://api.calendly.com/sample_webhook_data?event=contact.created&organization=https%3A%2F%2Fapi.calendly.com%2Forganizations%2FAAAAAAAAAAAAAAAA&scope=organization';
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Contact Created
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://api.calendly.com/sample_webhook_data?event=contact.created&organization=https%3A%2F%2Fapi.calendly.com%2Forganizations%2FAAAAAAAAAAAAAAAA&scope=organization"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("Authorization", "Bearer <token>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Contact Created
require 'uri'
require 'net/http'

url = URI("https://api.calendly.com/sample_webhook_data?event=contact.created&organization=https%3A%2F%2Fapi.calendly.com%2Forganizations%2FAAAAAAAAAAAAAAAA&scope=organization")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'

response = http.request(request)
puts response.read_body
```

```java Contact Created
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://api.calendly.com/sample_webhook_data?event=contact.created&organization=https%3A%2F%2Fapi.calendly.com%2Forganizations%2FAAAAAAAAAAAAAAAA&scope=organization")
  .header("Authorization", "Bearer <token>")
  .asString();
```

```php Contact Created
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://api.calendly.com/sample_webhook_data?event=contact.created&organization=https%3A%2F%2Fapi.calendly.com%2Forganizations%2FAAAAAAAAAAAAAAAA&scope=organization', [
  'headers' => [
    'Authorization' => 'Bearer <token>',
  ],
]);

echo $response->getBody();
```

```csharp Contact Created
using RestSharp;

var client = new RestClient("https://api.calendly.com/sample_webhook_data?event=contact.created&organization=https%3A%2F%2Fapi.calendly.com%2Forganizations%2FAAAAAAAAAAAAAAAA&scope=organization");
var request = new RestRequest(Method.GET);
request.AddHeader("Authorization", "Bearer <token>");
IRestResponse response = client.Execute(request);
```

```swift Contact Created
import Foundation

let headers = ["Authorization": "Bearer <token>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://api.calendly.com/sample_webhook_data?event=contact.created&organization=https%3A%2F%2Fapi.calendly.com%2Forganizations%2FAAAAAAAAAAAAAAAA&scope=organization")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```

### Contact Updated

**Response**

```json
{
  "event": "contact.updated",
  "created_at": "2026-01-15T18:05:10Z",
  "created_by": "https://api.calendly.com/users/AAAAAAAAAAAAAAAA",
  "payload": {
    "contact": {
      "city": "San Francisco",
      "company": "ExampleCo",
      "country": "US",
      "created_at": "2026-01-15T18:01:09Z",
      "creation_source": "calendly_api",
      "custom_fields": [
        {
          "label": "Lead source",
          "uri": "https://api.calendly.com/contacts/custom_field_definitions/CCCCCCCCCCCCCCCC",
          "value": "event"
        },
        {
          "label": "Tags",
          "uri": "https://api.calendly.com/contacts/custom_field_definitions/DDDDDDDDDDDDDDDD",
          "value": [
            "enterprise",
            "strategic"
          ]
        },
        {
          "label": "Opted in",
          "uri": "https://api.calendly.com/contacts/custom_field_definitions/EEEEEEEEEEEEEEEE",
          "value": true
        }
      ],
      "emails": [
        {
          "email": "jane.doe@example.com",
          "is_primary": true
        },
        {
          "email": "jane.alt@example.com",
          "is_primary": false
        }
      ],
      "job_title": "Director of Operations",
      "last_interaction_date": "2026-01-12T09:30:00.000Z",
      "last_meeting_date": "2026-01-10T14:00:00.000Z",
      "linkedin": "https://www.linkedin.com/in/janedoe",
      "name": "Jane Doe",
      "next_meeting_date": "2026-01-20T15:00:00.000Z",
      "phone_numbers": [
        {
          "phone_number": "+1-404-555-0199"
        },
        {
          "phone_number": "+1-405-554-0199"
        }
      ],
      "state": "CA",
      "timezone": "America/Los_Angeles",
      "updated_at": "2026-01-15T18:05:00Z",
      "uri": "https://api.calendly.com/contacts/CCCCCCCCCCCCCCCC"
    },
    "user_uuid": "bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb"
  }
}
```

**SDK Code**

```python Contact Updated
import requests

url = "https://api.calendly.com/sample_webhook_data"

querystring = {"event":"contact.updated","organization":"https://api.calendly.com/organizations/AAAAAAAAAAAAAAAA","scope":"organization"}

headers = {"Authorization": "Bearer <token>"}

response = requests.get(url, headers=headers, params=querystring)

print(response.json())
```

```javascript Contact Updated
const url = 'https://api.calendly.com/sample_webhook_data?event=contact.updated&organization=https%3A%2F%2Fapi.calendly.com%2Forganizations%2FAAAAAAAAAAAAAAAA&scope=organization';
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Contact Updated
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://api.calendly.com/sample_webhook_data?event=contact.updated&organization=https%3A%2F%2Fapi.calendly.com%2Forganizations%2FAAAAAAAAAAAAAAAA&scope=organization"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("Authorization", "Bearer <token>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Contact Updated
require 'uri'
require 'net/http'

url = URI("https://api.calendly.com/sample_webhook_data?event=contact.updated&organization=https%3A%2F%2Fapi.calendly.com%2Forganizations%2FAAAAAAAAAAAAAAAA&scope=organization")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'

response = http.request(request)
puts response.read_body
```

```java Contact Updated
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://api.calendly.com/sample_webhook_data?event=contact.updated&organization=https%3A%2F%2Fapi.calendly.com%2Forganizations%2FAAAAAAAAAAAAAAAA&scope=organization")
  .header("Authorization", "Bearer <token>")
  .asString();
```

```php Contact Updated
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://api.calendly.com/sample_webhook_data?event=contact.updated&organization=https%3A%2F%2Fapi.calendly.com%2Forganizations%2FAAAAAAAAAAAAAAAA&scope=organization', [
  'headers' => [
    'Authorization' => 'Bearer <token>',
  ],
]);

echo $response->getBody();
```

```csharp Contact Updated
using RestSharp;

var client = new RestClient("https://api.calendly.com/sample_webhook_data?event=contact.updated&organization=https%3A%2F%2Fapi.calendly.com%2Forganizations%2FAAAAAAAAAAAAAAAA&scope=organization");
var request = new RestRequest(Method.GET);
request.AddHeader("Authorization", "Bearer <token>");
IRestResponse response = client.Execute(request);
```

```swift Contact Updated
import Foundation

let headers = ["Authorization": "Bearer <token>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://api.calendly.com/sample_webhook_data?event=contact.updated&organization=https%3A%2F%2Fapi.calendly.com%2Forganizations%2FAAAAAAAAAAAAAAAA&scope=organization")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```

### Contact Deleted

**Response**

```json
{
  "event": "contact.deleted",
  "created_at": "2026-05-06T13:35:50.580Z",
  "created_by": "https://api.calendly.com/users/AAAAAAAAAAAAAAAA",
  "payload": {
    "contact": {
      "deleted_at": "2026-05-06T13:35:50.580Z",
      "uri": "https://api.calendly.com/contacts/CCCCCCCCCCCCCCCC"
    },
    "user_uuid": "bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb"
  }
}
```

**SDK Code**

```python Contact Deleted
import requests

url = "https://api.calendly.com/sample_webhook_data"

querystring = {"event":"contact.deleted","organization":"https://api.calendly.com/organizations/AAAAAAAAAAAAAAAA","scope":"organization"}

headers = {"Authorization": "Bearer <token>"}

response = requests.get(url, headers=headers, params=querystring)

print(response.json())
```

```javascript Contact Deleted
const url = 'https://api.calendly.com/sample_webhook_data?event=contact.deleted&organization=https%3A%2F%2Fapi.calendly.com%2Forganizations%2FAAAAAAAAAAAAAAAA&scope=organization';
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Contact Deleted
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://api.calendly.com/sample_webhook_data?event=contact.deleted&organization=https%3A%2F%2Fapi.calendly.com%2Forganizations%2FAAAAAAAAAAAAAAAA&scope=organization"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("Authorization", "Bearer <token>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Contact Deleted
require 'uri'
require 'net/http'

url = URI("https://api.calendly.com/sample_webhook_data?event=contact.deleted&organization=https%3A%2F%2Fapi.calendly.com%2Forganizations%2FAAAAAAAAAAAAAAAA&scope=organization")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'

response = http.request(request)
puts response.read_body
```

```java Contact Deleted
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://api.calendly.com/sample_webhook_data?event=contact.deleted&organization=https%3A%2F%2Fapi.calendly.com%2Forganizations%2FAAAAAAAAAAAAAAAA&scope=organization")
  .header("Authorization", "Bearer <token>")
  .asString();
```

```php Contact Deleted
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://api.calendly.com/sample_webhook_data?event=contact.deleted&organization=https%3A%2F%2Fapi.calendly.com%2Forganizations%2FAAAAAAAAAAAAAAAA&scope=organization', [
  'headers' => [
    'Authorization' => 'Bearer <token>',
  ],
]);

echo $response->getBody();
```

```csharp Contact Deleted
using RestSharp;

var client = new RestClient("https://api.calendly.com/sample_webhook_data?event=contact.deleted&organization=https%3A%2F%2Fapi.calendly.com%2Forganizations%2FAAAAAAAAAAAAAAAA&scope=organization");
var request = new RestRequest(Method.GET);
request.AddHeader("Authorization", "Bearer <token>");
IRestResponse response = client.Execute(request);
```

```swift Contact Deleted
import Foundation

let headers = ["Authorization": "Bearer <token>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://api.calendly.com/sample_webhook_data?event=contact.deleted&organization=https%3A%2F%2Fapi.calendly.com%2Forganizations%2FAAAAAAAAAAAAAAAA&scope=organization")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```

### Meeting Recap Created

**Response**

```json
{
  "event": "meeting_recap.created",
  "created_at": "2025-01-15T18:01:10Z",
  "created_by": "https://api.calendly.com/users/AAAAAAAAAAAAAAAA",
  "payload": {
    "created_at": "2025-01-15T18:01:09Z",
    "event": {
      "attendees": [
        {
          "host": true,
          "user_email": "john@example.com",
          "user_name": "John Smith"
        },
        {
          "host": false,
          "user_email": "steve@example2.com",
          "user_name": "Steve Johnson"
        }
      ],
      "end_time": "2025-01-15T14:15:00Z",
      "location": {
        "location": "Calendly Office",
        "type": "physical"
      },
      "name": "15 Minute Meeting",
      "start_time": "2025-01-15T14:00:00Z",
      "uri": "https://api.calendly.com/scheduled_events/AAAAAAAAAAAAAAAA"
    },
    "recap": {
      "action_items_md": "- Send follow-up notes\n- Create project board",
      "created_at": "2025-01-15T18:01:09Z",
      "discussion_md": "Reviewed roadmap tradeoffs and dependencies.",
      "share_link": "https://calendly.com/s/meetings/BBBBBBBBBBBBBBBB",
      "summary_md": "We aligned on Q4 goals and owners.",
      "transcript": "https://api.calendly.com/meeting_recaps/BBBBBBBBBBBBBBBB/transcript",
      "updated_at": "2025-01-15T18:01:09Z",
      "uri": "https://api.calendly.com/meeting_recaps/BBBBBBBBBBBBBBBB"
    }
  }
}
```

**SDK Code**

```python Meeting Recap Created
import requests

url = "https://api.calendly.com/sample_webhook_data"

querystring = {"event":"meeting_recap.created","organization":"https://api.calendly.com/organizations/AAAAAAAAAAAAAAAA","scope":"organization"}

headers = {"Authorization": "Bearer <token>"}

response = requests.get(url, headers=headers, params=querystring)

print(response.json())
```

```javascript Meeting Recap Created
const url = 'https://api.calendly.com/sample_webhook_data?event=meeting_recap.created&organization=https%3A%2F%2Fapi.calendly.com%2Forganizations%2FAAAAAAAAAAAAAAAA&scope=organization';
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Meeting Recap Created
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://api.calendly.com/sample_webhook_data?event=meeting_recap.created&organization=https%3A%2F%2Fapi.calendly.com%2Forganizations%2FAAAAAAAAAAAAAAAA&scope=organization"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("Authorization", "Bearer <token>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Meeting Recap Created
require 'uri'
require 'net/http'

url = URI("https://api.calendly.com/sample_webhook_data?event=meeting_recap.created&organization=https%3A%2F%2Fapi.calendly.com%2Forganizations%2FAAAAAAAAAAAAAAAA&scope=organization")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'

response = http.request(request)
puts response.read_body
```

```java Meeting Recap Created
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://api.calendly.com/sample_webhook_data?event=meeting_recap.created&organization=https%3A%2F%2Fapi.calendly.com%2Forganizations%2FAAAAAAAAAAAAAAAA&scope=organization")
  .header("Authorization", "Bearer <token>")
  .asString();
```

```php Meeting Recap Created
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://api.calendly.com/sample_webhook_data?event=meeting_recap.created&organization=https%3A%2F%2Fapi.calendly.com%2Forganizations%2FAAAAAAAAAAAAAAAA&scope=organization', [
  'headers' => [
    'Authorization' => 'Bearer <token>',
  ],
]);

echo $response->getBody();
```

```csharp Meeting Recap Created
using RestSharp;

var client = new RestClient("https://api.calendly.com/sample_webhook_data?event=meeting_recap.created&organization=https%3A%2F%2Fapi.calendly.com%2Forganizations%2FAAAAAAAAAAAAAAAA&scope=organization");
var request = new RestRequest(Method.GET);
request.AddHeader("Authorization", "Bearer <token>");
IRestResponse response = client.Execute(request);
```

```swift Meeting Recap Created
import Foundation

let headers = ["Authorization": "Bearer <token>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://api.calendly.com/sample_webhook_data?event=meeting_recap.created&organization=https%3A%2F%2Fapi.calendly.com%2Forganizations%2FAAAAAAAAAAAAAAAA&scope=organization")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```

### Meeting Recap Updated

**Response**

```json
{
  "event": "meeting_recap.updated",
  "created_at": "2025-01-15T18:05:22Z",
  "created_by": "https://api.calendly.com/users/AAAAAAAAAAAAAAAA",
  "payload": {
    "event": {
      "attendees": [
        {
          "host": true,
          "user_email": "john@example.com",
          "user_name": "John Smith"
        },
        {
          "host": false,
          "user_email": "steve@example2.com",
          "user_name": "Steve Johnson"
        }
      ],
      "end_time": "2025-01-15T14:15:00Z",
      "location": {
        "location": "Calendly Office",
        "type": "physical"
      },
      "name": "15 Minute Meeting",
      "start_time": "2025-01-15T14:00:00Z",
      "uri": "https://api.calendly.com/scheduled_events/AAAAAAAAAAAAAAAA"
    },
    "recap": {
      "action_items_md": "- Create Jira epic",
      "created_at": "2025-01-15T18:01:09Z",
      "discussion_md": "Shortened notes",
      "share_link": "https://calendly.com/s/meetings/BBBBBBBBBBBBBBBB",
      "summary_md": "Updated summary after review.",
      "transcript": "https://api.calendly.com/meeting_recaps/BBBBBBBBBBBBBBBB/transcript",
      "updated_at": "2025-01-15T18:05:00Z",
      "uri": "https://api.calendly.com/meeting_recaps/BBBBBBBBBBBBBBBB"
    }
  }
}
```

**SDK Code**

```python Meeting Recap Updated
import requests

url = "https://api.calendly.com/sample_webhook_data"

querystring = {"event":"meeting_recap.updated","organization":"https://api.calendly.com/organizations/AAAAAAAAAAAAAAAA","scope":"organization"}

headers = {"Authorization": "Bearer <token>"}

response = requests.get(url, headers=headers, params=querystring)

print(response.json())
```

```javascript Meeting Recap Updated
const url = 'https://api.calendly.com/sample_webhook_data?event=meeting_recap.updated&organization=https%3A%2F%2Fapi.calendly.com%2Forganizations%2FAAAAAAAAAAAAAAAA&scope=organization';
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Meeting Recap Updated
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://api.calendly.com/sample_webhook_data?event=meeting_recap.updated&organization=https%3A%2F%2Fapi.calendly.com%2Forganizations%2FAAAAAAAAAAAAAAAA&scope=organization"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("Authorization", "Bearer <token>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Meeting Recap Updated
require 'uri'
require 'net/http'

url = URI("https://api.calendly.com/sample_webhook_data?event=meeting_recap.updated&organization=https%3A%2F%2Fapi.calendly.com%2Forganizations%2FAAAAAAAAAAAAAAAA&scope=organization")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'

response = http.request(request)
puts response.read_body
```

```java Meeting Recap Updated
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://api.calendly.com/sample_webhook_data?event=meeting_recap.updated&organization=https%3A%2F%2Fapi.calendly.com%2Forganizations%2FAAAAAAAAAAAAAAAA&scope=organization")
  .header("Authorization", "Bearer <token>")
  .asString();
```

```php Meeting Recap Updated
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://api.calendly.com/sample_webhook_data?event=meeting_recap.updated&organization=https%3A%2F%2Fapi.calendly.com%2Forganizations%2FAAAAAAAAAAAAAAAA&scope=organization', [
  'headers' => [
    'Authorization' => 'Bearer <token>',
  ],
]);

echo $response->getBody();
```

```csharp Meeting Recap Updated
using RestSharp;

var client = new RestClient("https://api.calendly.com/sample_webhook_data?event=meeting_recap.updated&organization=https%3A%2F%2Fapi.calendly.com%2Forganizations%2FAAAAAAAAAAAAAAAA&scope=organization");
var request = new RestRequest(Method.GET);
request.AddHeader("Authorization", "Bearer <token>");
IRestResponse response = client.Execute(request);
```

```swift Meeting Recap Updated
import Foundation

let headers = ["Authorization": "Bearer <token>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://api.calendly.com/sample_webhook_data?event=meeting_recap.updated&organization=https%3A%2F%2Fapi.calendly.com%2Forganizations%2FAAAAAAAAAAAAAAAA&scope=organization")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```

### Meeting Recap Deleted

**Response**

```json
{
  "event": "meeting_recap.deleted",
  "created_at": "2025-08-24T20:10:42Z",
  "created_by": "https://api.calendly.com/users/AAAAAAAAAAAAAAAA",
  "payload": {
    "event": {
      "uri": "https://api.calendly.com/scheduled_events/AAAAAAAAAAAAAAAA"
    },
    "recap": {
      "deleted_at": "2025-08-24T20:10:42Z",
      "uri": "https://api.calendly.com/meeting_recaps/BBBBBBBBBBBBBBBB"
    }
  }
}
```

**SDK Code**

```python Meeting Recap Deleted
import requests

url = "https://api.calendly.com/sample_webhook_data"

querystring = {"event":"meeting_recap.deleted","organization":"https://api.calendly.com/organizations/AAAAAAAAAAAAAAAA","scope":"organization"}

headers = {"Authorization": "Bearer <token>"}

response = requests.get(url, headers=headers, params=querystring)

print(response.json())
```

```javascript Meeting Recap Deleted
const url = 'https://api.calendly.com/sample_webhook_data?event=meeting_recap.deleted&organization=https%3A%2F%2Fapi.calendly.com%2Forganizations%2FAAAAAAAAAAAAAAAA&scope=organization';
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Meeting Recap Deleted
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://api.calendly.com/sample_webhook_data?event=meeting_recap.deleted&organization=https%3A%2F%2Fapi.calendly.com%2Forganizations%2FAAAAAAAAAAAAAAAA&scope=organization"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("Authorization", "Bearer <token>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Meeting Recap Deleted
require 'uri'
require 'net/http'

url = URI("https://api.calendly.com/sample_webhook_data?event=meeting_recap.deleted&organization=https%3A%2F%2Fapi.calendly.com%2Forganizations%2FAAAAAAAAAAAAAAAA&scope=organization")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'

response = http.request(request)
puts response.read_body
```

```java Meeting Recap Deleted
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://api.calendly.com/sample_webhook_data?event=meeting_recap.deleted&organization=https%3A%2F%2Fapi.calendly.com%2Forganizations%2FAAAAAAAAAAAAAAAA&scope=organization")
  .header("Authorization", "Bearer <token>")
  .asString();
```

```php Meeting Recap Deleted
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://api.calendly.com/sample_webhook_data?event=meeting_recap.deleted&organization=https%3A%2F%2Fapi.calendly.com%2Forganizations%2FAAAAAAAAAAAAAAAA&scope=organization', [
  'headers' => [
    'Authorization' => 'Bearer <token>',
  ],
]);

echo $response->getBody();
```

```csharp Meeting Recap Deleted
using RestSharp;

var client = new RestClient("https://api.calendly.com/sample_webhook_data?event=meeting_recap.deleted&organization=https%3A%2F%2Fapi.calendly.com%2Forganizations%2FAAAAAAAAAAAAAAAA&scope=organization");
var request = new RestRequest(Method.GET);
request.AddHeader("Authorization", "Bearer <token>");
IRestResponse response = client.Execute(request);
```

```swift Meeting Recap Deleted
import Foundation

let headers = ["Authorization": "Bearer <token>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://api.calendly.com/sample_webhook_data?event=meeting_recap.deleted&organization=https%3A%2F%2Fapi.calendly.com%2Forganizations%2FAAAAAAAAAAAAAAAA&scope=organization")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```