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 (UUID) | "123e4567-e89b-12d3-a456-426614174000" |
externalId | string | Yes | Identifier from external calendar system | "ext-cal-123" |
timezone | string | Yes | IANA timezone identifier | "America/New_York" |
type | enum | Yes | Type of calendar (agent or asset) | "agent" |
name | string | No | Display name of the calendar | "Team Meetings Calendar" |
string | No | Associated email address | "[email protected]" | |
organizationId | string | No | UUID of the organization | "123e4567-e89b-12d3-a456-426614174000" |
userGroupId | string | No | UUID of associated user group | "123e4567-e89b-12d3-a456-426614174001" |
tags | string[] | No | List of tags (max 100 chars each) | ["meetings", "team-a"] |
extraFields | object | No | Additional custom fields | See example below |
📋 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",
"externalId": "ext-cal-123",
"name": "Sales Team Calendar",
"timezone": "America/New_York",
"type": "agent",
"email": "[email protected]",
"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 IDs are supported via
externalId
- 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
- External ID: Must be unique within organization
- 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
- Non-empty
externalId
when provided - 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