# Создать событие

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

`POST /api/v1/calendar/events`

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

**Тело запроса** (`application/json`, обязательное): object
- `allDay`: boolean — Событие на весь день
- `description`: string — Описание события
- `doNotDisturb`: boolean — Для фокус-времени: не присылать уведомления в почту и Telegram, пока идёт событие
- `endDate`: string (date-time) — Окончание, ISO 8601
- `important`: boolean — Важное событие: попадает в годовой список важных дат
- `inviteOthers`: boolean — Могут ли участники приглашать других
- `kind`: "meeting" | "focus" — Тип: meeting — встреча, focus — фокус-время
- `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, например Europe/Moscow
- `title`: string, обязательное — Название события
- `visibility`: "public" | "private" | "confidential" — Видимость: public — всем, private — занятость без деталей, confidential — только участникам

**Ответы**

- `201` — Событие создано (`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)

    </>
  );
}
