For AI agents: markdown of this page — /docs-content-en/infra/work-schedules/get.md documentation index — /llms.txt
Get a schedule
GET /v1/work-schedules/:id
Returns one work schedule from the library of the Bitrix24 account: windows by weekday, time zone, version and the number of assigned servers.
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
id |
path | string | yes | Schedule ID. Source — data[].id from the schedule list or workSchedule.id in GET /v1/infra/servers/:id |
Examples
curl — personal key
curl -H "X-Api-Key: YOUR_API_KEY" \
https://vibecode.bitrix24.com/v1/work-schedules/WORK_SCHEDULE_ID
curl — OAuth application
curl -H "X-Api-Key: YOUR_APP_KEY" \
-H "Authorization: Bearer USER_SESSION_TOKEN" \
https://vibecode.bitrix24.com/v1/work-schedules/WORK_SCHEDULE_ID
JavaScript — personal key
const res = await fetch(
`https://vibecode.bitrix24.com/v1/work-schedules/${workScheduleId}`,
{ headers: { 'X-Api-Key': 'YOUR_API_KEY' } }
)
const { data } = await res.json()
console.log(`${data.name}: ${data.windows.length} windows, ${data.assignedCount} servers`)
JavaScript — OAuth application
const res = await fetch(
`https://vibecode.bitrix24.com/v1/work-schedules/${workScheduleId}`,
{
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
},
}
)
const { data } = await res.json()
Response fields
| Field | Type | Description |
|---|---|---|
success |
boolean | Always true on success |
data.id |
string | Schedule ID |
data.kind |
string | PRESET — a platform preset, CUSTOM — a custom schedule |
data.name |
string | Name. A preset's name is returned in the key owner's language |
data.presetKey |
string | null | Preset key: weekdays-9-18, weekdays-9-19, weekdays-9-20, weekdays-8-19, weekdays-8-20, daily-9-21. null for a custom schedule |
data.timezone |
string | IANA time zone the windows are read in |
data.windows |
array | Windows { isoDay, start, end }: isoDay from 1 (Monday) to 7, start and end in local HH:MM, the end of the day is 24:00 |
data.version |
number | Version number. Passed to update |
data.canEdit |
boolean | Whether the key owner may edit and delete the schedule. Always false for a preset |
data.assignedCount |
number | How many servers of the Bitrix24 account run on the schedule, other employees' servers included. The servers themselves are not named |
data.defaultForNewMachines |
boolean | New servers and galaxy applications of the Bitrix24 account are born on this schedule when their create request names no mode. At most one schedule has true. An administrator of the Bitrix24 account sets the mark — Set the default schedule |
data.defaultForNewAgents |
boolean | New agents and bots of the Bitrix24 account are born on this schedule. At most one schedule has true; the mark is set separately from defaultForNewMachines |
Response example
{
"success": true,
"data": {
"id": "cmfp4r0q2000a1ocg7h2k9x3d",
"kind": "CUSTOM",
"name": "Warehouse shifts",
"presetKey": null,
"timezone": "Europe/Berlin",
"windows": [
{ "isoDay": 1, "start": "09:00", "end": "18:00" },
{ "isoDay": 2, "start": "09:00", "end": "13:00" },
{ "isoDay": 2, "start": "14:00", "end": "24:00" }
],
"version": 2,
"canEdit": true,
"assignedCount": 1,
"defaultForNewMachines": true,
"defaultForNewAgents": false
}
}
Error response example
404 — no such schedule in the key's Bitrix24 account:
{
"success": false,
"error": {
"code": "NOT_FOUND",
"message": "Work schedule not found"
}
}
Errors
| HTTP | Code | Description |
|---|---|---|
| 401 | MISSING_API_KEY |
The X-Api-Key header is missing |
| 401 | INVALID_API_KEY |
The key is not recognized: no such key exists on the platform |
| 403 | INFRA_SCOPE_REQUIRED |
The key lacks the vibe:infra scope |
| 403 | INFRA_FORBIDDEN_FOR_COWORK_KEY |
The call was made with a Cowork/Code key. The schedule library manages servers and what they cost, so it is closed to such a key entirely, reads included. What to do — Project key for deploy |
| 404 | NOT_FOUND |
No schedule with this id exists in the key's Bitrix24 account, or the key is not bound to a Bitrix24 account. A schedule of another account gets the same answer — the response does not confirm that it exists |
| 429 | RATE_LIMITED |
The limit of 60 requests per minute per key is exceeded. The exact value is in the x-ratelimit-limit header (the ceiling is split between replicas) |
Full list of common API errors — Errors.