Для AI-агентов: markdown этой страницы — /docs-content/infra/work-schedules/update.md индекс документации — /llms.txt
Обновить расписание
PATCH /v1/work-schedules/:id
Меняет название, часовой пояс или окна своего расписания. Библиотека общая на портал, поэтому новые окна сразу действуют у всех серверов, назначенных на расписание, а правка несёт номер версии, чтобы не затереть чужую.
Параметры
| Параметр | В | Тип | Обяз. | Описание |
|---|---|---|---|---|
Параметрid |
Вpath | Типstring | Обяз.да | ОписаниеID своего расписания. Источник — data[].id из списка расписаний |
Поля запроса (body)
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
Полеversion |
Типnumber | Обяз.да | ОписаниеВерсия, которую вы прочитали. Источник — version в списке или в получении расписания |
Полеname |
Типstring | Обяз.нет | ОписаниеНовое название, от 1 до 80 символов |
Полеtimezone |
Типstring | Обяз.нет | ОписаниеНовый часовой пояс IANA |
Полеwindows |
Типarray | Обяз.нет | ОписаниеНовые окна { isoDay, start, end } — заменяют прежние целиком. Правила окон — в индексе раздела |
Примеры
curl — личный ключ
curl -X PATCH https://vibecode.bitrix24.tech/v1/work-schedules/WORK_SCHEDULE_ID \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"version": 2,
"windows": [
{ "isoDay": 1, "start": "08:00", "end": "17:00" },
{ "isoDay": 2, "start": "08:00", "end": "17:00" }
]
}'
curl — OAuth-приложение
curl -X PATCH https://vibecode.bitrix24.tech/v1/work-schedules/WORK_SCHEDULE_ID \
-H "X-Api-Key: YOUR_APP_KEY" \
-H "Authorization: Bearer USER_SESSION_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"version": 2,
"windows": [
{ "isoDay": 1, "start": "08:00", "end": "17:00" },
{ "isoDay": 2, "start": "08:00", "end": "17:00" }
]
}'
JavaScript — личный ключ
const res = await fetch(
`https://vibecode.bitrix24.tech/v1/work-schedules/${workScheduleId}`,
{
method: 'PATCH',
headers: {
'X-Api-Key': 'YOUR_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({
version: 2,
windows: [
{ isoDay: 1, start: '08:00', end: '17:00' },
{ isoDay: 2, start: '08:00', end: '17:00' },
],
}),
}
)
const body = await res.json()
console.log(`Версия ${body.data.version}, затронуто серверов: ${body.affectedServers}`)
JavaScript — OAuth-приложение
const res = await fetch(
`https://vibecode.bitrix24.tech/v1/work-schedules/${workScheduleId}`,
{
method: 'PATCH',
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
'Content-Type': 'application/json',
},
body: JSON.stringify({
version: 2,
windows: [
{ isoDay: 1, start: '08:00', end: '17:00' },
{ isoDay: 2, start: '08:00', end: '17:00' },
],
}),
}
)
const body = await res.json()
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
Полеsuccess |
Типboolean | ОписаниеВсегда true при успехе |
Полеdata |
Типobject | ОписаниеРасписание после правки — та же форма, что в получении расписания |
Полеdata.version |
Типnumber | ОписаниеНовая версия: каждая успешная правка увеличивает её на единицу |
ПолеaffectedServers |
Типnumber | ОписаниеСколько серверов портала работает по расписанию после правки, включая серверы других сотрудников |
Пример ответа
{
"success": true,
"data": {
"id": "cmfp4r0q2000a1ocg7h2k9x3d",
"kind": "CUSTOM",
"name": "Смены склада",
"presetKey": null,
"timezone": "Europe/Moscow",
"windows": [
{ "isoDay": 1, "start": "08:00", "end": "17:00" },
{ "isoDay": 2, "start": "08:00", "end": "17:00" }
],
"version": 3,
"canEdit": true,
"assignedCount": 1,
"defaultForNewMachines": true,
"defaultForNewAgents": false
},
"affectedServers": 1
}
Пример ответа при ошибке
409 — расписание успели изменить после вашего чтения:
{
"success": false,
"error": {
"code": "WORK_SCHEDULE_STALE",
"message": "The work schedule was changed by someone else — reload it and repeat the edit"
}
}
Ошибки
| HTTP | Код | Описание |
|---|---|---|
| HTTP400 | КодVALIDATION_ERROR |
ОписаниеТело не подходит под схему — нет version, неизвестное поле, неизвестный часовой пояс — либо окна нарушают правила недели. При нарушении схемы в 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_PRESET_READONLY |
ОписаниеРасписание готовое — оно не правится. Для другой недели создайте своё |
| HTTP403 | КодWORK_SCHEDULE_EDIT_FORBIDDEN |
ОписаниеПравить расписание может только его автор или администратор портала |
| HTTP403 | КодWRITE_BLOCKED_READONLY_KEY |
ОписаниеКлюч в режиме «только чтение» — правка ему закрыта |
| HTTP403 | КодINFRA_SCOPE_REQUIRED |
ОписаниеУ ключа нет скоупа vibe:infra |
| HTTP403 | КодINFRA_FORBIDDEN_FOR_COWORK_KEY |
ОписаниеВызов сделан ключом Cowork/Code — библиотека расписаний такому ключу закрыта. Что делать — Проектный ключ для деплоя |
| HTTP404 | КодNOT_FOUND |
ОписаниеРасписания с таким id нет в портале ключа, либо ключ не привязан к порталу Битрикс24 |
| HTTP409 | КодWORK_SCHEDULE_STALE |
ОписаниеВерсия в запросе устарела: расписание изменили после вашего чтения. Прочитайте его заново и повторите правку с новой version |
| HTTP429 | КодRATE_LIMITED |
ОписаниеПревышен лимит 30 запросов в минуту на ключ. Действующее значение — в заголовке x-ratelimit-limit |
Полный список общих ошибок API — Ошибки.
Известные особенности
- Правка окон или пояса перестраивает пробуждения всех назначенных серверов. Замена окон, пересчёт пробуждений у каждого сервера на расписании и новая версия записываются одной операцией: при отказе не меняется ничего. Правка одного названия пробуждений не касается.
- Счёт серверов меняется вместе с окнами. Сервер на расписании работает в его окна, поэтому более длинная неделя увеличивает счёт за каждый назначенный сервер, включая серверы других сотрудников — их число приходит в
affectedServers.