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 ` where `` 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 ` where `` 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 ` where `` 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 ` where `` 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 ` where `` 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)