Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Calendly

OAuth 2.0 productivitycalendarscheduling

Connect this agent connector to let your agent:

  • Delete webhook subscription, data compliance events, data compliance invitees — Deletes a Calendly webhook subscription, stopping future event notifications
  • List event type availability schedules, group relationships, groups — Returns a list of availability schedules for the specified Calendly event type
  • Create invitee no show, organization invitation, share — Marks a specific invitee as a no-show for a scheduled Calendly event
  • Get sample webhook data, organization membership, organization invitation — Returns a sample webhook payload for the specified event type, useful for testing webhook integrations
  • Update event type availability schedules, event type — Updates the availability schedules (rules) for the specified Calendly event type
  • Revoke organization invitation — Revokes a pending invitation to a Calendly organization

This connector uses OAuth 2.0. Scalekit acts as the OAuth client: it redirects your user to Calendly, obtains an access token, and automatically refreshes it before it expires. Your agent code never handles tokens directly — you only pass a connectionName and a user identifier.

You supply your Calendly Connected App credentials (Client ID + Secret) once per environment in the Scalekit dashboard.

Set up the connector

Register your Scalekit environment with the Calendly connector so Scalekit handles the OAuth flow and token lifecycle for your users. Follow every step below from start to finish — by the end you will have a working connection.

  1. Create a Calendly OAuth application

    You need a Calendly OAuth app to get the Client ID and Client Secret that Scalekit will use to authorize your users.

    Go to the Calendly Developer Portal:

    • Open developer.calendly.com in your browser.
    • Click Log In at the top right and sign in with your Calendly account (the same account you use to log in to calendly.com).
    • After signing in, you land on the developer portal home page.

    Create a new app:

    • In the top navigation bar, click My Apps.

    • Click the Create New App button (top right of the page).

    • Fill in the form:

      FieldWhat to enter
      App NameA recognizable name for your integration, e.g. My AI Scheduling Agent
      App DescriptionBrief description, e.g. AI agent for managing scheduling
      Homepage URLYour app’s public URL. For testing you can use https://localhost
      Grant TypeSelect Authorization Code — this is required for OAuth 2.0
    • Leave Redirect URIs blank for now. You will add it in the next step.

    • Click Create App.

    After the app is created, Calendly takes you to the app’s OAuth Settings page. Keep this tab open.

    Create a new OAuth app in Calendly Developer Portal

  2. Copy the redirect URI from Scalekit

    Scalekit gives you a callback URL that Calendly will redirect users back to after they authorize your app. You need to register this URL in your Calendly OAuth app.

    In the Scalekit dashboard:

    • Go to app.scalekit.com and sign in.
    • In the left sidebar, click Agent Auth.
    • Click Create Connection.
    • Search for Calendly and click Create.
    • A connection details panel opens. Find the Redirect URI field — it looks like:
      https://<YOUR_ENV>.scalekit.cloud/sso/v1/oauth/conn_<ID>/callback
    • Click the copy icon next to the Redirect URI to copy it to your clipboard.

    Copy the redirect URI from Scalekit dashboard

  3. Register the redirect URI in Calendly

    Switch back to the Calendly Developer Portal tab you left open.

    • Make sure you are on the OAuth Settings page of your app.
    • Scroll down to the Redirect URIs section.
    • Click in the text box and paste the redirect URI you copied from Scalekit.
    • Click Add URI — the URI appears in the list above the input box.
    • Click Save Changes at the bottom of the page.

    Add the Scalekit redirect URI in Calendly OAuth Settings

  4. Enable OAuth scopes

    Scopes control which Calendly API resources your app can access on behalf of the user. You must enable the same scopes in your Calendly app that you will request in Scalekit.

    • On the OAuth Settings page, scroll to the Scopes section.

    • Check the box next to each scope you need:

      ScopeAccess grantedPlan required
      defaultUser profile, event types, scheduled events, availabilityAll plans
      activity_log:readAudit log entries (read-only)Enterprise only
    • For most integrations, checking default is sufficient.

    • Click Save Changes.

  5. Copy your Client ID and Client Secret

    Still on the OAuth Settings page in Calendly:

    • Scroll to the OAuth Credentials section at the top.
    • Client ID — this is shown in plain text. Click Copy ID to copy it.
    • Client Secret — click Reveal to show the secret, then copy it.

    Paste both values somewhere safe (a password manager or secrets vault). You will enter them into Scalekit in the next step.

  6. Add credentials in Scalekit

    Switch back to the Scalekit dashboard tab.

    • Go to Agent AuthConnections and click the Calendly connection you created in Step 2.

    • Fill in the credentials form:

      FieldValue
      Client IDPaste the Client ID from Step 5
      Client SecretPaste the Client Secret from Step 5
      PermissionsEnter the scopes you enabled in Step 4, e.g. default
    • Click Save.

    Add credentials in Scalekit dashboard

    Your Calendly connection is now configured. Scalekit will use these credentials to run the OAuth flow whenever a user connects their Calendly account.

