Skip to main content

Calendars

Tags: calendars, scheduling

Calendar and scheduling management

In the product: Calendars

Resources

Request and response models used by the endpoints on this page.

CalendarResponse

FieldTypeRequiredDescription
calendarSourceString
colorString
createdAtDateTime
descriptionString
idInteger
isPublicBoolean
lastSyncedAtDateTime
nameString
ownerIdInteger
ownerNameString
remoteCalendarIdString
schedulesArray
slugString
syncErrorString
syncStatusString
templateUuidString
timezoneString
updatedAtDateTime
uuidString

Example:

{
"id": 0 // Integer,
"uuid": "string" // String,
"templateUuid": "string" // String,
"name": "string" // String,
"slug": "string" // String,
"description": "string" // String,
"timezone": "string" // String,
"color": "string" // String,
"isPublic": false // Boolean,
"remoteCalendarId": "string" // String, optional,
"syncStatus": "string" // String, optional,
"syncError": "string" // String, optional,
"lastSyncedAt": "2024-01-01T00:00:00Z" // DateTime, optional,
"calendarSource": "string" // String,
"ownerId": 0 // Integer,
"ownerName": "string" // String,
"schedules": [] // Array<CalendarScheduleResponse>, optional, default: PydanticUndefined,
"createdAt": "2024-01-01T00:00:00Z" // DateTime,
"updatedAt": "2024-01-01T00:00:00Z" // DateTime
}

CalendarScheduleResponse

FieldTypeRequiredDescription
availabilityTypeString
createdAtDateTime
daysOfWeekArray
descriptionString
endTimeDateTime
eventTypeIdsArray
idInteger
nameString
priorityInteger
recurrenceEndDateDateTime
recurrenceRuleObject
recurrenceTypeString
startTimeDateTime
updatedAtDateTime
uuidString

Example:

{
"id": 0 // Integer,
"uuid": "string" // String,
"name": "string" // String,
"description": "string" // String,
"availabilityType": "string" // String,
"recurrenceType": "string" // String,
"startTime": "2024-01-01T00:00:00Z" // DateTime,
"endTime": "2024-01-01T00:00:00Z" // DateTime,
"recurrenceRule": {} // Object,
"recurrenceEndDate": "2024-01-01T00:00:00Z" // DateTime,
"daysOfWeek": "string" // Array<String>,
"priority": 0 // Integer,
"eventTypeIds": 0 // Array<Integer>, optional, default: PydanticUndefined,
"createdAt": "2024-01-01T00:00:00Z" // DateTime,
"updatedAt": "2024-01-01T00:00:00Z" // DateTime
}

CreateCalendarRequest

FieldTypeRequiredDescription
colorString
descriptionString
eventRulesArray
isPublicBooleanDefault: False
nameString
slugString
timezoneStringDefault: UTC

Example:

{
"name": "string" // String,
"slug": "string" // String, optional,
"description": "string" // String, optional,
"timezone": "string" // String, optional, default: UTC,
"color": "string" // String, optional,
"isPublic": false // Boolean, optional, default: False,
"eventRules": [] // Array<EventRuleData>, optional
}

CreateCalendarScheduleRequest

FieldTypeRequiredDescription
availabilityTypeStringAVAILABLE or UNAVAILABLE
daysOfWeekArray
descriptionString
endTimeDateTime
eventTypeIdsArrayEvent types allowed in this schedule
nameString
priorityIntegerDefault: 0
recurrenceEndDateDateTime
recurrenceRuleObject
recurrenceTypeStringONCE, DAILY, WEEKLY, MONTHLY, or CUSTOM
startTimeDateTime

Example:

{
"name": "string" // String,
"description": "string" // String, optional,
"availabilityType": "string" // String, AVAILABLE or UNAVAILABLE,
"recurrenceType": "string" // String, ONCE, DAILY, WEEKLY, MONTHLY, or CUSTOM,
"startTime": "2024-01-01T00:00:00Z" // DateTime,
"endTime": "2024-01-01T00:00:00Z" // DateTime,
"recurrenceRule": {} // Object, optional,
"recurrenceEndDate": "2024-01-01T00:00:00Z" // DateTime, optional,
"daysOfWeek": "string" // Array<String>, optional,
"priority": 0 // Integer, optional, default: 0,
"eventTypeIds": 0 // Array<Integer>, optional, Event types allowed in this schedule
}

