Přeskočit na hlavní obsah

Kalendář

Libre WebUI obsahuje osobní kalendář. Každý přihlášený uživatel má vlastní měsíční a týdenní zobrazení s jednorázovými i opakujícími se událostmi. Plánované automatizace zobrazují nadcházející běhy a historii ve stejné mřížce.

Události

Událost má název, volitelné poznámky, čas začátku, volitelný konec, příznak celého dne a volitelné pravidlo opakování. Názvy a poznámky se při uložení šifrují stejným envelope jako chaty a poznámky.

Opakování používá sdílený model spouštěčů:

TypPoleVýznam
onceatJeden výskyt
hourlyminute, startHour?, endHour?Každou hodinu v intervalu
dailyhour, minuteKaždý den v určený čas
weeklydayOfWeek, hour, minuteKaždý týden ve zvolený den
monthlydayOfMonth, hour, minuteKaždý měsíc ve zvolený den
yearlymonth, dayOfMonth, hour, minuteKaždý rok ve zvolené datum

Opakující se události se ukládají jednou. Rozsahové dotazy je rozbalují na serveru. Každý vypočtený výskyt obsahuje baseEventId odkazující na zdroj, takže změna aktualizuje všechny budoucí výskyty. dayOfMonth za koncem měsíce se omezí na poslední den. Výpočty používají místní časové pásmo serveru.

Pojmenované kalendáře a sdílení

Vedle výchozího osobního rozsahu může uživatel vytvořit až 20 pojmenovaných kalendářů s volitelnou barvou. Události mají volitelné calendarId; bez něj zůstávají v soukromém výchozím rozsahu.

Pojmenované kalendáře se sdílejí společným modelem oprávnění: read umožní příjemci vidět kalendář a události vedle vlastních, zatímco write dovolí také vytváření a úpravy. Události spolupracovníka se ukládají pod účtem vlastníka kalendáře, takže kvóty, mazání a přenosný archiv zůstávají v rozsahu vlastníka. Přístup se znovu ověřuje při každém požadavku; odvolání oprávnění kalendář při příštím čtení skryje. Smazání přesune události do výchozího rozsahu vlastníka a odstraní oprávnění.

Připomenutí

Událost může mít posun připomenutí (reminderMinutes, až 14 dní). Pronajatý tick plánovače automatizací vyhledává splatná připomenutí a publikuje calendar-reminder do schránky vlastníka. Compare-and-set pro každý výskyt zaručuje, že se znovu nespustí, ani u opakování.

Import a export ICS

GET /api/calendar/export?calendarId= stáhne kalendář nebo výchozí rozsah jako soubor .ics RFC 5545 s časovými razítky UTC, escapovaným textem, základními RRULE a bloky VALARM. POST /api/calendar/import přijímá payload ICS do 2 MB/1 000 událostí do zapisovatelného rozsahu. Import zpracovává UTC, plovoucí časy, celodenní DATE a jednoduchá pravidla FREQ. Pravidla, která nelze věrně vyjádřit (INTERVAL, COUNT, UNTIL, EXDATE), se importují bez opakování a ve výsledku se počítají jako vynechaná.

Přístup modelu

Tři vestavěné nástroje chatu dávají modelům přístup ke kalendáři pod identitou volajícího: list_calendar_events je jen pro čtení, zatímco create_calendar_event a delete_calendar_event mají vedlejší účinky a procházejí běžným schvalovacím tokem.

API

Všechny endpointy vyžadují ověření. Čtení pokrývá vlastní události a kalendáře sdílené s uživatelem; zápis vyžaduje vlastnictví nebo oprávnění k zápisu.

MetodaCestaÚčel
GET/api/calendar/events?from=&to=Události v rozsahu, rozbalené opakování
POST/api/calendar/eventsVytvořit událost
PUT/api/calendar/events/:eventIdAktualizovat událost
DELETE/api/calendar/events/:eventIdSmazat událost
GET/api/calendar/calendarsVlastní a sdílené pojmenované kalendáře
POST/api/calendar/calendarsVytvořit pojmenovaný kalendář
PUT/api/calendar/calendars/:idPřejmenovat nebo změnit barvu
DELETE/api/calendar/calendars/:idSmazat kalendář (události se odpojí)
GET/api/calendar/exportExport ICS
POST/api/calendar/importImport ICS

Rozsahové dotazy používají from/to v epochových milisekundách a pokrývají nejvýše 13 měsíců na požadavek. Uživatel může uložit až 2000 událostí; názvy mají limit 200 znaků a poznámky 10 000.