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

Ресурсы календаря

Ресурсы календаря — именованные объекты, которые бронируют в календаре Битрикс24, например зал или переговорная. Через API ресурсы создают, переименовывают и удаляют, а по их ID получают занятые интервалы.

Битрикс24 API: calendar.resource.* Скоуп: calendar

Создать ресурс календаря

POST /v1/calendar-resources

Создаёт ресурс календаря с указанным названием.

Тело запроса плоское — без обёртки fields.

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

Поле Тип Обяз. Описание
name string да Название ресурса

Примеры

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

Terminal
curl -X POST "https://vibecode.bitrix24.tech/v1/calendar-resources" \
  -H "X-Api-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name": "Переговорная 2"}'

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

Terminal
curl -X POST "https://vibecode.bitrix24.tech/v1/calendar-resources" \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name": "Переговорная 2"}'

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

javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/calendar-resources', {
  method: 'POST',
  headers: {
    'X-Api-Key': 'YOUR_API_KEY',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({ name: 'Переговорная 2' }),
})

const { success, data } = await res.json()
console.log('ID ресурса:', data.id)

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

javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/calendar-resources', {
  method: 'POST',
  headers: {
    'X-Api-Key': 'YOUR_APP_KEY',
    'Authorization': 'Bearer USER_SESSION_TOKEN',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({ name: 'Переговорная 2' }),
})

const { success, data } = await res.json()

Поля ответа

Успешное создание отвечает HTTP-статусом 201 Created.

Поле Тип Описание
success boolean Всегда true при успехе
data.id number ID созданного ресурса. Название и создателя ресурса возвращает GET /v1/calendar-resources

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

JSON
{
  "success": true,
  "data": {
    "id": 285
  }
}

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

400 — пустое тело запроса:

JSON
{
  "success": false,
  "error": {
    "code": "EMPTY_CREATE_BODY",
    "message": "Request body is empty — provide at least one field to create calendarResource."
  }
}

Ошибки

HTTP Код Описание
400 EMPTY_CREATE_BODY Тело запроса пустое — передайте name
400 READONLY_FIELD В теле передано поле только для чтения — id или createdBy
422 BITRIX_ERROR name — пустая строка. Сообщение: обязательный параметр name не задан
403 WRITE_BLOCKED_READONLY_KEY API-ключ в режиме только чтения — запись запрещена
403 SCOPE_DENIED API-ключ не имеет скоупа calendar
403 BITRIX_ACCESS_DENIED Битрикс24 отказал владельцу ключа в создании ресурса
401 TOKEN_MISSING API-ключ не имеет настроенных токенов
401 MISSING_API_KEY Не передан заголовок X-Api-Key
429 RATE_LIMITED Превышен лимит запросов
502 BITRIX_UNAVAILABLE Битрикс24 недоступен или вернул ответ неверной формы
503 BITRIX_TIMEOUT Битрикс24 не ответил вовремя

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

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

Несколько ресурсов за один вызов. POST /v1/calendar-resources/batch с действием create создаёт ресурсы пакетом: {"action": "create", "items": [{"name": "Переговорная 2"}]}. ID созданных ресурсов приходят в data.results[].id.

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