Naptár
A Libre WebUI személyes naptárt tartalmaz. Minden bejelentkezett felhasználó saját havi és heti nézetet kap egyszeri és ismétlődő eseményekkel, az ütemezett automatizálások pedig ugyanazon a rácson jelenítik meg a közelgő futásokat és a futási előzményeket.
Események
Egy eseménynek címe, opcionális megjegyzése, kezdési időpontja, opcionális befejezési időpontja, egész napos jelzője és opcionális ismétlődési szabálya van. A címek és megjegyzések nyugalmi állapotban ugyanazzal a burkolattal titkosítottak, mint a csevegések és jegyzetek.
Az ismétlődés a közös eseményindító modellt használja:
| Típus | Mezők | Jelentés |
|---|---|---|
once | at | Egyetlen előfordulás |
hourly | minute, startHour?, endHour? | Óránként egy megadott időablakban |
daily | hour, minute | Naponta, egy megadott időpontban |
weekly | dayOfWeek, hour, minute | Hetente, a kiválasztott napon |
monthly | dayOfMonth, hour, minute | Havonta, a kiválasztott napon |
yearly | month, dayOfMonth, hour, minute | Évente, a kiválasztott dátumon |
Az ismétlődő események egyszer tárolódnak. A tartománylekérdezések szerveroldalon bontják ki őket: minden kivetített előfordulás baseEventId mezője a forráseseményre mutat, így a forrás szerkesztése minden jövőbeli előfordulást frissít. A hónap végén túli dayOfMonth az adott hónap utolsó napjára korlátozódik. Minden ismétlődési számítás a szerver helyi időzónáját használja.
Elnevezett naptárak és megosztás
Az alapértelmezett személyes hatókör mellett a felhasználó legfeljebb 20 elnevezett naptárt hozhat létre, mindegyiket opcionális megjelenítési színnel. Az események opcionális calendarId mezővel rendelkeznek; az e nélküli események a privát alapértelmezett hatókörben maradnak.
Az elnevezett naptárak a közös jogosultsági modellel oszthatók meg: a read jogosultság lehetővé teszi, hogy a címzett a sajátjai mellett lássa a naptárt és eseményeit, a write jogosultság pedig események létrehozását és szerkesztését is engedi. A közreműködő által létrehozott események a naptár tulajdonosának fiókjában tárolódnak, így a kvóták, a törlés és a hordozható archívum a tulajdonos hatókörében marad. A hozzáférés minden kéréskor újraengedélyeződik; egy jogosultság visszavonása a következő olvasáskor elrejti a naptárt. A naptár törlése visszacsatolja eseményeit a tulajdonos alapértelmezett hatókörébe, és eltávolítja a jogosultságait.
Emlékeztetők
Egy esemény emlékeztető-eltolást tartalmazhat (reminderMinutes, legfeljebb 14 nap). Az automatizálási ütemező bérlethez kötött ciklusa összegyűjti az esedékes emlékeztetőket, és calendar-reminder értesítést küld az esemény tulajdonosának postaládájába; az előfordulásonkénti összehasonlítás és beállítás biztosítja, hogy egyetlen előfordulás se aktiválódjon újra, az ismétlődő eseményeket is beleértve.
ICS-importálás és -exportálás
A GET /api/calendar/export?calendarId= egy naptárt (vagy az alapértelmezett hatókört) RFC 5545 szerinti .ics fájlként tölt le: UTC-időbélyegekkel, escape-elt szöveggel, a natív ismétlődési típusokból leképezett alapvető RRULE szabályokkal és az emlékeztetők VALARM blokkjaival. A POST /api/calendar/import ICS-adatot (legfeljebb 2 MB / 1,000 esemény) fogad egy írható naptárhatókörbe. Az importáló kezeli az UTC- és lebegő időpontokat, az egész napos DATE értékeket és az egyszerű FREQ szabályokat; a hűen nem ábrázolható szabályok (INTERVAL, COUNT, UNTIL, EXDATE) esetén az eseményt ismétlődés nélkül importálja, a szabályokat pedig elvetettként számolja a válaszban, nem pedig észrevétlenül eltolja őket.
Modellhozzáférés
Három beépített csevegési eszköz biztosít naptárhozzáférést a modelleknek a hívó felhasználó identitásával: list_calendar_events (csak olvasható), create_calendar_event és delete_calendar_event (az utóbbi kettő mellékhatással jár, ezért a szokásos eszközjóváhagyási folyamat mögött áll).
API
Minden endpoint hitelesítést igényel. Az események olvasása a hívó saját eseményeire és a vele megosztott naptárakra terjed ki; az íráshoz tulajdonjog vagy írási jogosultság szükséges a célnaptárhoz.
| Metódus | Útvonal | Cél |
|---|---|---|
GET | /api/calendar/events?from=&to= | Események egy tartományban, kibontott ismétlődéssel |
POST | /api/calendar/events | Esemény létrehozása |
PUT | /api/calendar/events/:eventId | Esemény frissítése |
DELETE | /api/calendar/events/:eventId | Esemény törlése |
GET | /api/calendar/calendars | Saját és megosztott elnevezett naptárak |
POST | /api/calendar/calendars | Elnevezett naptár létrehozása |
PUT | /api/calendar/calendars/:id | Naptár átnevezése vagy átszínezése |
DELETE | /api/calendar/calendars/:id | Naptár törlése (az események leválnak) |
GET | /api/calendar/export | ICS-exportálás |
POST | /api/calendar/import | ICS-importálás |
A tartománylekérdezések epoch óta eltelt ezredmásodpercekben megadott from/to határokat fogadnak, és kérésenként legfeljebb 13 hónapot fednek le. Egy felhasználó legfeljebb 2000 eseményt tárolhat; a címek 200, a megjegyzések 10,000 karakterre korlátozottak.