Calendly is a scheduling automation platform used by individuals, teams, and organizations to coordinate meetings, demos, interviews, and customer appointments. The Calendly v2 REST API exposes users, organizations, groups, organization memberships, event types, scheduled events, invitees, routing forms, routing form submissions, webhook subscriptions, activity log entries, and single-use scheduling links — enabling integrations that ingest meeting and routing data into downstream systems and that automate scheduling, user management, and lifecycle operations.
Power end-to-end data operations for your Calendly API with Nexla. Our bi-directional Calendly connector is purpose-built for Calendly, making it simple to ingest data, sync it across systems, and deliver it anywhere — all with no coding required. Nexla turns API-sourced data into ready-to-use, reusable data products and makes it easy to send data to Calendly or any other destination. With comprehensive monitoring, lineage tracking, and access controls, Nexla keeps your Calendly workflows fast, secure, and fully governed.
Features
Type: API
SourceDestination
Seamless API Integration: Connect to any endpoint as source or destination without coding, with automatic data product creation
Visual Composition & Chaining: Build complex integrations using visual templates, chain API calls, and compose workflows with data validation and filtering
API Proxy: Expose curated slices of your data securely with a secure and customizable API proxy that validates and transforms data on the fly
Request optimization with intelligent batching, retry, and caching to minimize API calls and costs
The Calendly v2 REST API authenticates with a Bearer token in the Authorization header. Nexla uses a Calendly personal access token for this, which is the recommended method for service-to-service integrations where a Nexla data flow connects on behalf of your own organization rather than on behalf of an interactive third-party Calendly user.
In addition to the token, the Nexla credential requires your Calendly Organization URI. This URI scopes most read endpoints (event types, scheduled events, organization memberships, groups, routing forms, activity log, and webhook subscriptions) to your organization. The Calendly API uses URIs — full URLs that identify a resource — in place of opaque IDs for most relationships.
Important
Personal access tokens grant access to your Calendly data using your account's permissions. Store the token in a secure secret manager, never commit it to source control, and rotate it immediately if you suspect it has been exposed. Webhook subscriptions and the Scheduling API require a paid Calendly plan (Standard, Teams, or Enterprise).
The token must be generated from the Calendly account that has the access level required for your data flow. For organization-scoped endpoints (the majority of those listed in this connector), generate the token from an account with the Admin or Owner role on the organization.
Sign in to the Calendly account that the Nexla integration will run as at calendly.com.
Open the account menu in the upper-right corner, and click Integrations & apps.
On the Integrations & apps page, select API and webhooks.
In the Personal access tokens section, click Get a token now (or Generate new token if you already have one).
Enter a descriptive name for the token (for example, "Nexla Integration"), and click Create token.
Calendly will email a one-time authentication code to your account email address. Open the email, copy the code, and enter it in the verification prompt.
When the token is displayed, click Copy token, and store the value in a secure secret manager. Calendly displays the full token value only once at generation time.
Personal access tokens can be revoked from the same API and webhooks screen at any time. If a token is lost or compromised, revoke it and generate a new one.
The Organization URI is the full URL that identifies your Calendly organization — for example, https://api.calendly.com/organizations/AAAAAAAAAAAAAAAA. The simplest way to obtain it is to call the Get Current User endpoint with the token generated above.
Run the following request, replacing <YOUR_PERSONAL_ACCESS_TOKEN> with the token value:
In the response, locate the resource.current_organization field. The value is your Organization URI. Copy this value for use in the Nexla credential.
The resource.uri field in the same response is your user URI, which Calendly uses to scope webhook subscriptions at the user level. The resource.current_organization field is the Organization URI required by this credential.
After selecting the data source/destination type, click the Add Credential tile to open the Add New Credential overlay.
Enter a name for the credential in the Credential Name field and a short, meaningful description in the Credential Description field.
Enter your Calendly personal access token in the API Key field. This is the token value generated from Integrations & apps > API and webhooks > Personal access tokens in Calendly. Nexla sends this value as Authorization: Bearer <token> on every API call.
The API Key field is masked after the credential is saved. To rotate the token, edit the credential and paste the new token value.
Enter your Calendly Organization URI in the Organization URI field. This must be the full URI returned by the Get Current User endpoint as resource.current_organization — for example, https://api.calendly.com/organizations/AAAAAAAAAAAAAAAA. Most read endpoints and the user-invitation destination endpoint are scoped by this value.
Click the Save button at the bottom of the overlay to save the configured credential. The newly added credential will now appear in a tile on the Authenticate screen during data source/destination creation and can be selected for use with a new data source or destination.
To create a new data flow, navigate to the Integrate section, and click the New Data Flow button. Select the Calendly connector tile, then select the credential that will be used to connect to the Calendly instance, and click Next; or, create a new Calendly credential for use in this flow.
Nexla provides pre-built templates that can be used to rapidly configure data sources to ingest data from common Calendly endpoints. Select the endpoint from which this source will fetch data from the Endpoint pulldown menu. Available endpoint templates are listed in the expandable boxes below. Click on an endpoint to see more information about it and how to configure your data source for this endpoint.
List Event Types
This endpoint returns all event types configured within the organization. In Calendly, an event type is the bookable meeting template (such as "30-minute intro call") that an invitee schedules against. Use this endpoint to sync your catalog of meeting templates into a warehouse or to obtain event-type URIs for use with the single-use scheduling link destination endpoint.
No configuration is required for this endpoint beyond selecting it. The organization is taken from the credential's Organization URI, and Nexla automatically paginates through all available event types using Calendly's next_page_token pagination.
Each event type record includes its own uri field — for example, https://api.calendly.com/event_types/AAAAAAAAAAAAAAAA. This is the value to use as the owner when creating a single-use scheduling link with the corresponding destination endpoint.
Get Current User
This endpoint returns the profile information of the user whose personal access token is on the credential. Use it to verify the credential, capture the authenticated user's URI, or obtain the current_organization value used to populate the Organization URI on the credential.
No configuration is required for this endpoint beyond selecting it. The endpoint always returns a single record describing the authenticated user.
The resource.current_organization field on the response is the value to enter in the Organization URI field of the Calendly credential.
List Groups
This endpoint returns all groups within the organization. Groups in Calendly are used by Admins and Owners to organize members by team, department, or function for the purpose of permissions and reporting. Use this endpoint to sync your Calendly group structure into a warehouse or identity system.
No configuration is required for this endpoint beyond selecting it. The organization is taken from the credential's Organization URI, and Nexla automatically paginates through all available groups.
List Organization Memberships
This endpoint returns the membership records that link users to the organization. Each membership record contains the user's URI, name, email, and role (Owner, Admin, or User). Use this endpoint to sync your Calendly user roster, drive provisioning workflows, or identify the membership UUIDs needed to remove users from the organization.
No configuration is required for this endpoint beyond selecting it. The organization is taken from the credential's Organization URI, and Nexla automatically paginates through all available memberships.
The trailing segment of each membership uri is the membership UUID required by the Remove User From Organization destination endpoint.
List Scheduled Events
This endpoint returns the scheduled events (booked meetings) for the organization. Each record includes start and end times, status, the associated event type, and the host(s). Use this endpoint to ingest booking activity into a warehouse, BI tool, or CRM for reporting on demos, customer meetings, or interview pipelines.
No configuration is required for this endpoint beyond selecting it. The organization is taken from the credential's Organization URI, and Nexla automatically paginates through all available scheduled events.
Each scheduled event's URI ends in the event UUID (for example, https://api.calendly.com/scheduled_events/AAAA-BBBB-CCCC). This UUID is the value to use when configuring the List Event Invitees source endpoint and the Cancel Scheduled Event destination endpoint.
List Event Invitees
This endpoint returns the invitees associated with a single scheduled event. Each invitee record includes email, name, status (active or canceled), responses to event-type questions, and tracking parameters. Use this endpoint to enrich a scheduled event with invitee detail or to ingest invitee responses for downstream CRM or marketing systems.
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. Event UUIDs can be obtained from the List Scheduled Events endpoint or from upstream Nexla data flows.
List Routing Forms
This endpoint returns the routing forms configured in the organization. Routing forms qualify visitors with custom questions and route them to the appropriate event type, owner, or external URL based on their responses. Use this endpoint to sync your routing form catalog or to obtain routing form URIs for use with the List Routing Form Submissions endpoint.
No configuration is required for this endpoint beyond selecting it. The organization is taken from the credential's Organization URI, and Nexla automatically paginates through all available routing forms.
List Routing Form Submissions
This endpoint returns the submissions received for a single routing form. Each submission includes the visitor's answers, the routing outcome (event type booked, owner assigned, or external URL redirect), and tracking metadata. Use this endpoint to ingest lead qualification data into a warehouse, CRM, or marketing automation tool.
Enter the full URI of the routing form in the Routing Form URI field. This field is required and must be the complete URI returned by the List Routing Forms endpoint — for example, https://api.calendly.com/routing_forms/AAAAAAAAAAAAAAAA. Submissions are filtered by the routing form, not by the organization, so the full URI is required even though the credential is organization-scoped.
List Activity Log Entries
This endpoint returns the activity log entries for the organization — the audit trail of administrative actions such as user invitations, role changes, removals, and event-type modifications. Use this endpoint to ingest the audit trail into a SIEM, a compliance store, or a security data warehouse.
No configuration is required for this endpoint beyond selecting it. The organization is taken from the credential's Organization URI, and Nexla automatically paginates through all available activity log entries.
Activity log access is available on the Enterprise plan. Calls from accounts on lower-tier plans will return an authorization error from Calendly.
List Group Relationships
This endpoint returns the group-relationship records that link organization members to groups. Use it to materialize the many-to-many mapping between members and groups for downstream reporting, access reviews, or HR system synchronization.
No configuration is required for this endpoint beyond selecting it. The organization is taken from the credential's Organization URI, and Nexla automatically paginates through all available group relationships.
List Webhook Subscriptions
This endpoint returns the webhook subscriptions registered at the organization scope. Each subscription includes the destination URL, the subscribed events (such as invitee.created, invitee.canceled, or routing_form_submission.created), state (active or disabled), and creation metadata. Use this endpoint to audit existing webhook subscriptions or to obtain subscription UUIDs for use with the Delete Webhook Subscription destination endpoint.
No configuration is required for this endpoint beyond selecting it. The organization is taken from the credential's Organization URI, and the scope is fixed to organization. Nexla automatically paginates through all available subscriptions.
Once the selected endpoint template has been configured, click the Test button to the right of the endpoint selection menu to retrieve a sample of the data that will be fetched. Sample data will be displayed in the Endpoint Test Result panel on the right, allowing you to verify that the source is configured correctly before saving.
Calendly data sources can also be manually configured to ingest data from any valid Calendly API endpoint, including endpoints not covered by the pre-built templates, chained API calls, or custom query parameters. Select the Advanced tab at the top of the configuration screen, and follow the instructions in Connect to Any API to configure the API method, endpoint URL, date/time and lookup macros, path to data, metadata, and request headers.
All Calendly v2 endpoints are served from https://api.calendly.com/<resource>, and read endpoints use the GET method. Most list endpoints require an organization (or user) query parameter set to the full URI of the scoping resource — for example, https://api.calendly.com/scheduled_events?organization=https://api.calendly.com/organizations/AAAAAAAAAAAAAAAA. List responses wrap records in a top-level collection array, so enter $.collection[*] as the path to data (use $.resource for single-resource endpoints such as /users/me), and Nexla automatically paginates using Calendly's next_page_token. The scheduled_events endpoint also accepts min_start_time and max_start_time parameters (ISO 8601), which pair well with date/time macros to ingest a rolling window. The Authorization: Bearer header is applied automatically from your credential.
Once all of the relevant settings have been configured, click the Create button in the upper right corner of the screen to save and create the new Calendly data source. Nexla will now begin ingesting data from the configured endpoint and will organize any data that it finds into one or more Nexsets.
Click the + icon on the Nexset that will be sent to the Calendly destination, and select the Send to Destination option from the menu. 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.
Nexla provides pre-built templates that can be used to rapidly configure destinations to send data to common Calendly endpoints. 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.
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.
Calendly destinations can also be manually configured to send data to any valid Calendly API endpoint. Select the Advanced tab at the top of the configuration screen, and follow the instructions in Connect to Any API to configure the API method, data format, endpoint URL, request headers, attribute exclusions, record batching, and response webhooks.
Calendly write endpoints accept JSON exclusively and are served from https://api.calendly.com/<resource>; use POST to create resources (invitations, webhook subscriptions, scheduling links, no-show markings, and GDPR deletion requests) and DELETE to remove them (memberships, invitations, webhook subscriptions, and no-show markings), including the resource UUID at the end of the URL for delete-style calls. The Authorization: Bearer and Content-Type: application/json headers are applied automatically from your credential. Batching is most useful for the GDPR deletion endpoints, where multiple invitee emails can be sent in a single emails array. Enable the response webhook option to capture values returned by create-style endpoints (such as the booking_url from a new single-use scheduling link, or a new resource URI) into a Nexla webhook source.
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.