Kalender
Libre WebUI enthält einen persönlichen Kalender. Jeder angemeldete Benutzer erhält eigene Monats- und Wochenansichten mit einmaligen und wiederkehrenden Terminen. Geplante Automatisierungen zeigen ihre nächsten Ausführungen und den Verlauf im selben Raster.
Termine
Ein Termin hat einen Titel, optionale Notizen, Startzeit, optionale Endzeit, eine Ganztagsmarkierung und eine optionale Wiederholungsregel. Titel und Notizen werden im Ruhezustand mit derselben Hülle wie Chats und Notizen verschlüsselt.
Wiederholungen verwenden das gemeinsame Auslösermodell:
| Art | Felder | Bedeutung |
|---|---|---|
once | at | Einmalige Ausführung |
hourly | minute, startHour?, endHour? | Stündlich innerhalb eines Fensters |
daily | hour, minute | Täglich zu einer lokalen Uhrzeit |
weekly | dayOfWeek, hour, minute | Wöchentlich an einem gewählten Tag |
monthly | dayOfMonth, hour, minute | Monatlich an einem gewählten Tag |
yearly | month, dayOfMonth, hour, minute | Jährlich an einem gewählten Datum |
Wiederkehrende Termine werden einmal gespeichert. Bereichsabfragen erweitern sie serverseitig: Jede projizierte Ausführung trägt eine baseEventId zum Ursprung, sodass dessen Änderung alle zukünftigen Ausführungen aktualisiert. Ein dayOfMonth hinter dem Monatsende wird auf den letzten Tag begrenzt. Alle Berechnungen verwenden die lokale Zeitzone des Servers.
Benannte Kalender und Freigabe
Neben dem persönlichen Standardbereich kann ein Benutzer bis zu 20 benannte Kalender mit optionaler Anzeigefarbe erstellen. Termine haben eine optionale calendarId; ohne sie gehören sie zum privaten Standardbereich.
Benannte Kalender verwenden das gemeinsame Freigabemodell: read erlaubt dem Empfänger, Kalender und Termine neben den eigenen zu sehen; write erlaubt zusätzlich Erstellen und Bearbeiten. Von Mitwirkenden erstellte Termine werden unter dem Konto des Kalenderbesitzers gespeichert, sodass Kontingente, Löschung und portables Archiv dem Besitzer zugeordnet bleiben. Der Zugriff wird bei jeder Anfrage neu geprüft; ein Widerruf blendet den Kalender bei der nächsten Abfrage aus. Beim Löschen werden Termine in den Standardbereich des Besitzers verschoben und Freigaben entfernt.
Erinnerungen
Ein Termin kann einen Erinnerungsabstand tragen (reminderMinutes, bis zu 14 Tage). Der geleaste Zyklus des Automatisierungsplaners durchsucht fällige Erinnerungen und veröffentlicht calendar-reminder im Posteingang des Besitzers. Ein Compare-and-set pro Ausführung verhindert erneutes Auslösen, auch bei Wiederholungen.
ICS-Import und -Export
GET /api/calendar/export?calendarId= lädt einen Kalender (oder Standardbereich) als RFC-5545-.ics herunter: UTC-Zeitstempel, maskierter Text, grundlegende RRULEs aus den nativen Arten und VALARM-Blöcke. POST /api/calendar/import akzeptiert eine ICS-Nutzlast (bis 2 MB / 1,000 Termine) in einem beschreibbaren Kalender. Der Import unterstützt UTC- und schwebende Zeiten, ganztägige DATE-Werte und einfache FREQ-Regeln. Nicht genau darstellbare Regeln (INTERVAL, COUNT, UNTIL, EXDATE) importieren den Termin ohne Wiederholung und werden als verworfen gezählt, statt still abzuweichen.
Modellzugriff
Drei integrierte Chatwerkzeuge geben Modellen Zugriff unter der Identität des aufrufenden Benutzers: list_calendar_events (nur Lesen), create_calendar_event und delete_calendar_event (mit Nebenwirkung und daher im üblichen Freigabeablauf).
API
Alle Endpunkte erfordern Authentifizierung. Lesezugriffe umfassen eigene Termine und freigegebene Kalender; Schreiben erfordert Besitz oder Schreibfreigabe.
| Methode | Pfad | Zweck |
|---|---|---|
GET | /api/calendar/events?from=&to= | Termine im Bereich, Wiederholungen erweitert |
POST | /api/calendar/events | Termin erstellen |
PUT | /api/calendar/events/:eventId | Termin aktualisieren |
DELETE | /api/calendar/events/:eventId | Termin löschen |
GET | /api/calendar/calendars | Eigene und freigegebene benannte Kalender |
POST | /api/calendar/calendars | Benannten Kalender erstellen |
PUT | /api/calendar/calendars/:id | Kalender umbenennen oder Farbe ändern |
DELETE | /api/calendar/calendars/:id | Kalender löschen (Termine werden abgetrennt) |
GET | /api/calendar/export | ICS-Export |
POST | /api/calendar/import | ICS-Import |
Bereichsabfragen verwenden from/to in Epochenmillisekunden und umfassen höchstens 13 Monate pro Anfrage. Ein Benutzer kann bis zu 2000 Termine speichern; Titel sind auf 200 Zeichen und Notizen auf 10,000 begrenzt.