openapi: 3.1.0 info: title: Calendly Scheduling Activity Log Availability API description: The Calendly Scheduling API (v2) is a RESTful API that allows developers to programmatically manage scheduling workflows. It provides endpoints for managing users, organizations, event types, scheduled events, invitees, routing forms, availability schedules, and webhook subscriptions. The API uses JSON for request and response bodies, standard HTTP methods, and supports authentication via personal access tokens and OAuth 2.1. Developers can use it to create events on behalf of invitees, retrieve scheduling data, and integrate Calendly functionality directly into their applications. version: 2.0.0 contact: name: Calendly Developer Support url: https://developer.calendly.com/ termsOfService: https://calendly.com/pages/terms servers: - url: https://api.calendly.com description: Production Server security: - bearerAuth: [] tags: - name: Availability description: Endpoints for viewing available times for event types and managing user availability schedules. paths: /event_type_available_times: get: operationId: listEventTypeAvailableTimes summary: List event type available times description: Returns a list of available time slots for a specific event type within a given date range. This endpoint is used to display bookable times to potential invitees. tags: - Availability parameters: - name: event_type in: query required: true description: The URI of the event type to check availability for. schema: type: string format: uri - name: start_time in: query required: true description: The start of the time range to check, in UTC format. schema: type: string format: date-time - name: end_time in: query required: true description: The end of the time range to check, in UTC format. schema: type: string format: date-time responses: '200': description: Successfully retrieved available times content: application/json: schema: type: object properties: collection: type: array items: $ref: '#/components/schemas/AvailableTime' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' /user_busy_times: get: operationId: listUserBusyTimes summary: List user busy times description: Returns a list of time periods during which a user is busy, based on their connected calendars. Useful for checking a users availability before scheduling. tags: - Availability parameters: - name: user in: query required: true description: The URI of the user whose busy times to retrieve. schema: type: string format: uri - name: start_time in: query required: true description: The start of the time range to check, in UTC format. schema: type: string format: date-time - name: end_time in: query required: true description: The end of the time range to check, in UTC format. schema: type: string format: date-time responses: '200': description: Successfully retrieved busy times content: application/json: schema: type: object properties: collection: type: array items: $ref: '#/components/schemas/BusyTime' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' /user_availability_schedules: get: operationId: listUserAvailabilitySchedules summary: List user availability schedules description: Returns a list of availability schedules for a specific user. Availability schedules define the recurring time windows when a user is available for meetings. tags: - Availability parameters: - name: user in: query required: true description: The URI of the user whose availability schedules to retrieve. schema: type: string format: uri responses: '200': description: Successfully retrieved availability schedules content: application/json: schema: type: object properties: collection: type: array items: $ref: '#/components/schemas/AvailabilitySchedule' '401': $ref: '#/components/responses/Unauthorized' /user_availability_schedules/{uuid}: get: operationId: getUserAvailabilitySchedule summary: Get user availability schedule description: Returns a specific availability schedule by its UUID, including the timezone and rules that define available time windows. tags: - Availability parameters: - name: uuid in: path required: true description: The UUID of the availability schedule. schema: type: string responses: '200': description: Successfully retrieved the availability schedule content: application/json: schema: type: object properties: resource: $ref: '#/components/schemas/AvailabilitySchedule' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' components: schemas: AvailableTime: type: object description: An available time slot for an event type that can be booked by an invitee. properties: status: type: string enum: - available description: The status of the time slot. invitees_remaining: type: integer description: The number of remaining spots for group events. start_time: type: string format: date-time description: The start time of the available slot in UTC. scheduling_url: type: string format: uri description: The URL to schedule at this specific time. AvailabilitySchedule: type: object description: An availability schedule defining recurring time windows when a user is available for meetings. properties: uri: type: string format: uri description: The canonical URI of the availability schedule resource. name: type: string description: The name of the availability schedule. default: type: boolean description: Whether this is the users default availability schedule. timezone: type: string description: The IANA timezone for the schedule. rules: type: array items: type: object properties: type: type: string enum: - wday - date description: The type of rule (recurring weekday or specific date). wday: type: string enum: - sunday - monday - tuesday - wednesday - thursday - friday - saturday description: The day of the week for wday-type rules. date: type: string format: date description: The specific date for date-type rules. intervals: type: array items: type: object properties: from: type: string description: The start time of the interval (HH:MM format). to: type: string description: The end time of the interval (HH:MM format). description: The time intervals during which the user is available. description: The availability rules defining when the user is available. Error: type: object description: An error response from the Calendly API. properties: title: type: string description: A short summary of the error. message: type: string description: A detailed description of the error. details: type: array items: type: object properties: parameter: type: string description: The parameter that caused the error. message: type: string description: A description of what was wrong with the parameter. description: Specific details about validation errors. BusyTime: type: object description: A time period during which a user is busy based on their connected calendars. properties: type: type: string description: The type of busy time (e.g., calendly or external). start_time: type: string format: date-time description: The start of the busy period in UTC. end_time: type: string format: date-time description: The end of the busy period in UTC. buffered_start_time: type: string format: date-time description: The start time including buffer periods. buffered_end_time: type: string format: date-time description: The end time including buffer periods. event: type: object description: Details about the event causing the busy time. properties: uri: type: string format: uri description: The URI of the event. responses: Unauthorized: description: Authentication failed. Verify that a valid access token is provided in the Authorization header. content: application/json: schema: $ref: '#/components/schemas/Error' BadRequest: description: The request was invalid or malformed. Check the request body and parameters. content: application/json: schema: $ref: '#/components/schemas/Error' NotFound: description: The requested resource was not found. Verify the UUID or URI is correct. content: application/json: schema: $ref: '#/components/schemas/Error' securitySchemes: bearerAuth: type: http scheme: bearer description: Personal access token or OAuth 2.1 access token. Include in the Authorization header as Bearer {token}. externalDocs: description: Calendly API Documentation url: https://developer.calendly.com/api-docs