Code examples

Connect a user’s Calendly account and make API calls on their behalf — Scalekit handles OAuth and token management automatically.

Proxy API Calls

import { ScalekitClient } from '@scalekit-sdk/node';
import 'dotenv/config';
const connectionName = 'calendly'; // get your connection name from connection configurations
const identifier = 'user_123'; // your unique user identifier
// Get your credentials from app.scalekit.com → Developers → Settings → API Credentials
const scalekit = new ScalekitClient(
process.env.SCALEKIT_ENV_URL,
process.env.SCALEKIT_CLIENT_ID,
process.env.SCALEKIT_CLIENT_SECRET
);
const actions = scalekit.actions;
// Authenticate the user
const { link } = await actions.getAuthorizationLink({
connectionName,
identifier,
});
console.log('🔗 Authorize Calendly:', link);
process.stdout.write('Press Enter after authorizing...');
await new Promise(r => process.stdin.once('data', r));
// Make a request via Scalekit proxy
const result = await actions.request({
connectionName,
identifier,
path: '/users/me',
method: 'GET',
});
console.log(result);
calendly_activity_log_list Returns a list of activity log entries for a Calendly organization. Requires Enterprise plan. 8 params

Returns a list of activity log entries for a Calendly organization. Requires Enterprise plan.

Name Type Required Description
organization string required Organization URI, e.g. https://api.calendly.com/organizations/{uuid}.
action string optional Filter by action type (e.g. user.created, event_type.updated).
actor string optional Filter by actor user URI.
count integer optional Number of results per page (max 100).
max_occurred_at string optional Filter entries occurring before this time (ISO 8601).
min_occurred_at string optional Filter entries occurring at or after this time (ISO 8601).
page_token string optional Token for fetching the next page of results.
sort string optional Sort field and direction, e.g. occurred_at:asc or occurred_at:desc.
calendly_current_user_get Returns the profile of the currently authenticated Calendly user. 0 params

Returns the profile of the currently authenticated Calendly user.

calendly_data_compliance_events_delete Deletes all Calendly event data within the specified time range for compliance purposes. This is a destructive operation. 2 params

Deletes all Calendly event data within the specified time range for compliance purposes. This is a destructive operation.

Name Type Required Description
end_time string required End of the time range for event data deletion in ISO 8601 format.
start_time string required Start of the time range for event data deletion in ISO 8601 format.
calendly_data_compliance_invitees_delete Deletes all Calendly invitee data for the specified email addresses for compliance purposes. This is a destructive operation. 1 param

Deletes all Calendly invitee data for the specified email addresses for compliance purposes. This is a destructive operation.

Name Type Required Description
emails array required Array of invitee email addresses whose data should be deleted.
calendly_event_invitee_get Returns the details of a specific invitee for a scheduled Calendly event. 2 params

Returns the details of a specific invitee for a scheduled Calendly event.

Name Type Required Description
event_uuid string required The UUID of the scheduled event.
invitee_uuid string required The UUID of the invitee.
calendly_event_invitees_list Returns a list of invitees for a specific scheduled Calendly event. 5 params

Returns a list of invitees for a specific scheduled Calendly event.

