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
          }
        }
        

См. также

Предыдущая
Следующая