Agenda
Iedere aangemelde gebruiker heeft maand- en weekweergaven met eenmalige en terugkerende gebeurtenissen; geplande automatiseringen tonen komende uitvoeringen en geschiedenis op hetzelfde raster.
Gebeurtenissen
Een gebeurtenis heeft titel, optionele notities, begin, optioneel einde, hele-dagvlag en optionele herhaling. Titel en notities worden in rust versleuteld.
| Soort | Velden | Betekenis |
|---|---|---|
once | at | Eén keer |
hourly | minute, startHour?, endHour? | Elk uur in venster |
daily | hour, minute | Dagelijks lokaal |
weekly | dayOfWeek, hour, minute | Wekelijks |
monthly | dayOfMonth, hour, minute | Maandelijks |
yearly | month, dayOfMonth, hour, minute | Jaarlijks |
Terugkerende gebeurtenissen worden één keer opgeslagen en server-side uitgebreid. Elke projectie heeft baseEventId; wijzigen werkt toekomstige instanties bij. dayOfMonth na maandultimo wordt begrensd. Berekeningen gebruiken de lokale servertijdzone.
Benoemde agenda's en delen
Een gebruiker kan maximaal 20 agenda's maken met optionele kleur. calendarId koppelt een gebeurtenis; zonder blijft die in de privéstandaardagenda.
Delen gebruikt het rechtenmodel: read toont agenda en gebeurtenissen, write laat ook bewerken. Door een bijdrager gemaakte gebeurtenissen worden onder de agenda-eigenaar opgeslagen, zodat quota, verwijdering en archief bij eigenaar blijven. Toegang wordt telkens opnieuw gecontroleerd; intrekken werkt bij de volgende lezing. Een agenda verwijderen koppelt gebeurtenissen terug aan de standaardagenda en verwijdert rechten.
Herinneringen
reminderMinutes kan tot 14 dagen zijn. De scheduler publiceert calendar-reminder aan de eigenaar; compare-and-set per voorkomen voorkomt herhaling.
ICS importeren/exporteren
GET /api/calendar/export?calendarId= downloadt RFC 5545 .ics met UTC, escaped tekst, eenvoudige RRULE en VALARM. POST /api/calendar/import accepteert tot 2 MB/1.000 gebeurtenissen. UTC, floating times, hele-dag DATE en eenvoudige FREQ werken. Niet exact weer te geven INTERVAL, COUNT, UNTIL, EXDATE worden zonder herhaling geïmporteerd en als vervallen regel gemeld.
Modeltoegang
list_calendar_events (lezen), create_calendar_event en delete_calendar_event (effect, goedkeuring) werken onder de identiteit van de gebruiker.
API
| Methode | Pad | Doel |
|---|---|---|
GET | /api/calendar/events?from=&to= | Gebeurtenissen, uitgebreid |
POST | /api/calendar/events | Maken |
PUT | /api/calendar/events/:eventId | Bijwerken |
DELETE | /api/calendar/events/:eventId | Verwijderen |
GET | /api/calendar/calendars | Eigen/gedeelde agenda's |
POST | /api/calendar/calendars | Agenda maken |
PUT | /api/calendar/calendars/:id | Naam/kleur |
DELETE | /api/calendar/calendars/:id | Agenda verwijderen |
GET | /api/calendar/export | ICS export |
POST | /api/calendar/import | ICS import |
from/to zijn epoch-millisecond, maximaal 13 maanden. Maximaal 2000 gebeurtenissen, titels 200 en notities 10.000 tekens.