Name Type Required Description
uuid string required The UUID of the scheduled event.
count integer optional Number of results per page (max 100).
email string optional Filter invitees by email address.
page_token string optional Token for fetching the next page of results.
status string optional Filter invitees by status: active or canceled.
calendly_event_type_availability_schedules_list Returns a list of availability schedules for the specified Calendly event type. 2 params

Returns a list of availability schedules for the specified Calendly event type.

Name Type Required Description
event_type string required The URI of the event type, e.g. https://api.calendly.com/event_types/xxx.
user string optional The URI of the user to filter schedules by, e.g. https://api.calendly.com/users/xxx.
calendly_event_type_availability_schedules_update Updates the availability schedules (rules) for the specified Calendly event type. 3 params

Updates the availability schedules (rules) for the specified Calendly event type.

Name Type Required Description
event_type string required The URI of the event type whose availability schedules to update, e.g. https://api.calendly.com/event_types/xxx.
rules array required Array of availability rule objects. Each rule has type, intervals, and wday fields.
timezone string optional Timezone for the availability rules (e.g. America/New_York).
calendly_event_type_available_times_list Returns available scheduling times for a specific event type within a given date range. 3 params

Returns available scheduling times for a specific event type within a given date range.

Name Type Required Description
end_time string required End of the availability window in ISO 8601 format.
event_type string required Full URI of the event type, e.g. https://api.calendly.com/event_types/{uuid}.
start_time string required Start of the availability window in ISO 8601 format.
calendly_event_type_create Creates a new event type in a Calendly organization for a specified host. 6 params

Creates a new event type in a Calendly organization for a specified host.

Name Type Required Description
duration integer required Duration of the event in minutes.
host string required The URI of the user who will host this event type, e.g. https://api.calendly.com/users/xxx.
name string required Name of the event type.
organization string required The URI of the organization this event type belongs to, e.g. https://api.calendly.com/organizations/xxx.
color string optional Hex color code for the event type, e.g. '#FF5733'.
description string optional Optional description of the event type.
calendly_event_type_get Returns the details of a specific Calendly event type by its UUID. 1 param

Returns the details of a specific Calendly event type by its UUID.

Name Type Required Description
uuid string required The UUID of the event type.
calendly_event_type_memberships_list Returns a list of memberships (hosts) associated with the specified Calendly event type. 3 params

Returns a list of memberships (hosts) associated with the specified Calendly event type.

Name Type Required Description
event_type string required The URI of the event type, e.g. https://api.calendly.com/event_types/xxx.
count integer optional Number of results to return per page.
page_token string optional Token for paginating to the next set of results.
calendly_event_type_update Updates an existing Calendly event type. Only the fields provided will be updated. 5 params

Updates an existing Calendly event type. Only the fields provided will be updated.

Name Type Required Description
uuid string required The UUID of the event type to update.
color string optional Hex color code for the event type, e.g. '#FF5733'.
description string optional Updated description for the event type.
duration integer optional Updated duration of the event in minutes.
name string optional Updated name of the event type.
calendly_event_types_list Returns a list of event types for a user or organization. Provide either user or organization URI. 5 params

Returns a list of event types for a user or organization. Provide either user or organization URI.

Name Type Required Description
active boolean optional If true, only return active event types.
count integer optional Number of results to return per page (max 100).
organization string optional Filter by organization URI, e.g. https://api.calendly.com/organizations/{uuid}.
page_token string optional Token for fetching the next page of results.
user string optional Filter by user URI, e.g. https://api.calendly.com/users/{uuid}.
calendly_group_get Returns a single Calendly group record by UUID. 1 param

Returns a single Calendly group record by UUID.

Name Type Required Description
uuid string required The UUID of the group to retrieve.
calendly_group_relationship_get Returns a single Calendly group relationship record by UUID. 1 param

Returns a single Calendly group relationship record by UUID.

Name Type Required Description
uuid string required The UUID of the group relationship to retrieve.
calendly_group_relationships_list Returns a list of group relationships in the specified Calendly organization. 3 params

Returns a list of group relationships in the specified Calendly organization.

Name Type Required Description
organization string required The URI of the organization whose group relationships to list, e.g. https://api.calendly.com/organizations/xxx.
count integer optional Number of results to return per page.
page_token string optional Token for paginating to the next set of results.
calendly_groups_list Returns a list of groups in the specified Calendly organization. 4 params

