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

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

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

## Операции

- [Создать ресурс календаря](./calendar-resources/create.md) — `POST /v1/calendar-resources`
- [Список ресурсов календаря](./calendar-resources/list.md) — `GET /v1/calendar-resources`
- [Переименовать ресурс календаря](./calendar-resources/update.md) — `PATCH /v1/calendar-resources/:id`
- [Удалить ресурс календаря](./calendar-resources/delete.md) — `DELETE /v1/calendar-resources/:id`
- [Поля ресурса календаря](./calendar-resources/fields.md) — `GET /v1/calendar-resources/fields`
- [Бронирования ресурсов](./calendar-resources/bookings.md) — `GET /v1/calendar-resources/bookings`

## Ключевые поля

| Поле | Описание |
|------|---------|
| `id` | ID ресурса. Список: [`GET /v1/calendar-resources`](./calendar-resources/list.md) |
| `name` | Название ресурса — единственное поле, которое принимают создание и переименование |
| `createdBy` | ID сотрудника, создавшего ресурс. Список: [`GET /v1/users`](/docs/entities/users) |

Полный список полей — [`GET /v1/calendar-resources/fields`](./calendar-resources/fields.md).

## Что нужно знать перед работой

1. **Чтения по ID нет.** Ресурс находят в [списке](./calendar-resources/list.md): `GET /v1/calendar-resources/:id` отвечает `404 ROUTE_NOT_FOUND`. Создание возвращает только `id`, переименование — ресурс целиком: `id`, `name`, `createdBy`.
2. **Список не фильтруется и не сортируется.** Запрос с `filter` отклоняется с `400 UNSUPPORTED_FILTER`, с `order` или `sort` — с `400 INVALID_SORT_FIELD`. Нужный ресурс отбирают по `name` на своей стороне.
3. **Ресурс календаря — не ресурс онлайн-записи.** [Ресурсы бронирования](/docs/entities/booking-resources) — отдельная сущность со своими ID. Параметр `resourceIds` в [бронированиях ресурсов](./calendar-resources/bookings.md) работает только с ID из списка ресурсов календаря.
4. **Пакетом — только создание и чтение.** `POST /v1/calendar-resources/batch` принимает действия `list` и `create`. Действия `update` и `delete` отклоняются с `400 ACTION_NOT_SUPPORTED` — переименовывайте и удаляйте ресурсы отдельными вызовами.

## Типичный сценарий

1. Получить ресурсы: [`GET /v1/calendar-resources`](./calendar-resources/list.md).
2. Посмотреть их занятость за период: [`GET /v1/calendar-resources/bookings?resourceIds=57,59&from=2026-10-01&to=2026-11-01`](./calendar-resources/bookings.md).
3. Завести новый ресурс или переименовать существующий: [`POST /v1/calendar-resources`](./calendar-resources/create.md) / [`PATCH /v1/calendar-resources/:id`](./calendar-resources/update.md).

## Лимиты

| Лимит | Значение |
|-------|----------|
| Записей в списке за вызов | до 5000 (`limit`), по умолчанию 50 |
| Постраничный переход в списке | `offset` и `limit` задают окно `[offset, offset + limit)` по всему списку ресурсов |
| Бронирования | все интервалы за период приходят одним ответом, без постраничного перехода |
| Пакетные вызовы | `list` и `create` в `POST /v1/calendar-resources/batch` |
| Rate limit | общий для API Вайбкод — см. [Лимиты и оптимизация](/docs/optimization) |

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

- [События календаря](/docs/entities/calendar-events)
- [Секции календаря](/docs/entities/calendar-sections)
- [Занятость сотрудников](/docs/calendar/accessibility)
- [Календарь](/docs/calendar)
- [Entity API](/docs/entity-api)
