Calendly
Authentication Type: API Key (Personal Access Token) Description: Manage Calendly scheduling data including events, event types, invitees, and availability schedules. List upcoming meetings, check who booked, cancel events, and inspect availability windows.
Authentication
To authenticate with Calendly, you need a Personal Access Token:
- Log in to your Calendly account at calendly.com
- Navigate to Integrations & Apps > API & Webhooks
- Under Personal Access Tokens, click Generate New Token
- Give the token a descriptive name and copy it
You'll need to provide:
- apiKey
string: Your Calendly Personal Access Token
Note: The token inherits the permissions of the user who created it. Organization-level operations require an admin-level token. Treat your token like a password and never share it publicly.
Users
Get Current User
Get the current authenticated user's profile. This returns the user URI and organization URI that are required as parameters for most other Calendly operations. Call this first to get the URIs you need.
Operation Type: Query (Read)
Parameters:
None required.
Returns:
- uri
string: The Calendly user URI (use this as theuserUriparameter in other calls) - name
string: Full name of the user - email
string: Email address - schedulingUrl
string: Public URL for the user's scheduling page - timezone
string: User's timezone (e.g.,America/New_York) - currentOrganization
string: URI of the current organization - slug
string: User slug for URL construction - avatarUrl
string(nullable): URL to user avatar image - createdAt
string: When the account was created - updatedAt
string: When the user was last updated
Example Usage:
{}
Event Types
List Event Types
List all event types (meeting types) for a user. Returns meeting names, durations, scheduling URLs, and active status. Use Get Current User first to get the user URI.
Operation Type: Query (Read)
Parameters:
- userUri
string(required): The user URI from Get Current User (e.g.,https://api.calendly.com/users/ABCDEF) - active
boolean(nullable): Filter by active status. If null, returns all event types. - count
number(nullable): Number of results per page (default 20, max 100) - pageToken
string(nullable): Token for pagination from the previous response
Returns:
- eventTypes
array of objects: List of event types- uri
string: The event type URI - name
string: Name of the event type (e.g., "30 Minute Meeting") - slug
string: URL-friendly slug - active
boolean: Whether the event type is currently active - type
string: StandardEventType or AdhocEventType - color
string: Color code for the event type - duration
number: Duration in minutes - description
string(nullable): Description of the event type - schedulingUrl
string: Public URL for scheduling this event type - kind
string: solo, group, or round_robin - createdAt
string: When the event type was created - updatedAt
string: When the event type was last updated
- uri
- pagination
object: Pagination info- count
number: Number of results returned - nextPage
string(nullable): URL for the next page - nextPageToken
string(nullable): Token for the next page
- count
Example Usage:
{
"userUri": "https://api.calendly.com/users/ABCDEF123456",
"active": true,
"count": 20
}
Events
List Events
List scheduled events for a user with optional date range and status filters. Use Get Current User first to get the user URI.
Operation Type: Query (Read)
Parameters:
- userUri
string(required): The user URI from Get Current User - minStartTime
string(nullable): Only return events starting on or after this time (ISO 8601 format, e.g.,2024-01-01T00:00:00Z) - maxStartTime
string(nullable): Only return events starting before this time (ISO 8601 format) - status
string(nullable): Filter by event status:activeorcanceled. If null, returns all. - count
number(nullable): Number of results per page (default 20, max 100) - pageToken
string(nullable): Token for pagination
Returns:
- events
array of objects: List of scheduled events- uri
string: The event URI (use this to get details or list invitees) - name
string: Name of the event - status
string: Event status:activeorcanceled - startTime
string: Event start time in ISO 8601 format - endTime
string: Event end time in ISO 8601 format - eventType
string: URI of the event type - location
object(nullable): Meeting location details- type
string: Location type (e.g.,google_conference,zoom,custom) - location
string(nullable): Physical location or custom text - joinUrl
string(nullable): URL to join the meeting (for virtual meetings)
- type
- meetingNotesPlain
string(nullable): Meeting notes in plain text - createdAt
string: When the event was created - updatedAt
string: When the event was last updated
- uri
- pagination
object: Pagination info
Example Usage:
{
"userUri": "https://api.calendly.com/users/ABCDEF123456",
"minStartTime": "2024-06-01T00:00:00Z",
"maxStartTime": "2024-06-30T23:59:59Z",
"status": "active"
}
Get Event
Get details of a specific scheduled event including location, invitee count, and cancellation info.
Operation Type: Query (Read)
Parameters:
- eventUri
string(required): The event URI from List Events (e.g.,https://api.calendly.com/scheduled_events/ABCDEF)
Returns:
- uri
string: The event URI - name
string: Name of the event - status
string: Event status - startTime
string: Start time in ISO 8601 format - endTime
string: End time in ISO 8601 format - eventType
string: URI of the event type - location
object(nullable): Meeting location details - inviteesCounter
object: Invitee count information- total
number: Total number of invitees - active
number: Number of active invitees - limit
number: Maximum number of invitees
- total
- meetingNotesPlain
string(nullable): Meeting notes - createdAt
string: When the event was created - updatedAt
string: When the event was last updated - cancellation
object(nullable): Cancellation details- canceledBy
string: Who canceled (host or invitee) - reason
string(nullable): Reason for cancellation
- canceledBy
Example Usage:
{
"eventUri": "https://api.calendly.com/scheduled_events/ABCDEF123456"
}
Cancel Event
Cancel a scheduled Calendly event. Provide the event UUID and an optional cancellation reason.
Operation Type: Mutation (Write)
Parameters:
- eventUuid
string(required): The event UUID (the last segment of the event URI, e.g., theABCDEFpart ofhttps://api.calendly.com/scheduled_events/ABCDEF) - reason
string(nullable): Optional reason for cancellation
Returns:
- success
boolean: Whether the cancellation was successful - canceledBy
string: Who canceled the event - reason
string(nullable): Reason provided for cancellation
Example Usage:
{
"eventUuid": "ABCDEF123456",
"reason": "Rescheduling to next week"
}
List Event Invitees
List all invitees for a specific scheduled event. Returns invitee names, emails, status, and responses to custom booking questions.
Operation Type: Query (Read)
Parameters:
- eventUuid
string(required): The event UUID (last segment of the event URI) - status
string(nullable): Filter by invitee status:activeorcanceled. If null, returns all. - count
number(nullable): Number of results per page (default 20, max 100) - pageToken
string(nullable): Token for pagination
Returns:
- invitees
array of objects: List of event invitees- uri
string: The invitee URI - name
string: Full name of the invitee - email
string: Email address of the invitee - status
string: Invitee status:activeorcanceled - timezone
string(nullable): Timezone of the invitee - createdAt
string: When the invitee was added - updatedAt
string: When the invitee record was last updated - rescheduleUrl
string: URL for the invitee to reschedule - cancelUrl
string: URL for the invitee to cancel - questionsAndAnswers
array of objects: Custom questions and answers from the booking form- question
string: The question asked - answer
string: The answer provided - position
number: Position/order of the question
- question
- uri
- pagination
object: Pagination info
Example Usage:
{
"eventUuid": "ABCDEF123456",
"status": "active"
}
Availability
List Availability Schedules
List availability schedules for a user, showing which days and time intervals they are available for meetings. Use Get Current User first to get the user URI.
Operation Type: Query (Read)
Parameters:
- userUri
string(required): The user URI from Get Current User
Returns:
- schedules
array of objects: List of availability schedules- uri
string: The schedule URI - name
string: Name of the availability schedule - default
boolean: Whether this is the default schedule - timezone
string: Timezone for the schedule (e.g.,America/New_York) - rules
array of objects: Availability rules- type
string: Rule type:wday(weekly day) ordate(specific date) - intervals
array of objects: Available time intervals- from
string: Start time in HH:MM format - to
string: End time in HH:MM format
- from
- wday
string(nullable): Day of week (monday, tuesday, etc.) for weekly rules - date
string(nullable): Specific date in YYYY-MM-DD format for date-based rules
- type
- uri
Example Usage:
{
"userUri": "https://api.calendly.com/users/ABCDEF123456"
}
Common Use Cases
Meeting Management:
- List all upcoming meetings for the week and export to a report
- Cancel meetings programmatically with a reason
- Track invitee details and booking form responses
Scheduling Insights:
- Monitor event types to see which meeting formats are most popular
- Analyze booking patterns to optimize availability windows
- Track cancellation rates and reasons
Sales & CRM Integration:
- Pull invitee data from scheduled meetings to enrich CRM records
- Combine with Apollo or LinkedIn to research prospects before calls
- Track meeting volume as a sales activity metric
Operations & Reporting:
- Build meeting dashboards by pulling all events for a date range
- Monitor team availability schedules
- Automate meeting follow-ups based on invitee data