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

Обновить событие

PATCH /v1/calendar-events/:id

Обновляет поля существующего события. Передавайте только изменяемые поля — Вайбкод автоматически дочитывает текущее событие и подставляет type, ownerId, name, которые Битрикс24 требует при каждом обновлении.

Параметры

Параметр Тип Обяз. Описание
id (path) number да ID события. Список: GET /v1/calendar-events

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

Все поля необязательны. Передавайте только те, что меняете, например name или location. У события на весь день можно изменить только from или только to: отсутствующая граница сохранится.

Поле Тип Обяз. Описание
name string нет Название события. Без поля подставляется из текущего события
type string нет Тип календаря: user, group, company_calendar. Без поля подставляется из текущего события
ownerId number нет ID владельца календаря: сотрудник (GET /v1/users) или рабочая группа. Без поля подставляется из текущего события
from datetime нет Новое начало события в ISO 8601. Передавайте вместе с timezoneFrom
timezoneFrom string нет Часовой пояс начала (IANA-имя, Europe/Moscow)
to datetime нет Новое окончание события в ISO 8601. Передавайте вместе с timezoneTo
timezoneTo string нет Часовой пояс окончания (IANA-имя, Europe/Moscow)
skipTime boolean нет Событие на весь день. При true длительность фиксируется в 24 часа. Если поле не передано, текущий признак сохраняется; false снимает его
description string нет Описание
location string нет Место проведения
color string нет Цвет события в формате #RRGGBB
importance string нет Важность: high, normal, low
accessibility string нет Занятость: busy, quest, free, absent
isPrivate boolean нет Приватное событие — детали скрыты от других пользователей
sectionId number нет ID секции календаря, в которую переносится событие. Список секций: GET /v1/calendar-sections
remind array нет Настройки напоминаний. Каждый элемент: {type: 'min' | 'hour' | 'day', count: <число>}
rrule object нет Расписание повторения: FREQ, INTERVAL, BYDAY, UNTIL или COUNT. Структура — Создать событие
attendees number[] нет Массив ID приглашённых сотрудников. Список: GET /v1/users. Передавайте вместе с isMeeting: true — без флага в теле массив игнорируется без ошибки и без предупреждения, даже если событие уже является встречей. Переданный массив заменяет прежний состав участников целиком. Существование ID не проверяется: любое число становится участником U<id>. Элементы CRM привязывает поле crmFields
isMeeting boolean нет Событие-встреча с приглашениями. Обязателен в теле вместе с attendees, иначе состав участников не меняется
crmFields string[] нет Элементы CRM, к которым привязано событие: D_<id> сделка, C_<id> контакт, L_<id> лид, CO_<id> компания. Переданный массив заменяет прежние привязки целиком, [] снимает все — но только на этом эндпоинте и на POST: в батч-запросе пустой массив отклоняется (INVALID_PARAMS в data.errors у POST /v1/batch, 400 BATCH_ITEM_VALIDATION на весь пакет у POST /v1/calendar-events/batch). Поле, не переданное в теле, сохраняет уже записанные привязки. Полное описание — Поля события

Описание всех полей события — Поля события.

Примеры

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

Terminal
curl -X PATCH "https://vibecode.bitrix24.tech/v1/calendar-events/7773" \
  -H "X-Api-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Созвон с командой — расширенная встреча",
    "to": "2026-06-10T12:00:00",
    "timezoneTo": "Europe/Moscow",
    "location": "Переговорная №3"
  }'

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

Terminal
curl -X PATCH "https://vibecode.bitrix24.tech/v1/calendar-events/7773" \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Созвон с командой — расширенная встреча",
    "to": "2026-06-10T12:00:00",
    "timezoneTo": "Europe/Moscow",
    "location": "Переговорная №3"
  }'

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

javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/calendar-events/7773', {
  method: 'PATCH',
  headers: {
    'X-Api-Key': 'YOUR_API_KEY',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    name: 'Созвон с командой — расширенная встреча',
    to: '2026-06-10T12:00:00',
    timezoneTo: 'Europe/Moscow',
    location: 'Переговорная №3',
  }),
})

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

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

javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/calendar-events/7773', {
  method: 'PATCH',
  headers: {
    'X-Api-Key': 'YOUR_APP_KEY',
    'Authorization': 'Bearer USER_SESSION_TOKEN',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    name: 'Созвон с командой — расширенная встреча',
    to: '2026-06-10T12:00:00',
    timezoneTo: 'Europe/Moscow',
    location: 'Переговорная №3',
  }),
})

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

Поля ответа

Поле Тип Описание
success boolean Всегда true при успехе
data object Обновлённое событие (все поля — см. Поля события)

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

JSON
{
  "success": true,
  "data": {
    "id": 7773,
    "parentId": 7773,
    "type": "user",
    "ownerId": 1,
    "name": "Созвон с командой — расширенная встреча",
    "from": "2026-06-10T10:00:00+03:00",
    "to": "2026-06-10T12:00:00+03:00",
    "skipTime": false,
    "durationSeconds": 7200,
    "updatedAt": "06/05/2026 11:30:00 am",
    "accessibility": "busy",
    "importance": "normal",
    "sectionId": 3,
    "location": "Переговорная №3"
  }
}

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

404 — событие не найдено:

JSON
{
  "success": false,
  "error": {
    "code": "ENTITY_NOT_FOUND",
    "message": "calendarEvent 99999999 not found"
  }
}

Ошибки

HTTP Код Описание
404 ENTITY_NOT_FOUND Событие с указанным id не существует
400 READONLY_FIELD В теле запроса передано read-only поле — полный список в Поля события с пометкой «да» в колонке RO
400 EMPTY_UPDATE_BODY Тело запроса пустое — передайте хотя бы одно поле
422 BITRIX_NO_EFFECT Портал не вернул признак события на весь день или дату, необходимую для безопасного обновления
400 NESTED_FIELDS_ENVELOPE Вместо корневых полей передан объект fields; событие не обновляется
403 SCOPE_DENIED API-ключ не имеет скоупа calendar
401 TOKEN_MISSING API-ключ не имеет настроенных токенов

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

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

Объект fields не оборачивает поля события. Передавайте их в корне JSON: схема не объявляет fields, поэтому объект отклоняется с 400 NESTED_FIELDS_ENVELOPE до обновления.

Неизвестное скалярное поле в теле игнорируется без ошибки. Ответ 200 не подтверждает, что поле записано. Сверяйте имена с таблицей выше.

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