Kalender
Libre WebUI har en personlig kalender. Hver bruger får egne måneds- og ugevisninger med engangs- og tilbagevendende begivenheder. Planlagte automatiseringer viser kommende kørsler og kørselshistorik i samme gitter.
Begivenheder
En begivenhed har en titel, valgfrie noter, starttid, valgfri sluttid, heldagsmarkering og valgfri gentagelsesregel. Titler og noter krypteres ved lagring med samme envelope som chats og noter.
Gentagelse bruger den fælles udløsermodel:
| Type | Felter | Betydning |
|---|---|---|
once | at | Én forekomst |
hourly | minute, startHour?, endHour? | Hver time i et interval |
daily | hour, minute | Hver dag på et klokkeslæt |
weekly | dayOfWeek, hour, minute | Hver uge på valgt dag |
monthly | dayOfMonth, hour, minute | Hver måned på valgt dag |
yearly | month, dayOfMonth, hour, minute | Hvert år på valgt dato |
Tilbagevendende begivenheder gemmes én gang. Intervalforespørgsler udvider dem på serversiden. Hver beregnet forekomst har et baseEventId, der peger på kilden, så en ændring opdaterer alle fremtidige forekomster. Et dayOfMonth efter månedens slutning begrænses til sidste dag. Alle beregninger bruger serverens lokale tidszone.
Navngivne kalendere og deling
Ud over det personlige standardomfang kan en bruger oprette op til 20 navngivne kalendere, hver med valgfri visningsfarve. Begivenheder har valgfrit calendarId; uden ID findes de i det private standardomfang.
Navngivne kalendere deles gennem den fælles tilladelsesmodel: read lader modtageren se kalender og begivenheder ved siden af egne, mens write også tillader oprettelse og redigering. Begivenheder oprettet af en samarbejdspartner gemmes under kalenderejerens konto, så kvoter, sletning og portabelt arkiv forbliver ejerafgrænset. Adgang godkendes igen ved hver anmodning; en tilbagekaldt tilladelse skjuler kalenderen ved næste læsning. Sletning flytter begivenheder til ejerens standardomfang og fjerner tilladelser.
Påmindelser
En begivenhed kan have en påmindelsesforskydning (reminderMinutes, højst 14 dage). Automatiseringsplanlæggerens leasede tick finder forfaldne påmindelser og publicerer calendar-reminder i ejerens indbakke. Compare-and-set pr. forekomst sikrer, at den aldrig udløses igen, heller ikke ved gentagelser.
ICS-import og -eksport
GET /api/calendar/export?calendarId= henter en kalender eller standardomfanget som en RFC 5545 .ics-fil med UTC-tidsstempler, escaped tekst, grundlæggende RRULE fra de indbyggede gentagelsestyper og VALARM til påmindelser. POST /api/calendar/import modtager en ICS-payload på højst 2 MB/1.000 begivenheder i et skrivbart kalenderomfang. Importen håndterer UTC, flydende tider, heldags-DATE og enkle FREQ-regler. Regler, der ikke kan gengives troværdigt (INTERVAL, COUNT, UNTIL, EXDATE), importeres uden gentagelse og tælles som bortfaldne i svaret.
Modeladgang
Tre indbyggede chatværktøjer giver modeller kalenderadgang under den kaldende brugers identitet: list_calendar_events er skrivebeskyttet, mens create_calendar_event og delete_calendar_event har sideeffekter og går gennem det normale godkendelsesflow.
API
Alle endpoints kræver godkendelse. Læsning omfatter egne begivenheder og kalendere, der deles med brugeren; skrivning kræver ejerskab eller skrivetilladelse på målkalenderen.
| Metode | Sti | Formål |
|---|---|---|
GET | /api/calendar/events?from=&to= | Begivenheder i interval, gentagelse udvidet |
POST | /api/calendar/events | Opret en begivenhed |
PUT | /api/calendar/events/:eventId | Opdatér en begivenhed |
DELETE | /api/calendar/events/:eventId | Slet en begivenhed |
GET | /api/calendar/calendars | Egne og delte navngivne kalendere |
POST | /api/calendar/calendars | Opret en navngiven kalender |
PUT | /api/calendar/calendars/:id | Omdøb eller skift farve på en kalender |
DELETE | /api/calendar/calendars/:id | Slet en kalender (begivenheder frigøres) |
GET | /api/calendar/export | ICS-eksport |
POST | /api/calendar/import | ICS-import |
Intervalforespørgsler bruger from/to i epoch-millisekunder og dækker højst 13 måneder pr. anmodning. En bruger kan gemme op til 2000 begivenheder; titler begrænses til 200 tegn og noter til 10.000.