Returns a list of groups in the specified Calendly organization.

Name Type Required Description
organization string required The URI of the organization whose groups to list, e.g. https://api.calendly.com/organizations/xxx.
count integer optional Number of results to return per page. Default is 20.
page_token string optional Token for paginating to the next set of results.
sort string optional Sort order for the results, e.g. 'created_at:asc' or 'created_at:desc'.
calendly_invitee_create Creates a new invitee for a scheduled Calendly event. 4 params

Creates a new invitee for a scheduled Calendly event.

Name Type Required Description
email string required Email address of the invitee.
event string required The URI of the scheduled event to add this invitee to, e.g. https://api.calendly.com/scheduled_events/xxx.
name string required Full name of the invitee.
timezone string optional IANA timezone string for the invitee, e.g. 'America/New_York'.
calendly_invitee_no_show_create Marks a specific invitee as a no-show for a scheduled Calendly event. 1 param

Marks a specific invitee as a no-show for a scheduled Calendly event.

Name Type Required Description
invitee string required The full URI of the invitee, e.g. https://api.calendly.com/scheduled_events/{event_uuid}/invitees/{invitee_uuid}.
calendly_invitee_no_show_delete Removes the no-show mark from an invitee on a scheduled Calendly event. 1 param

Removes the no-show mark from an invitee on a scheduled Calendly event.

Name Type Required Description
uuid string required The UUID of the invitee no-show record.
calendly_invitee_no_show_get Returns a specific invitee no-show record by UUID. 1 param

Returns a specific invitee no-show record by UUID.

Name Type Required Description
uuid string required The UUID of the invitee no-show record.
calendly_locations_list Returns a list of meeting locations available in the specified Calendly organization or for a specific user. 4 params

Returns a list of meeting locations available in the specified Calendly organization or for a specific user.

Name Type Required Description
user string required The URI of the user to filter locations by, e.g. https://api.calendly.com/users/xxx.
count integer optional Number of results to return per page.
organization string optional The URI of the organization to filter locations by, e.g. https://api.calendly.com/organizations/xxx.
page_token string optional Token for paginating to the next set of results.
calendly_one_off_event_type_create Creates a one-off event type in Calendly with a specific date, host, and optional co-hosts. 7 params

Creates a one-off event type in Calendly with a specific date, host, and optional co-hosts.

Name Type Required Description
date_setting object required Object defining the date setting for the one-off event. Must include 'type' (e.g. 'date_range') and 'start_date'/'end_date' or 'date'.
duration integer required Duration of the event in minutes.
host string required The URI of the user who will host this event type, e.g. https://api.calendly.com/users/xxx.
name string required Name of the one-off event type.
co_hosts array optional Array of user URIs for co-hosts, e.g. ['https://api.calendly.com/users/xxx'].
description string optional Optional description for the one-off event type.
location object optional Optional location object, e.g. {"kind": "physical", "location": "123 Main St"}.
calendly_organization_get Returns the details of a specific Calendly organization by its UUID. 1 param

Returns the details of a specific Calendly organization by its UUID.

Name Type Required Description
uuid string required The UUID of the organization.
calendly_organization_invitation_create Sends an invitation for a user to join a Calendly organization. 2 params

Sends an invitation for a user to join a Calendly organization.

Name Type Required Description
email string required Email address of the user to invite.
uuid string required The UUID of the organization.
calendly_organization_invitation_get Returns the details of a specific invitation sent to join a Calendly organization. 2 params

Returns the details of a specific invitation sent to join a Calendly organization.

Name Type Required Description
org_uuid string required The UUID of the organization that sent the invitation.
uuid string required The UUID of the invitation to retrieve.
calendly_organization_invitation_revoke Revokes a pending invitation to a Calendly organization. 2 params

Revokes a pending invitation to a Calendly organization.

Name Type Required Description
invitation_uuid string required The UUID of the invitation to revoke.
org_uuid string required The UUID of the organization.
calendly_organization_invitations_list Returns a list of pending invitations for a Calendly organization. 5 params

Returns a list of pending invitations for a Calendly organization.

