Cal.com Orgs / Users / Schedules API
The Orgs / Users / Schedules API from Cal.com — 2 operation(s) for orgs / users / schedules.
The Orgs / Users / Schedules API from Cal.com — 2 operation(s) for orgs / users / schedules.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/cal-com:cal-com-orgs-users-schedules-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Cal.com API v2 Orgs / Users / Schedules API
description: ''
version: 1.0.0
contact: {}
servers: []
tags:
- name: Orgs / Users / Schedules
paths:
/v2/organizations/{orgId}/users/{userId}/schedules:
post:
description: 'Required membership role: `org admin`. PBAC permission: `availability.create`. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control. If accessed using an OAuth access token, the `ORG_SCHEDULE_WRITE` scope is required.'
operationId: OrganizationsSchedulesController_createUserSchedule
parameters:
- name: Authorization
in: header
description: For non-platform customers - value must be `Bearer <token>` where `<token>` is api key prefixed with cal_
required: false
schema:
type: string
- name: x-cal-secret-key
in: header
description: For platform customers - OAuth client secret key
required: false
schema:
type: string
- name: x-cal-client-id
in: header
description: For platform customers - OAuth client ID
required: false
schema:
type: string
- name: userId
required: true
in: path
schema:
type: number
- name: orgId
required: true
in: path
schema:
type: number
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateScheduleInput_2024_06_11'
responses:
'201':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/CreateScheduleOutput_2024_06_11'
summary: Create a schedule
tags:
- Orgs / Users / Schedules
x-oauth-scopes:
- ORG_SCHEDULE_WRITE
x-platform-plan: ESSENTIALS
get:
description: 'Required membership role: `org admin`. PBAC permission: `availability.readOrgAvailability`. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control. If accessed using an OAuth access token, the `ORG_SCHEDULE_READ` scope is required.'
operationId: OrganizationsSchedulesController_getUserSchedules
parameters:
- name: Authorization
in: header
description: For non-platform customers - value must be `Bearer <token>` where `<token>` is api key prefixed with cal_
required: false
schema:
type: string
- name: x-cal-secret-key
in: header
description: For platform customers - OAuth client secret key
required: false
schema:
type: string
- name: x-cal-client-id
in: header
description: For platform customers - OAuth client ID
required: false
schema:
type: string
- name: userId
required: true
in: path
schema:
type: number
- name: orgId
required: true
in: path
schema:
type: number
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/GetSchedulesOutput_2024_06_11'
summary: Get all schedules
tags:
- Orgs / Users / Schedules
x-oauth-scopes:
- ORG_SCHEDULE_READ
x-platform-plan: ESSENTIALS
/v2/organizations/{orgId}/users/{userId}/schedules/{scheduleId}:
get:
description: 'Required membership role: `org admin`. PBAC permission: `availability.readOrgAvailability`. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control. If accessed using an OAuth access token, the `ORG_SCHEDULE_READ` scope is required.'
operationId: OrganizationsSchedulesController_getUserSchedule
parameters:
- name: Authorization
in: header
description: For non-platform customers - value must be `Bearer <token>` where `<token>` is api key prefixed with cal_
required: false
schema:
type: string
- name: x-cal-secret-key
in: header
description: For platform customers - OAuth client secret key
required: false
schema:
type: string
- name: x-cal-client-id
in: header
description: For platform customers - OAuth client ID
required: false
schema:
type: string
- name: userId
required: true
in: path
schema:
type: number
- name: scheduleId
required: true
in: path
schema:
type: number
- name: orgId
required: true
in: path
schema:
type: number
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/GetScheduleOutput_2024_06_11'
summary: Get a schedule
tags:
- Orgs / Users / Schedules
x-oauth-scopes:
- ORG_SCHEDULE_READ
x-platform-plan: ESSENTIALS
patch:
description: 'Required membership role: `org admin`. PBAC permission: `availability.updateOrgAvailability`. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control. If accessed using an OAuth access token, the `ORG_SCHEDULE_WRITE` scope is required.'
operationId: OrganizationsSchedulesController_updateUserSchedule
parameters:
- name: Authorization
in: header
description: For non-platform customers - value must be `Bearer <token>` where `<token>` is api key prefixed with cal_
required: false
schema:
type: string
- name: x-cal-secret-key
in: header
description: For platform customers - OAuth client secret key
required: false
schema:
type: string
- name: x-cal-client-id
in: header
description: For platform customers - OAuth client ID
required: false
schema:
type: string
- name: userId
required: true
in: path
schema:
type: number
- name: scheduleId
required: true
in: path
schema:
type: number
- name: orgId
required: true
in: path
schema:
type: number
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateScheduleInput_2024_06_11'
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateScheduleOutput_2024_06_11'
summary: Update a schedule
tags:
- Orgs / Users / Schedules
x-oauth-scopes:
- ORG_SCHEDULE_WRITE
x-platform-plan: ESSENTIALS
delete:
description: 'Required membership role: `org admin`. PBAC permission: `availability.delete`. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control. If accessed using an OAuth access token, the `ORG_SCHEDULE_WRITE` scope is required.'
operationId: OrganizationsSchedulesController_deleteUserSchedule
parameters:
- name: Authorization
in: header
description: For non-platform customers - value must be `Bearer <token>` where `<token>` is api key prefixed with cal_
required: false
schema:
type: string
- name: x-cal-secret-key
in: header
description: For platform customers - OAuth client secret key
required: false
schema:
type: string
- name: x-cal-client-id
in: header
description: For platform customers - OAuth client ID
required: false
schema:
type: string
- name: userId
required: true
in: path
schema:
type: number
- name: scheduleId
required: true
in: path
schema:
type: number
- name: orgId
required: true
in: path
schema:
type: number
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/DeleteScheduleOutput_2024_06_11'
summary: Delete a schedule
tags:
- Orgs / Users / Schedules
x-oauth-scopes:
- ORG_SCHEDULE_WRITE
x-platform-plan: ESSENTIALS
components:
schemas:
CreateScheduleOutput_2024_06_11:
type: object
properties:
status:
enum:
- success
- error
type: string
example: success
data:
$ref: '#/components/schemas/ScheduleOutput_2024_06_11'
required:
- status
- data
UpdateScheduleOutput_2024_06_11:
type: object
properties:
status:
enum:
- success
- error
type: string
example: success
data:
$ref: '#/components/schemas/ScheduleOutput_2024_06_11'
required:
- status
- data
ScheduleAvailabilityInput_2024_06_11:
type: object
properties:
days:
type: array
items:
type: string
enum:
- Monday
- Tuesday
- Wednesday
- Thursday
- Friday
- Saturday
- Sunday
example:
- Monday
- Tuesday
description: Array of days when schedule is active.
startTime:
type: string
example: 08:00
description: startTime must be a valid time in format HH:MM e.g. 08:00
endTime:
type: string
example: '15:00'
description: endTime must be a valid time in format HH:MM e.g. 15:00
required:
- days
- startTime
- endTime
UpdateScheduleInput_2024_06_11:
type: object
properties:
name:
type: string
example: One-on-one coaching
timeZone:
type: string
example: Europe/Rome
availability:
example:
- days:
- Monday
- Tuesday
startTime: 09:00
endTime: '10:00'
type: array
items:
$ref: '#/components/schemas/ScheduleAvailabilityInput_2024_06_11'
isDefault:
type: boolean
example: true
overrides:
example:
- date: '2024-05-20'
startTime: '12:00'
endTime: '14:00'
type: array
items:
$ref: '#/components/schemas/ScheduleOverrideInput_2024_06_11'
CreateScheduleInput_2024_06_11:
type: object
properties:
name:
type: string
example: Catch up hours
timeZone:
type: string
example: Europe/Rome
description: Timezone is used to calculate available times when an event using the schedule is booked.
availability:
description: Each object contains days and times when the user is available. If not passed, the default availability is Monday to Friday from 09:00 to 17:00.
example:
- days:
- Monday
- Tuesday
startTime: '17:00'
endTime: '19:00'
- days:
- Wednesday
- Thursday
startTime: '16:00'
endTime: '20:00'
type: array
items:
$ref: '#/components/schemas/ScheduleAvailabilityInput_2024_06_11'
isDefault:
type: boolean
example: true
description: "Each user should have 1 default schedule. If you specified `timeZone` when creating managed user, then the default schedule will be created with that timezone.\n Default schedule means that if an event type is not tied to a specific schedule then the default schedule is used."
overrides:
description: Need to change availability for a specific date? Add an override.
example:
- date: '2024-05-20'
startTime: '18:00'
endTime: '21:00'
type: array
items:
$ref: '#/components/schemas/ScheduleOverrideInput_2024_06_11'
required:
- name
- timeZone
- isDefault
ScheduleOutput_2024_06_11:
type: object
properties:
id:
type: number
example: 254
ownerId:
type: number
example: 478
name:
type: string
example: Catch up hours
timeZone:
type: string
example: Europe/Rome
availability:
example:
- days:
- Monday
- Tuesday
startTime: '17:00'
endTime: '19:00'
- days:
- Wednesday
- Thursday
startTime: '16:00'
endTime: '20:00'
type: array
items:
$ref: '#/components/schemas/ScheduleAvailabilityInput_2024_06_11'
isDefault:
type: boolean
example: true
overrides:
example:
- date: '2024-05-20'
startTime: '18:00'
endTime: '21:00'
type: array
items:
$ref: '#/components/schemas/ScheduleOverrideInput_2024_06_11'
required:
- id
- ownerId
- name
- timeZone
- availability
- isDefault
- overrides
DeleteScheduleOutput_2024_06_11:
type: object
properties:
status:
enum:
- success
- error
type: string
example: success
required:
- status
GetScheduleOutput_2024_06_11:
type: object
properties:
status:
enum:
- success
- error
type: string
example: success
data:
type:
- object
- 'null'
allOf:
- $ref: '#/components/schemas/ScheduleOutput_2024_06_11'
required:
- status
- data
ScheduleOverrideInput_2024_06_11:
type: object
properties:
date:
type: string
example: '2024-05-20'
startTime:
type: string
example: '12:00'
description: startTime must be a valid time in format HH:MM e.g. 12:00
endTime:
type: string
example: '13:00'
description: endTime must be a valid time in format HH:MM e.g. 13:00
required:
- date
- startTime
- endTime
GetSchedulesOutput_2024_06_11:
type: object
properties:
status:
enum:
- success
- error
type: string
example: success
data:
type: array
items:
$ref: '#/components/schemas/ScheduleOutput_2024_06_11'
required:
- status
- data
x-provenance:
method: harvested
publisher: Cal.com
source: https://cal.com/docs/api-reference/v2/openapi.json
note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
stamped by stamp-openapi-provenance.py (roadmap#793)