ipr.event.date.add
Scope:
iprКто может вызывать: Пользователь с правом редактировать каталог мероприятий (
canEdit: администратор, HR или правоelement_editна инфоблок каталога). Подробнее: Модель доступа
Добавляет дату проведения мероприятию каталога. Дата проведения является событием календаря Битрикс24 и создаётся в календаре категории мероприятия.
HTTP: POST
Побочные эффекты: Создаёт событие календаря: тип и владелец календаря берутся из категории (CAL_TYPE, OWNER_ID), ведущий становится участником. Приглашения и уведомления календаря отправляются, если не передан notify=false. Идентификатор даты проведения дописывается в мероприятие под блокировкой.
Параметры метода
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
eventId |
int |
да | ID мероприятия каталога |
dateFrom |
string |
да | Начало: ISO 8601 со смещением (2026-11-10T10:00:00+03:00) либо YYYY-MM-DD HH:MM:SS в зоне timezone |
dateTo |
string |
нет | Окончание, формат как у dateFrom. По умолчанию dateFrom + durationMinutes мероприятия. Должно быть позже начала |
timezone |
string |
нет | IANA-зона даты проведения (Europe/Moscow). По умолчанию зона сервера |
hostId |
int |
нет | Ведущий даты проведения. По умолчанию ведущий мероприятия |
placeRoomId / place |
int / string |
нет | Переговорная или текст места. По умолчанию место мероприятия |
remindMinutes |
int[] |
нет | Напоминания. По умолчанию из мероприятия |
notify |
bool |
нет | По умолчанию true. false (без приглашений) — только администратор |
Только администратор: создание новой даты проведения с dateFrom в прошлом и notify=false. От остальных такие вызовы отклоняются с PERMISSION_DENIED.
Идемпотентность и перенос даты проведения
Ключ идемпотентности: пара (eventId, момент dateFrom). Повторный вызов с тем же началом не создаёт дубль, а возвращает существующую дату проведения с created: false. Поиск дубля выполняется первым, поэтому повтор возвращает существующую дату проведения (created: false) в том числе для прошедшей даты и от пользователя без прав администратора. Правило «прошедшая дата — только администратор» действует только при создании новой даты проведения. Поиск дубля и создание выполняются под блокировкой, поэтому параллельные повторы с тем же dateFrom создают одну дату проведения, остальные получают её с created: false.
Отдельного ipr.event.date.update нет. Дата проведения является обычным событием календаря, поэтому перенос и правка выполняются методом ядра calendar.event.update; даты действий ИПР, привязанных к дате проведения, модуль переносит сам. Удаление: ipr.event.date.delete.
Возвращаемые данные
| Поле | Тип | Описание |
|---|---|---|
id |
int |
ID календарного события даты проведения (его передают как eventId в ipr.action.add) |
dateFrom / dateTo |
string |
ISO 8601 со смещением, в зоне даты проведения |
timezone |
string |
IANA-зона |
future |
bool |
Дата проведения ещё не началась |
url |
string |
Ссылка на событие в календаре |
created |
bool |
false — дата проведения с таким началом у мероприятия уже есть, возвращена существующая |
Обработка ошибок
Справочник кодов: error-codes.md.
| Код | Описание |
|---|---|
UNAUTHORIZED |
Пользователь не авторизован |
VALIDATION_ERROR |
details.reason: date_from, date_to, timezone, remind, host, category_calendar (категория не привязана к календарю), section; notify не булево |
PERMISSION_DENIED |
Нет права canEdit; past_date (создание даты проведения с прошедшей датой не от администратора); notify=false не от администратора |
NOT_FOUND |
Мероприятие не найдено (reason = event) |
INTERNAL_ERROR |
calendar_module (модуль календаря недоступен), calendar_save_failed, link_event_save_failed, lock (мероприятие занято другим запросом, повторите) |
Пример запроса (POST)
curl -X POST "https://{портал}/rest/{user_id}/{webhook_code}/ipr.event.date.add.json"
-H "Content-Type: application/json"
-H "Accept: application/json"
--data '{
"eventId": 501,
"dateFrom": "2026-11-10T10:00:00+03:00",
"timezone": "Europe/Moscow"
}'
Пример ответа
{
"result": {
"result": {
"id": 9001,
"dateFrom": "2026-11-10T10:00:00+03:00",
"dateTo": "2026-11-10T12:00:00+03:00",
"timezone": "Europe/Moscow",
"future": true,
"url": "/university/events/calendar/?EVENT_ID=9001&EVENT_DATE=15.10.2026",
"created": true
},
"total": null,
"next": null,
"error": null
}
}