Name Type Required Description
uuid string required The UUID of the organization.
count integer optional Number of results per page (max 100).
email string optional Filter by invitee email address.
page_token string optional Token for fetching the next page of results.
status string optional Filter by invitation status: pending, accepted, or declined.
calendly_organization_membership_delete Removes a user from a Calendly organization by deleting their membership. 1 param

Removes a user from a Calendly organization by deleting their membership.

Name Type Required Description
uuid string required The UUID of the organization membership to remove.
calendly_organization_membership_get Returns details of a specific organization membership by UUID. 1 param

Returns details of a specific organization membership by UUID.

Name Type Required Description
uuid string required The UUID of the organization membership.
calendly_organization_memberships_list Returns a list of organization memberships. Filter by organization URI or user URI. 5 params

Returns a list of organization memberships. Filter by organization URI or user URI.

Name Type Required Description
count integer optional Number of results per page (max 100).
email string optional Filter by member email address.
organization string optional Filter by organization URI, e.g. https://api.calendly.com/organizations/{uuid}.
page_token string optional Token for fetching the next page of results.
user string optional Filter by user URI, e.g. https://api.calendly.com/users/{uuid}.
calendly_outgoing_communications_list Returns a list of outgoing communications (emails and notifications) for the specified Calendly organization. 4 params

Returns a list of outgoing communications (emails and notifications) for the specified Calendly organization.

Name Type Required Description
organization string required The URI of the organization whose outgoing communications to list, e.g. https://api.calendly.com/organizations/xxx.
count integer optional Number of results to return per page.
page_token string optional Token for paginating to the next set of results.
sort string optional Sort order for the results, e.g. 'created_at:asc' or 'created_at:desc'.
calendly_routing_form_get Returns the details of a specific Calendly routing form by its UUID. 1 param

Returns the details of a specific Calendly routing form by its UUID.

Name Type Required Description
uuid string required The UUID of the routing form.
calendly_routing_form_submission_get Returns the details of a specific routing form submission by its UUID. 1 param

Returns the details of a specific routing form submission by its UUID.

Name Type Required Description
uuid string required The UUID of the routing form submission.
calendly_routing_form_submission_get_by_uuid Returns a single routing form submission by UUID. 1 param

Returns a single routing form submission by UUID.

Name Type Required Description
uuid string required The UUID of the routing form submission to retrieve.
calendly_routing_form_submissions_list Returns a list of all routing form submissions across the specified Calendly organization. 3 params

Returns a list of all routing form submissions across the specified Calendly organization.

Name Type Required Description
form string required The URI of the routing form to list submissions for.
count integer optional Number of results.
page_token string optional Token for next page.
calendly_routing_forms_list Returns a list of routing forms for a Calendly organization. 3 params

Returns a list of routing forms for a Calendly organization.

Name Type Required Description
organization string required Organization URI, e.g. https://api.calendly.com/organizations/{uuid}.
count integer optional Number of results per page (max 100).
page_token string optional Token for fetching the next page of results.
calendly_sample_webhook_data_get Returns a sample webhook payload for the specified event type, useful for testing webhook integrations. 4 params

Returns a sample webhook payload for the specified event type, useful for testing webhook integrations.

Name Type Required Description
event string required The webhook event type to get sample data for, e.g. 'invitee.created'.
organization string required The URI of the organization, e.g. https://api.calendly.com/organizations/xxx.
scope string required The scope of the webhook, either 'organization' or 'user'.
user string optional The URI of the user, required when scope is 'user', e.g. https://api.calendly.com/users/xxx.
calendly_scheduled_event_cancel Cancels a scheduled Calendly event. Optionally includes a reason for cancellation. 2 params

Cancels a scheduled Calendly event. Optionally includes a reason for cancellation.

Name Type Required Description
uuid string required The UUID of the scheduled event to cancel.
reason string optional Optional reason for the cancellation.
calendly_scheduled_event_get Returns the details of a specific scheduled event by its UUID. 1 param

Returns the details of a specific scheduled event by its UUID.

Name Type Required Description
uuid string required The UUID of the scheduled event.
calendly_scheduled_events_list Returns a list of scheduled events for a user or organization, with optional time range and status filters. 8 params

