ปฏิทิน
Libre WebUI มีปฏิทินส่วนตัว ผู้ใช้ที่เข้าสู่ระบบแต่ละรายมีมุมมองเดือนและสัปดาห์ของตนเอง พร้อมกิจกรรมครั้งเดียวและเกิดซ้ำ ส่วนระบบอัตโนมัติตามกำหนดจะแสดงเหตุการณ์ที่กำลังจะเกิดและประวัติการทำงานในตารางเดียวกัน
กิจกรรม
กิจกรรมมีชื่อ บันทึกที่เลือกได้ เวลาเริ่ม เวลาสิ้นสุดที่เลือกได้ ตัวบ่งชี้ทั้งวัน และกฎการเกิดซ้ำที่เลือกได้ ชื่อและบันทึกจะเข้ารหัสขณะเก็บด้วย envelope เดียวกับแชตและบันทึก
การเกิดซ้ำใช้โมเดลทริกเกอร์ร่วม:
| ชนิด | ฟิลด์ | ความหมาย |
|---|---|---|
once | at | เกิดครั้งเดียว |
hourly | minute, startHour?, endHour? | ทุกชั่วโมงภายในช่วง |
daily | hour, minute | ทุกวันตามเวลานาฬิกา |
weekly | dayOfWeek, hour, minute | ทุกสัปดาห์ในวันที่เลือก |
monthly | dayOfMonth, hour, minute | ทุกเดือนในวันที่เลือก |
yearly | month, dayOfMonth, hour, minute | ทุกปีในวันที่เลือก |
กิจกรรมเกิดซ้ำจะเก็บครั้งเดียว คำค้นช่วงจะขยายที่ฝั่งเซิร์ฟเวอร์ แต่ละเหตุการณ์ที่คาดการณ์มี baseEventId ชี้กลับไปยังกิจกรรมต้นทาง การแก้ต้นทางจึงอัปเดตเหตุการณ์ในอนาคตทั้งหมด dayOfMonth ที่เกินสิ้นเดือนจะจำกัดเป็นวันสุดท้ายของเดือน การคำนวณการเกิดซ้ำทั้งหมดใช้เขตเวลาท้องถิ่นของเซิร์ฟเวอร์
ปฏิทินที่มีชื่อและการแชร์
นอกจากขอบเขตส่วนตัวเริ่มต้น ผู้ใช้สร้างปฏิทินที่มีชื่อได้สูงสุด 20 รายการ แต่ละรายการมีสีแสดงผลที่เลือกได้ กิจกรรมมี calendarId ที่เลือกได้ กิจกรรมที่ไม่มีค่าจะอยู่ในขอบเขตเริ่มต้นซึ่งเป็นส่วนตัว
ปฏิทินที่มีชื่อแชร์ผ่านโมเดลการให้สิทธิ์ร่วม สิทธิ์ read ให้ผู้รับเห็นปฏิทินและกิจกรรมข้างของตน ส่วน write ยังให้สร้างและแก้กิจกรรมได้ กิจกรรมที่ผู้ร่วมงานสร้างเก็บภายใต้บัญชี เจ้าของปฏิทิน โควตา การลบ และคลังแบบพกพาจึงอยู่ในขอบเขตเจ้าของ ระบบอนุญาตใหม่ทุกคำขอ การถอนสิทธิ์จะซ่อนปฏิทินในการอ่านครั้งถัดไป การลบปฏิทินจะแยกกิจกรรมกลับสู่ขอบเขตเริ่มต้นของเจ้าของและลบสิทธิ์
การเตือน
กิจกรรมมีระยะเตือน (reminderMinutes, สูงสุด 14 วัน) ได้ tick แบบ lease ของตัวจัดกำหนดการอัตโนมัติจะตรวจการเตือนครบกำหนดและส่ง calendar-reminder ไปยังกล่องข้อความของเจ้าของ compare-and-set ต่อเหตุการณ์รับประกันว่าจะไม่ส่งซ้ำ รวมถึงกิจกรรมเกิดซ้ำ
นำเข้าและส่งออก ICS
GET /api/calendar/export?calendarId= ดาวน์โหลดปฏิทิน (หรือขอบเขตเริ่มต้น) เป็นไฟล์ .ics RFC 5545 ซึ่งมีเวลา UTC ข้อความ escape, RRULE พื้นฐานจากชนิดการเกิดซ้ำ native และบล็อก VALARM สำหรับการเตือน POST /api/calendar/import รับ payload ICS (สูงสุด 2 MB / 1,000 กิจกรรม) เข้าสู่ขอบเขตปฏิทินที่เขียนได้ ตัวนำเข้ารองรับเวลา UTC และแบบลอย ค่า DATE ทั้งวัน และกฎ FREQ แบบง่าย กฎที่แสดงไม่ได้ตรง (INTERVAL, COUNT, UNTIL, EXDATE) จะนำเข้ากิจกรรมโดยไม่เกิดซ้ำและนับเป็นกฎที่ละทิ้งในคำตอบ แทนการเลื่อนโดยไม่แจ้ง
การเข้าถึงของโมเดล
เครื่องมือแชตในตัวสามรายการให้โมเดลเข้าถึงปฏิทินภายใต้ตัวตนผู้ใช้ที่เรียก ได้แก่ list_calendar_events (อ่านอย่างเดียว), create_calendar_event และ delete_calendar_event (สองรายการหลังมีผลข้างเคียงจึงผ่านขั้นตอนอนุมัติเครื่องมือมาตรฐาน)
API
endpoint ทั้งหมดต้องยืนยันตัวตน การอ่านครอบคลุมกิจกรรมของผู้เรียกและปฏิทินที่แชร์ให้ การเขียนต้องเป็นเจ้าของหรือมีสิทธิ์เขียนในปฏิทินเป้าหมาย
| วิธี | เส้นทาง | วัตถุประสงค์ |
|---|---|---|
GET | /api/calendar/events?from=&to= | กิจกรรมในช่วง พร้อมขยายการเกิดซ้ำ |
POST | /api/calendar/events | สร้างกิจกรรม |
PUT | /api/calendar/events/:eventId | อัปเดตกิจกรรม |
DELETE | /api/calendar/events/:eventId | ลบกิจกรรม |
GET | /api/calendar/calendars | ปฏิทินที่มีชื่อของตนและที่แชร์ |
POST | /api/calendar/calendars | สร้างปฏิทินที่มีชื่อ |
PUT | /api/calendar/calendars/:id | เปลี่ยนชื่อหรือสีปฏิทิน |
DELETE | /api/calendar/calendars/:id | ลบปฏิทิน (แยกกิจกรรม) |
GET | /api/calendar/export | ส่งออก ICS |
POST | /api/calendar/import | นำเข้า ICS |
คำค้นช่วงใช้ขอบเขต from/to เป็นมิลลิวินาที epoch และครอบคลุมสูงสุด 13 เดือนต่อคำขอ ผู้ใช้เก็บกิจกรรมได้ 2000 รายการ ชื่อจำกัด 200 อักขระและบันทึก 10,000