ข้ามไปยังเนื้อหาหลัก

ปฏิทิน

Libre WebUI มีปฏิทินส่วนตัว ผู้ใช้ที่เข้าสู่ระบบแต่ละรายมีมุมมองเดือนและสัปดาห์ของตนเอง พร้อมกิจกรรมครั้งเดียวและเกิดซ้ำ ส่วนระบบอัตโนมัติตามกำหนดจะแสดงเหตุการณ์ที่กำลังจะเกิดและประวัติการทำงานในตารางเดียวกัน

กิจกรรม

กิจกรรมมีชื่อ บันทึกที่เลือกได้ เวลาเริ่ม เวลาสิ้นสุดที่เลือกได้ ตัวบ่งชี้ทั้งวัน และกฎการเกิดซ้ำที่เลือกได้ ชื่อและบันทึกจะเข้ารหัสขณะเก็บด้วย envelope เดียวกับแชตและบันทึก

การเกิดซ้ำใช้โมเดลทริกเกอร์ร่วม:

ชนิดฟิลด์ความหมาย
onceatเกิดครั้งเดียว
hourlyminute, startHour?, endHour?ทุกชั่วโมงภายในช่วง
dailyhour, minuteทุกวันตามเวลานาฬิกา
weeklydayOfWeek, hour, minuteทุกสัปดาห์ในวันที่เลือก
monthlydayOfMonth, hour, minuteทุกเดือนในวันที่เลือก
yearlymonth, 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