Перейти до основного вмісту

Календар

Libre WebUI містить особистий календар. Кожен користувач отримує перегляди місяця й тижня з одноразовими та повторюваними подіями, а заплановані автоматизації показують майбутні запуски й історію в тій самій сітці.

Події

Подія має заголовок, необов’язкові нотатки, час початку, необов’язковий час завершення, прапорець усього дня та правило повторення. Заголовки й нотатки шифруються під час зберігання так само, як чати й нотатки.

Повторення використовує спільну модель тригерів:

ТипПоляЗначення
onceatОдне спрацювання
hourlyminute, startHour?, endHour?Щогодини у визначеному вікні
dailyhour, minuteЩодня за місцевим часом
weeklydayOfWeek, hour, minuteЩотижня у вибраний день
monthlydayOfMonth, hour, minuteЩомісяця у вибраний день
yearlymonth, dayOfMonth, hour, minuteЩороку у вибрану дату

Повторювані події зберігаються один раз. Запити діапазону розгортають їх на сервері: кожне спроєктоване спрацювання має baseEventId, що вказує на вихідну подію, тому її редагування змінює всі майбутні спрацювання. dayOfMonth після кінця місяця обмежується останнім днем. Усі обчислення використовують локальний часовий пояс сервера.

Іменовані календарі та спільний доступ

Крім типового особистого календаря, користувач може створити до 20 іменованих календарів із необов’язковим кольором. Події мають необов’язковий calendarId; без нього вони перебувають у типовій приватній області.

Календарі використовують спільну модель дозволів: read дає змогу бачити календар і події разом із власними, а write — також створювати та редагувати. Події співавтора зберігаються в обліковому записі власника календаря, тож квоти, видалення й переносний архів належать власнику. Доступ перевіряється за кожним запитом; відкликання приховує календар під час наступного читання. Видалення календаря переносить його події до типової області власника й видаляє дозволи.

Нагадування

Подія може мати зміщення нагадування (reminderMinutes, до 14 днів). Орендований такт планувальника автоматизацій знаходить належні нагадування й публікує calendar-reminder у скриньку власника; атомарне порівняння й установлення гарантує одне спрацювання кожного повторення.

Імпорт і експорт ICS

GET /api/calendar/export?calendarId= завантажує календар або типову область як файл RFC 5545 .ics: часові позначки UTC, екранований текст, базові RRULE та блоки VALARM. POST /api/calendar/import приймає ICS (до 2 MB / 1,000 подій) у календар із правом запису. Імпортер обробляє UTC і плаваючий час, значення цілого дня DATE та прості правила FREQ; правила, які неможливо точно представити (INTERVAL, COUNT, UNTIL, EXDATE), імпортуються без повторення та рахуються як відкинуті, а не непомітно зміщуються.

Доступ моделей

Три вбудовані інструменти чату надають моделі доступ від імені користувача: list_calendar_events лише читає, а create_calendar_event і delete_calendar_event мають побічні ефекти й потребують стандартного схвалення.

API

Усі кінцеві точки потребують автентифікації. Читання охоплює власні події та надані календарі; запис потребує права власності або дозволу write.

МетодШляхПризначення
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Експорт ICS
POST/api/calendar/importІмпорт ICS

Діапазон використовує from/to в мілісекундах епохи й охоплює не більше 13 місяців за запит. Користувач може зберігати до 2000 подій; заголовок обмежено 200 символами, нотатки — 10,000.