Returns a list of scheduled events for a user or organization, with optional time range and status filters.

Name Type Required Description
count integer optional Number of results per page (max 100).
max_start_time string optional Filter events starting before this time (ISO 8601).
min_start_time string optional Filter events starting at or after this time (ISO 8601).
organization string optional Filter by organization URI, e.g. https://api.calendly.com/organizations/{uuid}.
page_token string optional Token for fetching the next page of results.
sort string optional Sort field and direction, e.g. start_time:asc or start_time:desc.
status string optional Filter by event status: active or canceled.
user string optional Filter by user URI, e.g. https://api.calendly.com/users/{uuid}.
calendly_share_create Creates a shareable scheduling page for a Calendly event type with optional customizations like duration, date range, and availability rules. 8 params

Creates a shareable scheduling page for a Calendly event type with optional customizations like duration, date range, and availability rules.

Name Type Required Description
event_type string required The URI of the event type to create a share for, e.g. https://api.calendly.com/event_types/xxx.
availability_rule object optional Optional availability rule object to override default scheduling availability.
duration integer optional Override event duration in minutes for this share.
end_date string optional The end date (YYYY-MM-DD) after which the share will no longer accept bookings.
hide_location boolean optional Whether to hide the event location from the scheduling page.
max_booking_time integer optional Maximum number of days in the future that can be booked via this share.
name string optional Custom name for this share.
start_date string optional The start date (YYYY-MM-DD) from which the share will accept bookings.
calendly_user_availability_schedule_get Returns a single availability schedule for a Calendly user by UUID. 1 param

Returns a single availability schedule for a Calendly user by UUID.

Name Type Required Description
uuid string required The UUID of the availability schedule to retrieve.
calendly_user_availability_schedules_list Returns a list of availability schedules for the specified Calendly user. 1 param

Returns a list of availability schedules for the specified Calendly user.

Name Type Required Description
user string required The URI of the user whose availability schedules to list, e.g. https://api.calendly.com/users/xxx.
calendly_user_busy_times_list Returns a list of busy time blocks for a Calendly user within the specified time range. 3 params

Returns a list of busy time blocks for a Calendly user within the specified time range.

Name Type Required Description
end_time string required End of the time range in ISO 8601 format.
start_time string required Start of the time range in ISO 8601 format.
user string required The URI of the user whose busy times to list, e.g. https://api.calendly.com/users/xxx.
calendly_user_get Returns the profile of a specific Calendly user by their UUID. 1 param

Returns the profile of a specific Calendly user by their UUID.

Name Type Required Description
uuid string required The UUID of the user.
calendly_webhook_subscription_create Creates a new webhook subscription to receive Calendly event notifications at a callback URL. 6 params

Creates a new webhook subscription to receive Calendly event notifications at a callback URL.

Name Type Required Description
events string required JSON array of event names to subscribe to, e.g. ["invitee.created","invitee.canceled"].
organization string required Organization URI to scope the subscription.
scope string required Scope of the webhook: user or organization.
url string required The HTTPS callback URL that will receive webhook payloads.
signing_key string optional Optional signing key used to sign webhook payloads for verification.
user string optional User URI if scope is user-level.
calendly_webhook_subscription_delete Deletes a Calendly webhook subscription, stopping future event notifications. 1 param

Deletes a Calendly webhook subscription, stopping future event notifications.

Name Type Required Description
uuid string required The UUID of the webhook subscription to delete.
calendly_webhook_subscription_get Returns the details of a specific Calendly webhook subscription. 1 param

Returns the details of a specific Calendly webhook subscription.

Name Type Required Description
uuid string required The UUID of the webhook subscription.
calendly_webhook_subscriptions_list Returns a list of webhook subscriptions for a user or organization. 5 params

Returns a list of webhook subscriptions for a user or organization.

Name Type Required Description
count integer optional Number of results per page (max 100).
organization string optional Filter by organization URI, e.g. https://api.calendly.com/organizations/{uuid}.
page_token string optional Token for fetching the next page of results.
scope string optional Filter by webhook scope: user or organization.
user string optional Filter by user URI, e.g. https://api.calendly.com/users/{uuid}.