Календарь
У каждого пользователя есть виды месяца/недели, события и проекции автоматизаций.
События
Заголовок, заметки, начало, необязательный конец, весь день и правило. Заголовок и заметки шифруются.
| Тип | Поля | Значение |
|---|---|---|
once | at | один раз |
hourly | minute, startHour?, endHour? | ежечасно |
daily | hour, minute | ежедневно |
weekly | dayOfWeek, hour, minute | еженедельно |
monthly | dayOfMonth, hour, minute | ежемесячно |
yearly | month, dayOfMonth, hour, minute | ежегодно |
Хранятся один раз, разворачиваются на сервере. baseEventId указывает источник. День ограничивается концом месяца. Часовой пояс сервера.
Именованные календари и общий доступ
До 20, необязательный цвет. calendarId связывает событие; отсутствие означает приватный стандартный календарь. read показывает, write редактирует. События сотрудника принадлежат владельцу. Доступ проверяется всегда; удаление календаря отвязывает события и права.
Напоминания
reminderMinutes до 14 дней. Scheduler публикует calendar-reminder; compare-and-set предотвращает повтор.
ICS
GET /api/calendar/export?calendarId= скачивает RFC 5545 .ics с UTC, RRULE, VALARM. POST /api/calendar/import импортирует до 2 MB/1000. Поддерживаются UTC, floating, DATE, простые FREQ; INTERVAL, COUNT, UNTIL, EXDATE импортируются без повтора и сообщаются.
Доступ модели
list_calendar_events, create_calendar_event, delete_calendar_event; изменения требуют подтверждения.
API
| Метод | Путь | Назначение |
|---|---|---|
GET | /api/calendar/events?from=&to= | Диапазон |
POST | /api/calendar/events | Создать |
PUT | /api/calendar/events/:eventId | Изменить |
DELETE | /api/calendar/events/:eventId | Удалить |
GET | /api/calendar/calendars | Календари |
POST | /api/calendar/calendars | Создать |
PUT | /api/calendar/calendars/:id | Имя/цвет |
DELETE | /api/calendar/calendars/:id | Удалить |
GET | /api/calendar/export | Экспорт |
POST | /api/calendar/import | Импорт |
from/to epoch-millisecond, максимум 13 месяцев. До 2000 событий, заголовок 200, заметки 10 000.