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
| Field | Type | Required | Description |
|---|---|---|---|
calendarSource | String | ✓ | |
color | String | ✓ | |
createdAt | DateTime | ✓ | |
description | String | ✓ | |
eventRules | Array<EventRuleResponse> | ✓ | |
id | Integer | ✓ | |
isPublic | Boolean | ✓ | |
lastSyncedAt | DateTime | ||
name | String | ✓ | |
ownerId | Integer | ✓ | |
ownerName | String | ✓ | |
remoteCalendarId | String | ||
schedules | Array<CalendarScheduleResponse> | ||
slug | String | ✓ | |
syncError | String | ||
syncStatus | String | ||
templateUuid | String | ✓ | |
timezone | String | ✓ | |
updatedAt | DateTime | ✓ | |
uuid | String | ✓ |
Example:
{
"id": 0,
"uuid": "string",
"templateUuid": "string",
"name": "string",
"slug": "string",
"description": "string",
"timezone": "string",
"color": "string",
"isPublic": false,
"calendarSource": "string",
"ownerId": 0,
"ownerName": "string",
"createdAt": "2024-01-01T00:00:00Z",
"updatedAt": "2024-01-01T00:00:00Z",
"eventRules": []
}
CalendarScheduleResponse
| Field | Type | Required | Description |
|---|---|---|---|
availabilityType | String | ✓ | |
createdAt | DateTime | ✓ | |
daysOfWeek | Array | ✓ | |
description | String | ✓ | |
endTime | DateTime | ✓ | |
eventTypeIds | Array | ||
id | Integer | ✓ | |
name | String | ✓ | |
priority | Integer | ✓ | |
recurrenceEndDate | DateTime | ✓ | |
recurrenceRule | Object | ✓ | |
recurrenceType | String | ✓ | |
startTime | DateTime | ✓ | |
updatedAt | DateTime | ✓ | |
uuid | String | ✓ |
Example:
{
"id": 0,
"uuid": "string",
"name": "string",
"description": "string",
"availabilityType": "string",
"recurrenceType": "string",
"startTime": "2024-01-01T00:00:00Z",
"endTime": "2024-01-01T00:00:00Z",
"recurrenceRule": {},
"recurrenceEndDate": "2024-01-01T00:00:00Z",
"daysOfWeek": [],
"priority": 0,
"createdAt": "2024-01-01T00:00:00Z",
"updatedAt": "2024-01-01T00:00:00Z"
}
CreateCalendarRequest
| Field | Type | Required | Description |
|---|---|---|---|
color | String | ||
description | String | ||
eventRules | Array<EventRuleData> | null | ||
isPublic | Boolean | Default: False | |
name | String | ✓ | |
slug | String | ||
timezone | String | Default: UTC |
Example:
{
"name": "string",
"timezone": "UTC",
"isPublic": false
}
CreateCalendarScheduleRequest
| Field | Type | Required | Description |
|---|---|---|---|
availabilityType | String | ✓ | AVAILABLE or UNAVAILABLE |
daysOfWeek | Array | ||
description | String | ||
endTime | DateTime | ✓ | |
eventTypeIds | Array | Event types allowed in this schedule | |
name | String | ✓ | |
priority | Integer | Default: 0 | |
recurrenceEndDate | DateTime | ||
recurrenceRule | Object | ||
recurrenceType | String | ✓ | ONCE, DAILY, WEEKLY, MONTHLY, or CUSTOM |
startTime | DateTime | ✓ |
Example:
{
"name": "string",
"availabilityType": "string",
"recurrenceType": "string",
"startTime": "2024-01-01T00:00:00Z",
"endTime": "2024-01-01T00:00:00Z",
"priority": 0
}
EventRuleData
| Field | Type | Required | Description |
|---|---|---|---|
actionParams | dict[str, Any] | Parameters for the action | |
actionType | <enum EventRuleActionType | ✓ | The action type to execute |
active | Boolean | Whether the rule is active (default: True) | |
conditions | String | CEL condition expression for conditional execution | |
delay | Integer | Delay in seconds before executing the action (default: 0) | |
eventType | <enum EventRuleEventType | ✓ | The event type that triggers this rule |
name | String | Display name for the rule | |
objectType | EventRuleObjectType | The object type this rule applies to (inferred from parent if not provided) | |
triggerParams | dict[str, Any] | Parameters for the trigger (e.g., webhook config) | |
uuid | String | ✓ | UUID for matching/creating event rules |
Example:
{
"uuid": "string",
"eventType": null,
"actionType": null,
"active": true,
"delay": 0
}
EventRuleResponse
| Field | Type | Required | Description |
|---|---|---|---|
actionParams | Dict[str, Any] | ✓ | |
actionSetLocked | Boolean | Default: False | |
actionType | <enum EventRuleActionType | ✓ | |
active | Boolean | ✓ | |
appConnectionId | Integer | ||
calendarEventTypeId | Integer | ✓ | |
calendarId | Integer | ✓ | |
celBlockedAt | DateTime | ||
conditions | String | ✓ | |
createdAt | DateTime | ✓ | |
dataTypeId | Integer | ✓ | |
dataTypeName | String | ||
delay | Integer | ✓ | |
error | String | ✓ | |
errorMessage | String | ✓ | |
eventType | <enum EventRuleEventType | ✓ | |
failedAt | DateTime | ✓ | |
id | Integer | ✓ | |
journeyId | Integer | ||
journeyStepId | Integer | ✓ | |
name | String | ✓ | |
objectType | <enum EventRuleObjectType | ✓ | |
order | Integer | ✓ | |
routineId | Integer | ✓ | |
taskId | Integer | ✓ | |
taskName | String | ||
taskWorkflowId | Integer | ||
triggerParams | Dict[str, Any] | ✓ | |
updatedAt | DateTime | ✓ | |
uuid | String | ✓ | |
workflowRevisionId | Integer | ✓ |
Example:
{
"id": 0,
"uuid": "string",
"objectType": null,
"name": "string",
"eventType": null,
"conditions": "string",
"actionType": null,
"actionParams": {},
"triggerParams": {},
"active": false,
"createdAt": "2024-01-01T00:00:00Z",
"updatedAt": "2024-01-01T00:00:00Z",
"taskId": 0,
"dataTypeId": 0,
"routineId": 0,
"workflowRevisionId": 0,
"calendarId": 0,
"calendarEventTypeId": 0,
"journeyStepId": 0,
"error": "string",
"errorMessage": "string",
"failedAt": "2024-01-01T00:00:00Z",
"delay": 0,
"order": 0,
"actionSetLocked": false
}
PaginatedResponse[CalendarResponse]
| Field | Type | Required | Description |
|---|---|---|---|
items | Array<CalendarResponse> | ✓ | |
page | Integer | ✓ | |
pageSize | Integer | ✓ | |
total | Integer | ✓ | |
totalPages | Integer | ✓ |
Example:
{
"items": [],
"total": 0,
"page": 0,
"pageSize": 0,
"totalPages": 0
}
UpdateCalendarRequest
| Field | Type | Required | Description |
|---|---|---|---|
color | String | ||
description | String | ||
eventRules | Array<EventRuleData> | null | ||
isPublic | Boolean | ||
name | String | ||
slug | String | ||
timezone | String |
Example:
{}
UpdateCalendarScheduleRequest
| Field | Type | Required | Description |
|---|---|---|---|
availabilityType | String | ||
daysOfWeek | Array | ||
description | String | ||
endTime | DateTime | ||
eventTypeIds | Array | ||
name | String | ||
priority | Integer | ||
recurrenceEndDate | DateTime | ||
recurrenceRule | Object | ||
recurrenceType | String | ||
startTime | DateTime |
Example:
{}
Endpoints
GET /api/v2/w/{workspace_uuid}/calendars- ListPOST /api/v2/w/{workspace_uuid}/calendars- CreateDELETE /api/v2/w/{workspace_uuid}/calendars/{calendar_id}- Delete Calendar IdGET /api/v2/w/{workspace_uuid}/calendars/{calendar_id}- Get Calendar IdPUT /api/v2/w/{workspace_uuid}/calendars/{calendar_id}- Update Calendar IdGET /api/v2/w/{workspace_uuid}/calendars/{calendar_id}/schedules- SchedulesPOST /api/v2/w/{workspace_uuid}/calendars/{calendar_id}/schedules- SchedulesDELETE /api/v2/w/{workspace_uuid}/calendars/{calendar_id}/schedules/{schedule_id}- Delete SchedulesPUT /api/v2/w/{workspace_uuid}/calendars/{calendar_id}/schedules/{schedule_id}- Update Schedules
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:
request- See CreateCalendarRequest
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)
Response: Object
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:
calendar_id(Integer)request- See UpdateCalendarRequest
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:
calendar_id(Integer)request- See CreateCalendarScheduleRequest
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)
Response: Object
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:
calendar_id(Integer)schedule_id(Integer)request- See UpdateCalendarScheduleRequest
Response: See CalendarScheduleResponse