Calendar Properties
This table defines the structure of the calendar entity, including all properties and their descriptions.
πΉ Core Propertiesβ
| Property | Type | Required | Description | Example |
|---|---|---|---|---|
id | string | Yes | Unique identifier for the calendar | "123e4567-e89b-12d3-a456-426614174000" |
name | string | No | Display name of the calendar | "Team Meetings Calendar" |
email | string | No | Associated email address | "[email protected]" |
type | string | Yes | Type of calendar (agent or asset) | "agent" |
canonicalId | string | No | Provider/integration canonical identifier | "cal_12345" |
timezone | string | Yes | IANA timezone identifier | "America/New_York" |
tags | string[] | No | List of tags | ["meetings", "team-a"] |
services | array | No | Services associated to this calendar | See ServiceCalendar docs |
userGroupId | string | No | UUID of associated user group | "123e4567-e89b-12d3-a456-426614174001" |
organizationId | string | No | UUID of the organization | "123e4567-e89b-12d3-a456-426614174000" |
extraFields | object | No | Additional custom fields | See example below |
createdAt | string | No | ISO datetime when the calendar was created | "2025-05-22T10:30:00Z" |
updatedAt | string | No | ISO datetime when the calendar was last updated | "2025-05-22T10:30:00Z" |
π Calendar Typesβ
| Type | Description | Use Case |
|---|---|---|
| agent | Calendar for human agents/employees | Staff scheduling, personal calendars |
| asset | Calendar for resources/equipment | Room bookings, equipment scheduling |
π§© Example Entryβ
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "Sales Team Calendar",
"timezone": "America/New_York",
"type": "agent",
"email": "[email protected]",
"canonicalId": "cal_12345",
"organizationId": "123e4567-e89b-12d3-a456-426614174000",
"userGroupId": "123e4567-e89b-12d3-a456-426614174001",
"tags": ["sales", "team-a", "west-region"],
"extraFields": {
"department": "Sales",
"location": "West Wing",
"capacity": 10,
"features": ["video-conf", "whiteboard"]
}
}
π Interpretationβ
- Each calendar must have a unique identifier (
id) - External system identifiers are mapped internally; the public
idis stable - Timezone settings affect all calendar operations
- Calendar type determines its usage and restrictions
- Tags provide flexible organization and filtering
- Extra fields allow custom data storage
- Organization and group associations enable access control
β Use Casesβ
- π₯ Agent Calendars: Personal or team scheduling
- π’ Resource Management: Room and equipment booking
- π Multi-timezone Operations: Global team coordination
- π Categorization: Using tags for organization
- π Access Control: Group-based permissions
- π Custom Data: Industry-specific requirements
π Notesβ
- Timezone: Must be valid IANA timezone identifier
- Tags: Maximum 100 characters per tag
- Type: Cannot be changed after creation
- Email: Optional but recommended for notifications
- Groups: Calendars can belong to one group at a time
- Extra Fields: Flexible JSON structure for custom data
π Validation Rulesβ
-
Identifiers
- UUID format for
id,organizationId,userGroupId - Unique constraints within organization
- UUID format for
-
Type Validation
- Must be either "agent" or "asset"
-
Tag Rules
- Maximum 100 characters per tag
- No duplicate tags allowed
- Case-sensitive comparison
-
Extra Fields
- Must be valid JSON object