UpdateCalendarRequest

FieldTypeRequiredDescription
colorString
descriptionString
eventRulesArray
isPublicBoolean
nameString
slugString
timezoneString

Example:

{
"name": "string" // String, optional,
"slug": "string" // String, optional,
"description": "string" // String, optional,
"timezone": "string" // String, optional,
"color": "string" // String, optional,
"isPublic": false // Boolean, optional,
"eventRules": [] // Array<EventRuleData>, optional
}

UpdateCalendarScheduleRequest

FieldTypeRequiredDescription
availabilityTypeString
daysOfWeekArray
descriptionString
endTimeDateTime
eventTypeIdsArray
nameString
priorityInteger
recurrenceEndDateDateTime
recurrenceRuleObject
recurrenceTypeString
startTimeDateTime

Example:

{
"name": "string" // String, optional,
"description": "string" // String, optional,
"availabilityType": "string" // String, optional,
"recurrenceType": "string" // String, optional,
"startTime": "2024-01-01T00:00:00Z" // DateTime, optional,
"endTime": "2024-01-01T00:00:00Z" // DateTime, optional,
"recurrenceRule": {} // Object, optional,
"recurrenceEndDate": "2024-01-01T00:00:00Z" // DateTime, optional,
"daysOfWeek": "string" // Array<String>, optional,
"priority": 0 // Integer, optional,
"eventTypeIds": 0 // Array<Integer>, optional
}

Endpoints

List

GET /api/v2/w/{workspace_uuid}/calendars

Description:

List all calendars accessible to the authenticated user.

Authorization: Requires calendars:read scope

Parameters:

  • page (Integer)
  • pageSize (Integer)
  • includeSchedules (Boolean)

Response: See PaginatedResponse[CalendarResponse]


Create

POST /api/v2/w/{workspace_uuid}/calendars

Description:

Create a new calendar.

Creates an open/unconstrained calendar by default. Users can add schedules and event types later through the edit interface.

Authorization: Requires calendars:write scope

Parameters:

Response: See CalendarResponse


Delete Calendar Id

DELETE /api/v2/w/{workspace_uuid}/calendars/{calendar_id}

Description:

Delete a calendar.

Authorization: Requires calendars:admin scope

Parameters:

  • calendar_id (Integer)

Get Calendar Id

GET /api/v2/w/{workspace_uuid}/calendars/{calendar_id}

Description:

Get a specific calendar by ID.

Authorization: Requires calendars:read scope

Parameters:

  • calendar_id (Integer)
  • includeSchedules (Boolean)

Response: See CalendarResponse


Update Calendar Id

PUT /api/v2/w/{workspace_uuid}/calendars/{calendar_id}

Description:

Update an existing calendar.

Authorization: Requires calendars:write scope

Parameters:

Response: See CalendarResponse


Schedules

GET /api/v2/w/{workspace_uuid}/calendars/{calendar_id}/schedules

Description:

List all schedules for a calendar.

Authorization: Requires calendars:read scope

Parameters:

  • calendar_id (Integer)

Response: List of CalendarScheduleResponse


Schedules

POST /api/v2/w/{workspace_uuid}/calendars/{calendar_id}/schedules

Description:

Create a new schedule for a calendar.

Authorization: Requires calendars:write scope

Parameters:

Response: See CalendarScheduleResponse


Delete Schedules

DELETE /api/v2/w/{workspace_uuid}/calendars/{calendar_id}/schedules/{schedule_id}

Description:

Delete a schedule.

Authorization: Requires calendars:admin scope

Parameters:

  • calendar_id (Integer)
  • schedule_id (Integer)

Update Schedules

PUT /api/v2/w/{workspace_uuid}/calendars/{calendar_id}/schedules/{schedule_id}

Description:

Update an existing schedule.

Authorization: Requires calendars:write scope

Parameters:

Response: See CalendarScheduleResponse