Для AI-агентов: markdown этой страницы — /docs-content/infra/work-schedules/create.md индекс документации — /llms.txt

Создать расписание

POST /v1/work-schedules

Создаёт своё расписание работы в библиотеке портала.

Созданное расписание назначается серверам через смену режима работы.

Поля запроса (body)

Поле Тип Обяз. Описание
Полеname Типstring Обяз.да ОписаниеНазвание, от 1 до 80 символов. Пробелы по краям отбрасываются
Полеtimezone Типstring Обяз.да ОписаниеЧасовой пояс IANA, в котором читаются окна, например Europe/Moscow
Полеwindows Типarray Обяз.да ОписаниеОкна { isoDay, start, end }, не больше двух в день. Правила окон — в индексе раздела
Полеwindows[].isoDay Типnumber Обяз.да ОписаниеДень недели: 1 — понедельник, 7 — воскресенье
Полеwindows[].start Типstring Обяз.да ОписаниеНачало окна, местное время ЧЧ:ММ с шагом 30 минут
Полеwindows[].end Типstring Обяз.да ОписаниеКонец окна, местное время ЧЧ:ММ с шагом 30 минут. Полночь — 24:00

Примеры

curl — личный ключ

Terminal
curl -X POST https://vibecode.bitrix24.tech/v1/work-schedules \
  -H "X-Api-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Смены склада",
    "timezone": "Europe/Moscow",
    "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" }
    ]
  }'

curl — OAuth-приложение

Terminal
curl -X POST https://vibecode.bitrix24.tech/v1/work-schedules \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Смены склада",
    "timezone": "Europe/Moscow",
    "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" }
    ]
  }'

JavaScript — личный ключ

javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/work-schedules', {
  method: 'POST',
  headers: {
    'X-Api-Key': 'YOUR_API_KEY',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    name: 'Смены склада',
    timezone: 'Europe/Moscow',
    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' },
    ],
  }),
})
const { data } = await res.json()
console.log(`Создано расписание ${data.id}`)

JavaScript — OAuth-приложение

javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/work-schedules', {
  method: 'POST',
  headers: {
    'X-Api-Key': 'YOUR_APP_KEY',
    'Authorization': 'Bearer USER_SESSION_TOKEN',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    name: 'Смены склада',
    timezone: 'Europe/Moscow',
    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' },
    ],
  }),
})
const { data } = await res.json()

Поля ответа

Ответ приходит со статусом 201 Created.

Поле Тип Описание
Полеsuccess Типboolean ОписаниеВсегда true при успехе
Полеdata.id Типstring ОписаниеID созданного расписания
Полеdata.kind Типstring ОписаниеВсегда CUSTOM
Полеdata.name Типstring ОписаниеНазвание
Полеdata.presetKey Типnull ОписаниеУ своего расписания всегда null
Полеdata.timezone Типstring ОписаниеЧасовой пояс IANA
Полеdata.windows Типarray ОписаниеОкна { isoDay, start, end } в порядке дней и времени
Полеdata.version Типnumber ОписаниеНомер версии, у нового расписания 1
Полеdata.canEdit Типboolean Описаниеtrue: автор вправе править своё расписание
Полеdata.assignedCount Типnumber Описание0: новое расписание ещё никому не назначено
Полеdata.defaultForNewMachines Типboolean Описаниеfalse: новое расписание ещё не отмечено для новых машин. Отметку ставит администратор портала — Отметить расписание по умолчанию
Полеdata.defaultForNewAgents Типboolean Описаниеfalse: новое расписание ещё не отмечено для новых агентов и ботов

Пример ответа

JSON
{
  "success": true,
  "data": {
    "id": "cmfp4r0q2000a1ocg7h2k9x3d",
    "kind": "CUSTOM",
    "name": "Смены склада",
    "presetKey": null,
    "timezone": "Europe/Moscow",
    "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": 1,
    "canEdit": true,
    "assignedCount": 0,
    "defaultForNewMachines": false,
    "defaultForNewAgents": false
  }
}

Пример ответа при ошибке

400 — время окна не в формате ЧЧ:ММ:

JSON
{
  "success": false,
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "windows.0.end: must be local time HH:MM (24:00 for midnight)"
  }
}

Ошибки

HTTP Код Описание
HTTP400 КодVALIDATION_ERROR ОписаниеТело не подходит под схему — неизвестное поле, пустое название, неизвестный часовой пояс, время не в формате ЧЧ:ММ — либо окна нарушают правила недели. При нарушении схемы в message — путь к полю и причина. При нарушении правил недели в message — день и границы окна в минутах от начала суток
HTTP400 КодWORK_SCHEDULE_EMPTY ОписаниеПередан пустой windows: сервер на таком расписании не работал бы никогда
HTTP400 КодRUN_MODE_UNAVAILABLE ОписаниеРежимы работы ещё не включены для портала
HTTP401 КодMISSING_API_KEY ОписаниеНе передан заголовок X-Api-Key
HTTP401 КодINVALID_API_KEY ОписаниеКлюч не опознан: такой строки на платформе нет
HTTP403 КодWORK_SCHEDULE_LIMIT ОписаниеУ портала уже 50 своих расписаний. Удалите ненужное или назначьте готовое
HTTP403 КодWRITE_BLOCKED_READONLY_KEY ОписаниеКлюч в режиме «только чтение» — создание ему закрыто
HTTP403 КодINFRA_SCOPE_REQUIRED ОписаниеУ ключа нет скоупа vibe:infra
HTTP403 КодINFRA_FORBIDDEN_FOR_COWORK_KEY ОписаниеВызов сделан ключом Cowork/Code — библиотека расписаний такому ключу закрыта. Что делать — Проектный ключ для деплоя
HTTP404 КодNOT_FOUND ОписаниеКлюч не привязан к порталу Битрикс24
HTTP429 КодRATE_LIMITED ОписаниеПревышен лимит 20 запросов в минуту на ключ. Действующее значение — в заголовке x-ratelimit-limit

Полный список общих ошибок API — Ошибки.

Известные особенности

  • Автор — владелец ключа. Автором расписания записывается владелец ключа, а не пользователь сессии OAuth-приложения. Править и удалять расписание потом смогут он и администратор портала.
  • Готовые расписания в лимит не входят. Лимит в 50 расписаний считает только свои, готовые расписания платформы его не занимают.

Смотрите также