Kalender
Libre WebUI menyertakan kalender pribadi. Setiap pengguna yang masuk memperoleh tampilan bulan dan pekannya sendiri dengan acara satu kali maupun berulang. Otomatisasi terjadwal juga memproyeksikan kejadian mendatang dan riwayat prosesnya pada kisi yang sama.
Acara
Sebuah acara memiliki judul, catatan opsional, waktu mulai, waktu selesai opsional, penanda sepanjang hari, dan aturan pengulangan opsional. Judul dan catatan dienkripsi saat disimpan dengan envelope yang sama seperti chat dan catatan.
Pengulangan menggunakan model pemicu bersama:
| Jenis | Kolom | Arti |
|---|---|---|
once | at | Satu kejadian |
hourly | minute, startHour?, endHour? | Setiap jam dalam suatu rentang |
daily | hour, minute | Setiap hari pada waktu jam dinding |
weekly | dayOfWeek, hour, minute | Setiap pekan pada hari yang dipilih |
monthly | dayOfMonth, hour, minute | Setiap bulan pada hari yang dipilih |
yearly | month, dayOfMonth, hour, minute | Setiap tahun pada tanggal yang dipilih |
Acara berulang hanya disimpan sekali. Kueri rentang memperluasnya di sisi server: setiap kejadian yang diproyeksikan membawa baseEventId yang menunjuk kembali ke acara sumber, sehingga mengedit sumber akan memperbarui semua kejadian mendatang. dayOfMonth yang melewati akhir bulan dibatasi ke hari terakhir bulan tersebut. Semua perhitungan pengulangan menggunakan zona waktu lokal server.
Kalender Bernama dan Berbagi
Selain cakupan pribadi bawaan, pengguna dapat membuat hingga 20 kalender bernama, masing-masing dengan warna tampilan opsional. Acara memiliki calendarId opsional; acara tanpa nilai ini berada dalam cakupan bawaan yang tetap privat.
Kalender bernama dibagikan melalui model pemberian akses umum: izin read memungkinkan penerima melihat kalender dan acaranya bersama kalender mereka sendiri, sedangkan izin write juga memungkinkan mereka membuat dan mengedit acara di dalamnya. Acara yang dibuat kolaborator disimpan di bawah akun pemilik kalender, sehingga kuota, penghapusan, dan arsip portabel tetap dibatasi pada pemilik. Akses diotorisasi ulang pada setiap permintaan; mencabut izin menyembunyikan kalender pada pembacaan berikutnya. Menghapus kalender melepaskan acaranya kembali ke cakupan bawaan pemilik dan menghapus pemberian aksesnya.
Pengingat
Acara dapat memiliki selisih waktu pengingat (reminderMinutes, hingga 14 hari). Tick bersewa milik penjadwal otomatisasi menyapu pengingat yang jatuh tempo dan menerbitkan pemberitahuan calendar-reminder ke kotak masuk pemilik acara; operasi compare-and-set per kejadian menjamin setiap kejadian tidak pernah dikirim ulang, termasuk acara berulang.
Impor dan Ekspor ICS
GET /api/calendar/export?calendarId= mengunduh kalender (atau cakupan bawaan) sebagai berkas .ics RFC 5545: stempel waktu UTC, teks yang di-escape, RRULE dasar yang dipetakan dari jenis pengulangan native, serta blok VALARM untuk pengingat. POST /api/calendar/import menerima payload ICS (hingga 2 MB/1.000 acara) ke cakupan kalender yang dapat ditulis. Pengimpor menangani waktu UTC dan waktu mengambang, nilai DATE sepanjang hari, serta aturan FREQ sederhana. Aturan yang tidak dapat diwakilinya secara akurat (INTERVAL, COUNT, UNTIL, EXDATE) mengimpor acara tanpa pengulangan dan dihitung dalam respons sebagai aturan yang dibuang, bukan dibiarkan bergeser diam-diam.
Akses Model
Tiga alat chat bawaan memberi model akses kalender berdasarkan identitas pengguna pemanggil: list_calendar_events (hanya baca), create_calendar_event, dan delete_calendar_event (keduanya memiliki efek samping sehingga melewati alur persetujuan alat standar).
API
Semua endpoint memerlukan autentikasi. Pembacaan acara mencakup acara milik pemanggil dan kalender yang dibagikan kepadanya; penulisan memerlukan kepemilikan atau izin tulis pada kalender tujuan.
| Metode | Jalur | Tujuan |
|---|---|---|
GET | /api/calendar/events?from=&to= | Acara dalam rentang, pengulangan diperluas |
POST | /api/calendar/events | Membuat acara |
PUT | /api/calendar/events/:eventId | Memperbarui acara |
DELETE | /api/calendar/events/:eventId | Menghapus acara |
GET | /api/calendar/calendars | Kalender bernama milik sendiri dan berbagi |
POST | /api/calendar/calendars | Membuat kalender bernama |
PUT | /api/calendar/calendars/:id | Mengganti nama atau warna kalender |
DELETE | /api/calendar/calendars/:id | Menghapus kalender (acara dilepaskan) |
GET | /api/calendar/export | Ekspor ICS |
POST | /api/calendar/import | Impor ICS |
Kueri rentang menggunakan batas from/to dalam milidetik epoch dan mencakup paling lama 13 bulan per permintaan. Seorang pengguna dapat menyimpan hingga 2000 acara; judul dibatasi 200 karakter dan catatan 10.000 karakter.