Manage events, team schedules, and operator availability.
The Oquira Calendar module allows you to manage your team's schedules, define operator availability, and plan recurring events.
| Type | Description |
|---|---|
shift | Operator work shift/schedule |
break | Scheduled break (lunch, etc.) |
closure | Location/service closure period |
event | General event (meeting, training, etc.) |
unavailability | Unavailability declared by an operator |
appointment | Customer appointment |
Events of type break, closure, and unavailability affect operator availability in real-time. When an operator is listed in the attendees of such an event (or if the event has no attendees, making it organization-wide), they are considered unavailable for the duration of the event. This impacts:
Operators have limited calendar permissions:
Get all calendar events for an organization within a date range.
GET /v1/business/calendar
X-API-Key: your_api_key_here| Parameter | Type | Required | Description |
|---|---|---|---|
startDate | string | No | Start date (ISO 8601) |
endDate | string | No | End date (ISO 8601) |
Add a new event to the organization's calendar.
POST /v1/calendar/organization/{organizationId}
X-API-Key: your_api_key_here
Content-Type: application/json
{
"title": "John's Shift",
"description": "VIP Counter",
"startDate": "2024-03-18T09:00:00Z",
"endDate": "2024-03-18T18:00:00Z",
"eventType": "shift",
"serviceId": "ser_xyz...",
"attendees": ["usr_abc123"],
"color": "#2196F3"
}| Property | Type | Required | Description |
|---|---|---|---|
title | string | Yes | Event title |
startDate | string | Yes | Start date/time (ISO 8601) |
endDate | string | Yes | End date/time (ISO 8601) |
eventType | string | No | Type: shift, break, unavailability, appointment |
serviceId | string | No | Associated service |
attendees | array | No | Participant IDs |
color | string | No | Display color (hex) |
recurrencePattern | string | No | Pattern: daily, weekly, monthly |
Operators can declare their own availability.
POST /v1/calendar/organization/{organizationId}/availability
X-API-Key: your_api_key_here
Content-Type: application/json
{
"title": "Available morning",
"startDate": "2024-03-20T08:00:00Z",
"endDate": "2024-03-20T12:00:00Z"
}Note: This route uses the
CALENDAR_CREATE_OWN_AVAILABILITYpermission which allows operators to manage only their own availability events.
PATCH /v1/calendar/{eventId}
X-API-Key: your_api_key_here
Content-Type: application/json
{
"title": "John's Shift (modified)",
"endDate": "2024-03-18T17:00:00Z"
}DELETE /v1/calendar/{eventId}
X-API-Key: your_api_key_hereRecurring events are automatically expanded to individual occurrences when retrieved. For example, a daily shift will create an occurrence for each day in the requested range.
| Pattern | Description |
|---|---|
daily | Daily repetition |
weekly | Weekly repetition |
monthly | Monthly repetition |
POST /v1/calendar/organization/{organizationId}
X-API-Key: your_api_key_here
Content-Type: application/json
{
"title": "Lunch Break",
"startDate": "2024-03-01T12:00:00Z",
"endDate": "2024-03-01T14:00:00Z",
"eventType": "break",
"recurrencePattern": "daily"
}