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

Terminal
curl -H "X-Api-Key: YOUR_API_KEY" \
  https://vibecode.bitrix24.com/v1/work-schedules/WORK_SCHEDULE_ID

curl — OAuth application

Terminal
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

javascript
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

javascript
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

JSON
{
  "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:

JSON
{
  "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.

See also