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

export default function Layout(props) {
  const { OpenAPIPage } = props.components ?? {};
  return (
    <>
      {props.children}
      ## Обновить событие

`PUT /api/v1/calendar/events/{id}`

**Авторизация:** dpop или oauth2: `calendar:write`

**Параметры**

| Имя | Где | Обязательный | Тип | Описание |
| --- | --- | --- | --- | --- |
| `id` | path | да | string | Идентификатор события |
| `scope` | query | нет | "this" \| "following" \| "all" | Для повторяющихся: this — одно вхождение, following — это и последующие, all — вся серия |
| `occurrenceStart` | query | нет | string | Начало вхождения серии, ISO 8601 (для scope this/following) |

**Тело запроса** (`application/json`, обязательное): object
- `allDay`: boolean — Событие на весь день
- `description`: string — Новое описание
- `doNotDisturb`: boolean — Для фокус-времени: не присылать уведомления в почту и Telegram, пока идёт событие
- `endDate`: string (date-time) — Новое окончание, ISO 8601
- `important`: boolean — Важное событие: попадает в годовой список важных дат
- `inviteOthers`: boolean — Могут ли участники приглашать других
- `location`: string — Новое место проведения
- `modifyEvent`: boolean — Могут ли участники изменять событие
- `participants`: массив string — Полный новый список участников (userId)
- `reminders`: массив object — Полный новый список напоминаний
  - `minutes`: integer, обязательное — За сколько минут напомнить
- `requestResponses`: boolean — Запрашивать ли RSVP-ответы
- `rrule`: string — Правило повторения в формате RRULE (RFC 5545)
- `seeGuestList`: boolean — Видят ли участники список гостей
- `startDate`: string (date-time) — Новое начало, ISO 8601
- `timezone`: string — Часовой пояс IANA
- `title`: string — Новое название
- `visibility`: "public" | "private" | "confidential" — Видимость: public — всем, private — занятость без деталей, confidential — только участникам

**Ответы**

- `200` — Событие обновлено (`application/json`, CalendarEvent)
  - `allDay`: boolean — Событие на весь день
  - `createdBy`: string — Организатор
  - `description`: string, nullable — Описание
  - `endDate`: string, nullable — Окончание, ISO 8601
  - `id`: string, обязательное — Идентификатор события
  - `location`: string, nullable — Место проведения
  - `participants`: массив object — Участники с их RSVP-статусами
  - `rrule`: string, nullable — Правило повторения RRULE
  - `startDate`: string, обязательное — Начало, ISO 8601
  - `timezone`: string, nullable — Часовой пояс IANA
  - `title`: string, обязательное — Название события
  - `visibility`: string — Видимость: public, private, confidential
- `400` — Некорректный запрос: не прошла валидация параметров или тела (`application/problem+json`, ProblemDetails)
- `401` — Токен отсутствует, недействителен или истёк (`application/problem+json`, ProblemDetails)
- `403` — Недостаточно прав или scope (`application/problem+json`, ProblemDetails)

    </>
  );
}
