Skip to main content

Calendly Destination

Nexla's bi-directional connectors allow data to flow both to and from any location, making it simple to create a FlexFlow data flow that sends data to a Calendly location.
calendly_api.png

Calendly

Create a Calendly Destination

  1. Click the + icon on the Nexset that will be sent to the Calendly destination, and select the Send to Destination option from the menu.

  2. Select the Calendly connector from the list of available destination connectors. Then, select the credential that will be used to connect to the Calendly organization, and click Next; or, create a new Calendly credential for use in this flow.

  3. In Nexla, Calendly destinations can be created using pre-built endpoint templates, which expedite destination setup for common Calendly endpoints. Each template is designed specifically for the corresponding Calendly endpoint, making destination configuration easy and efficient.
    • To configure this destination using a template, follow the instructions in Configure Using a Template.

    Calendly destinations can also be configured manually, allowing you to send data to Calendly endpoints not included in the pre-built templates or apply further customizations to exactly suit your needs.
    • To configure this destination manually, follow the instructions in Configure Manually.

Configure Using a Template

Nexla provides pre-built templates that can be used to rapidly configure destinations to send data to common Calendly endpoints. Each template is designed specifically for the corresponding Calendly endpoint, making destination setup easy and efficient.

  • To configure this destination using a template, select the endpoint to which data will be sent from the Endpoint pulldown menu. Then, click on the template in the list below to expand it, and follow the instructions to configure additional endpoint settings.

    Cancel Scheduled Event

    This endpoint cancels a scheduled event in Calendly. Cancellation triggers Calendly's standard invitee notification behavior, optionally including a reason that is shared with invitees per the event type's notification settings. Use this endpoint to automate cancellations driven by upstream systems — for example, canceling demos when an opportunity is closed-lost or canceling interviews when a candidate withdraws.

    • Enter the UUID of the scheduled event in the Event UUID field. This field is required and is the trailing segment of the scheduled event's URI — for example, AAAA-BBBB-CCCC from https://api.calendly.com/scheduled_events/AAAA-BBBB-CCCC. To drive the destination from an upstream record, map the upstream event UUID into this field.
    • Each upstream record is sent as the JSON body of the POST call. Include an optional reason field (string) to share a cancellation reason with invitees, or send an empty body {}` to cancel without a reason.

    Cancellations are final from Calendly's perspective — the event cannot be uncanceled. Confirm upstream logic before activating a destination that drives this endpoint.

    Create Webhook Subscription

    This endpoint creates a new webhook subscription. Calendly will then send real-time event payloads to the registered URL whenever the specified events occur. Use this endpoint to programmatically provision webhook subscriptions for new tenants, environments, or integrations.

    • Each upstream record is sent as the JSON body of the POST call. The body must include the following fields, per Calendly's webhook subscription specification:

      • url: The HTTPS endpoint that Calendly will call when subscribed events occur.
      • events: An array of event names to subscribe to. Supported values include invitee.created, invitee.canceled, and routing_form_submission.created.
      • organization: The Organization URI (typically the same value stored on the Nexla credential).
      • scope: Either organization or user. Organization scope captures events across all members; user scope captures events for a single user.
      • user (when scope is user): The user URI to scope the subscription to.
      • signing_key (optional): A shared secret used to sign the webhook payload so that the receiver can verify authenticity.

    Webhook subscriptions require a paid Calendly plan (Standard, Teams, or Enterprise). For complete information about webhook events and payload formats, see Receive data from scheduled events in real time with webhook subscriptions.

    Delete Webhook Subscription

    This endpoint deletes a webhook subscription by UUID. Use it to deprovision old or unused subscriptions — for example, during tenant offboarding or when consolidating multiple subscriptions into one.

    • Enter the UUID of the webhook subscription in the Webhook Subscription UUID field. This field is required and is the trailing segment of the subscription URI returned by the List Webhook Subscriptions source endpoint. To drive the destination from an upstream record, map the upstream UUID into this field.
    • This endpoint uses the DELETE method and sends no request body.

    Create Single-Use Scheduling Link

    This endpoint creates a single-use scheduling link tied to a specific event type. Once an invitee books with the link, it becomes unusable. Use this endpoint to embed personalized booking links in outbound emails, CRM workflows, or post-purchase flows.

    • Each upstream record is sent as the JSON body of the POST call. The body must include the following fields:

      • max_event_count: The maximum number of events that can be booked with this link. Calendly currently restricts this to 1.
      • owner: The URI of the event type that the link will book against — for example, https://api.calendly.com/event_types/AAAAAAAAAAAAAAAA. Obtain this from the List Event Types source endpoint.
      • owner_type: Must be set to the string EventType.

    The response includes a booking_url field. Capture this value in a downstream Nexla webhook source (see Response Webhook below) to push the link back into your CRM or marketing automation tool.

    Mark Invitee No-Show

    This endpoint marks an invitee as a no-show for a scheduled event. Use it to capture no-show signals from upstream systems (such as a CRM or meeting platform) so they are reflected in Calendly's reporting.

    • Each upstream record is sent as the JSON body of the POST call. The body must include the invitee field set to the full invitee URI — for example, https://api.calendly.com/scheduled_events/AAAA-BBBB-CCCC/invitees/DDDD-EEEE-FFFF. Invitee URIs can be obtained from the List Event Invitees source endpoint.

    Unmark Invitee No-Show

    This endpoint removes the no-show marking from an invitee by no-show UUID. Use it to correct accidental no-show markings or to reflect a status change from an upstream system.

    • Enter the UUID of the no-show record in the Invitee No-Show UUID field. This field is required and is the trailing segment of the no-show URI returned when the Mark Invitee No-Show endpoint was originally called.
    • This endpoint uses the DELETE method and sends no request body.

    Remove User From Organization

    This endpoint removes a user from the organization by deleting their organization membership. Use it to automate offboarding driven by your identity provider, HRIS, or directory service.

    • Enter the UUID of the organization membership in the Membership UUID field. This field is required and is the trailing segment of the membership URI returned by the List Organization Memberships source endpoint.
    • This endpoint uses the DELETE method and sends no request body.

    Membership removal requires Admin or Owner privileges on the credential's account. Removal is final from Calendly's perspective — the user must be re-invited if access is needed again.

    Invite User To Organization

    This endpoint sends an organization invitation to a new user. The invitee receives a Calendly email and can accept to join the organization. Use this endpoint to automate provisioning driven by your identity provider, HRIS, or onboarding workflow.

    • Each upstream record is sent as the JSON body of the POST call. The body must include the email field set to the invitee's email address.
    • The organization is taken automatically from the credential's Organization URI — no organization parameter is required in the body.

    Revoke Organization Invitation

    This endpoint revokes a pending organization invitation by invitation UUID. Use it to cancel invitations that were sent in error, sent to the wrong address, or that should no longer be honored.

    • Enter the UUID of the invitation in the Invitation UUID field. This field is required and is the trailing segment of the invitation URI returned when the Invite User To Organization endpoint was originally called.
    • The organization is taken automatically from the credential's Organization URI.
    • This endpoint uses the DELETE method and sends no request body.

    Delete Invitee Data (GDPR)

    This endpoint initiates GDPR-compliant deletion of invitee data from Calendly. Use it to fulfill data subject access requests (DSARs) and right-to-erasure requirements at scale.

    • Each upstream record is sent as the JSON body of the POST call. The body must include the emails field as an array of invitee email addresses (for example, ["jane@example.com","john@example.com"]).

    This endpoint is restricted to the Enterprise tier. Deletion is irreversible — once submitted, the affected invitee data cannot be recovered. Confirm upstream logic and approvals before activating a destination that drives this endpoint.

    Delete Scheduled Event Data (GDPR)

    This endpoint initiates GDPR-compliant deletion of scheduled-event data within a time window. Use it to bulk-delete event data older than your organization's retention policy or to fulfill data minimization requirements.

    • Each upstream record is sent as the JSON body of the POST call. The body must include the following fields:

      • start_time: The inclusive start of the deletion window, in ISO 8601 format.
      • end_time: The inclusive end of the deletion window, in ISO 8601 format.

    This endpoint is restricted to the Enterprise tier. Deletion is irreversible — confirm the time window before submitting.

Configure Manually

Calendly destinations can be manually configured to send data to any valid Calendly API endpoint.

Using manual configuration, you can also configure Nexla to automatically send the response received from the Calendly API after each call to a new Nexla webhook data source — useful for capturing the URIs returned by create-style endpoints (such as the booking_url from a newly created scheduling link).

API Method

  1. To manually configure this destination, select the Advanced tab at the top of the configuration screen.

  2. Select the API method that will be used for calls to the Calendly API from the Method pulldown menu. Calendly write endpoints use:

    • POST: For creating resources (invitations, webhook subscriptions, scheduling links, no-show markings, and GDPR deletion requests).
    • DELETE: For removing resources (memberships, invitations, webhook subscriptions, and no-show markings).

Data Format

  1. Select the format in which the Nexset data will be sent to the Calendly API from the Content Format pulldown menu. Calendly endpoints accept JSON exclusively, so select the JSON format. Nexla will automatically convert each record to JSON for the API call.

API Endpoint URL

  1. Enter the URL of the Calendly API endpoint to which you want to send the Nexset data in the URL field. All Calendly v2 endpoints are served from https://api.calendly.com/<resource>. For endpoints that act on a specific resource (cancellation, deletion, revocation), include the resource UUID at the end of the URL.

Request Headers

Optional
  • If Nexla should include any additional request headers in API calls to this destination, enter the headers & corresponding values as comma-separated pairs in the Request Headers field (e.g., header1:value1,header2:value2).

    You do not need to include any headers already present in the credentials. The Calendly Authorization: Bearer and Content-Type: application/json headers are handled automatically by Nexla.

Exclude Attributes from the Call

Optional
  • If any record attributes in the Nexset should be omitted when sending data to this Calendly destination, select the attributes from the Exclude Attributes pulldown menu. This is useful for stripping internal-only fields (such as upstream identifiers or audit columns) before sending the payload to Calendly.

  • Any number of attributes can be selected for exclusion, and all excluded attributes will be shown in the field. To remove an attribute from the list, click the X icon next to the attribute name.

Record Batching

Optional

Most Calendly write endpoints (cancellations, invitations, no-show markings, single-use scheduling links) act on a single resource per call and are best driven one record per request. Batching is most useful for the GDPR deletion endpoints, where multiple invitee emails can be batched into a single emails array.

  1. If records should be sent to this destination in batched API calls, check the box next to Would you like to batch your records together? to enable record batching.

  2. Enter the maximum number of records that should be batched together in a single API call in the Batch Size field. By default, this value is set to 100.

  3. Select the algorithm that will be used to group records into batches from the Grouping Algorithm pulldown menu. The sample request shown in the panel on the right will be updated to reflect the current batching settings.

Response Webhook

Optional

Nexla can automatically send the response received from the Calendly API after each call to a new Nexla webhook data source. This option allows you to keep track of the status of each API call and any additional information returned after each call — for example, capturing the booking_url returned by the Create Single-Use Scheduling Link endpoint or the new resource URI returned by Create Webhook Subscription or Invite User To Organization.

  • To enable this option, check the box next to Would you like to process the API response as a Nexla Webhook source?.

Sample Request Payload

Sample request payloads containing a portion of the Nexset data that will be sent to the Calendly API endpoint based on the current settings are shown in the Sample Payload panel on the right. These samples can be referenced to ensure that the destination and request settings are correctly configured.

  • Click on a sample request payload to expand it and view the complete payload content.
  • Sample payloads are automatically updated with each setting change, making it easy to verify that changes achieve the desired effect.

Endpoint Testing (Manual Configuration)

After all endpoint settings have been configured, Nexla can send a test payload to the Calendly API to ensure that the destination is configured correctly.

  1. To send a test payload, select the Test button at the top of the Sample Payload panel, and click on a listed sample payload to expand it.

  2. If any modifications to the sample payload are needed, make the necessary changes directly within the sample window.

  3. Click the Send Test Data button at the top of a sample payload to send the test payload to the Calendly API using the current settings.

Save & Activate the Destination

  • Once all endpoint settings have been configured, click the Done button in the upper right corner of the screen to save and create the destination. To send the data to the configured Calendly endpoint, open the destination resource menu, and select Activate.

    The Nexset data will not be sent to Calendly until the destination is activated. Destinations can be activated immediately or at a later time, providing full control over data movement.