Lịch
Libre WebUI có lịch cá nhân. Mỗi người dùng đã đăng nhập có chế độ xem tháng và tuần riêng với các sự kiện một lần hoặc lặp lại; các tự động hóa theo lịch cũng hiển thị lần xuất hiện sắp tới và lịch sử chạy trên cùng một lưới.
Sự kiện
Một sự kiện có tiêu đề, ghi chú tùy chọn, thời gian bắt đầu, thời gian kết thúc tùy chọn, cờ cả ngày và quy tắc lặp tùy chọn. Tiêu đề và ghi chú được mã hóa khi lưu bằng cùng envelope dùng cho trò chuyện và ghi chú.
Việc lặp lại dùng mô hình kích hoạt chung:
| Loại | Trường | Ý nghĩa |
|---|---|---|
once | at | Một lần xuất hiện |
hourly | minute, startHour?, endHour? | Mỗi giờ trong một khoảng |
daily | hour, minute | Mỗi ngày vào một giờ cố định |
weekly | dayOfWeek, hour, minute | Mỗi tuần vào ngày đã chọn |
monthly | dayOfMonth, hour, minute | Mỗi tháng vào ngày đã chọn |
yearly | month, dayOfMonth, hour, minute | Mỗi năm vào ngày đã chọn |
Sự kiện lặp lại chỉ được lưu một lần. Truy vấn phạm vi mở rộng chúng ở phía máy chủ: mỗi lần xuất hiện dự kiến mang baseEventId trỏ về sự kiện nguồn, nên sửa nguồn sẽ cập nhật mọi lần xuất hiện trong tương lai. dayOfMonth vượt quá cuối tháng được giới hạn về ngày cuối cùng của tháng đó. Mọi phép tính lặp dùng múi giờ cục bộ của máy chủ.
Lịch có tên và chia sẻ
Ngoài phạm vi cá nhân mặc định, người dùng có thể tạo tối đa 20 lịch có tên, mỗi lịch có màu hiển thị tùy chọn. Sự kiện mang calendarId tùy chọn; sự kiện không có giá trị này nằm trong phạm vi mặc định và vẫn riêng tư.
Lịch có tên được chia sẻ qua mô hình cấp quyền chung: quyền read cho phép người nhận xem lịch và sự kiện cùng lịch của họ; quyền write còn cho phép tạo và sửa sự kiện trong đó. Sự kiện do cộng tác viên tạo được lưu dưới tài khoản chủ lịch, vì vậy hạn ngạch, xóa và kho lưu trữ di động vẫn thuộc phạm vi chủ sở hữu. Quyền truy cập được xác thực lại ở mỗi yêu cầu; thu hồi quyền sẽ ẩn lịch ở lần đọc tiếp theo. Xóa lịch sẽ tách sự kiện về phạm vi mặc định của chủ sở hữu và xóa các quyền cấp.
Lời nhắc
Sự kiện có thể mang khoảng lệch nhắc nhở (reminderMinutes, tối đa 14 ngày). Nhịp có lease của trình lập lịch tự động hóa quét lời nhắc đến hạn và gửi thông báo calendar-reminder vào hộp thư của chủ sự kiện; phép compare-and-set theo từng lần xuất hiện đảm bảo mỗi lần không bao giờ kích hoạt lại, kể cả sự kiện lặp.
Nhập và xuất ICS
GET /api/calendar/export?calendarId= tải xuống lịch (hoặc phạm vi mặc định) dưới dạng tệp .ics RFC 5545: dấu thời gian UTC, văn bản đã escape, RRULE cơ bản ánh xạ từ loại lặp native và các khối VALARM cho lời nhắc. POST /api/calendar/import nhận payload ICS (tối đa 2 MB/1.000 sự kiện) vào phạm vi lịch có thể ghi. Trình nhập xử lý giờ UTC và giờ thả nổi, giá trị DATE cả ngày cùng quy tắc FREQ đơn giản; quy tắc không thể biểu diễn chính xác (INTERVAL, COUNT, UNTIL, EXDATE) sẽ nhập sự kiện không lặp và được tính trong phản hồi là quy tắc bị bỏ thay vì âm thầm bị lệch.
Quyền truy cập của mô hình
Ba công cụ trò chuyện tích hợp cho mô hình truy cập lịch theo danh tính người dùng gọi: list_calendar_events (chỉ đọc), create_calendar_event và delete_calendar_event (hai công cụ sau có tác dụng phụ nên phải qua luồng phê duyệt công cụ tiêu chuẩn).
API
Mọi endpoint đều yêu cầu xác thực. Việc đọc sự kiện bao gồm sự kiện của người gọi và lịch được chia sẻ với họ; việc ghi yêu cầu quyền sở hữu hoặc quyền ghi trên lịch đích.
| Phương thức | Đường dẫn | Mục đích |
|---|---|---|
GET | /api/calendar/events?from=&to= | Sự kiện trong phạm vi, đã mở rộng lặp |
POST | /api/calendar/events | Tạo sự kiện |
PUT | /api/calendar/events/:eventId | Cập nhật sự kiện |
DELETE | /api/calendar/events/:eventId | Xóa sự kiện |
GET | /api/calendar/calendars | Lịch có tên của mình và được chia sẻ |
POST | /api/calendar/calendars | Tạo lịch có tên |
PUT | /api/calendar/calendars/:id | Đổi tên hoặc màu lịch |
DELETE | /api/calendar/calendars/:id | Xóa lịch (tách sự kiện) |
GET | /api/calendar/export | Xuất ICS |
POST | /api/calendar/import | Nhập ICS |
Truy vấn phạm vi nhận giới hạn from/to theo mili giây epoch và kéo dài tối đa 13 tháng mỗi yêu cầu. Một người dùng có thể lưu tối đa 2000 sự kiện; tiêu đề giới hạn 200 ký tự và ghi chú 10.000 ký tự.