CalDAV คือส่วนขยายของ WebDAV ที่ให้มาตรฐานสำหรับไคลเอ็นต์ในการเข้าถึงข้อมูลปฏิทินในเซิร์ฟเวอร์ระยะไกล
Google มีอินเทอร์เฟซ CalDAV ที่คุณใช้เพื่อดูและจัดการปฏิทิน โดยใช้โปรโตคอล CalDAV ได้
CalDAV API มีขีดจํากัดโควต้าเช่นเดียวกับ Calendar API ดูข้อมูลเพิ่มเติมได้ที่โควต้าการใช้งาน
ข้อกำหนดเฉพาะ
การรองรับ CalDAV ของ Google สำหรับข้อกำหนดที่เกี่ยวข้องแต่ละรายการมีดังนี้
rfc4918: ส่วนขยาย HTTP สำหรับการเขียนและการกำหนดเวอร์ชันแบบกระจายบนเว็บ (WebDAV)
- รองรับเมธอด HTTP
GET,PUT,HEAD,DELETE,POST,OPTIONS,PROPFINDและPROPPATCH - ไม่รองรับเมธอด HTTP
LOCK,UNLOCK,COPY,MOVE,MKCOLหรือส่วนหัวIf*(ยกเว้นIf-Match) - ไม่รองรับพร็อพเพอร์ตี้ WebDAV ที่กำหนดเอง (ผู้ใช้กำหนด)
- ไม่รองรับการควบคุมการเข้าถึง WebDAV (rfc3744)
- รองรับเมธอด HTTP
rfc4791: ส่วนขยายการจัดตารางเวลาสำหรับ WebDAV (CalDAV)
- รองรับเมธอด HTTP
REPORTรายงานทั้งหมด ยกเว้นfree-busy-queryได้รับการติดตั้งใช้งานแล้ว - ไม่รองรับเมธอด HTTP
MKCALENDAR - ไม่รองรับการดำเนินการ
AUDIO
- รองรับเมธอด HTTP
-
- ข้อมูลที่แสดงในอินเทอร์เฟซ CalDAV จะจัดรูปแบบตามข้อกำหนด iCalendar
- ไม่รองรับข้อมูล
VTODOหรือVJOURNAL - ไม่รองรับส่วนขยาย Apple iCal เพื่ออนุญาตให้ผู้ใช้ตั้งค่าพร็อพเพอร์ตี้ URL
rfc6578: Collection Synchronization for WebDAV
- แอปพลิเคชันไคลเอ็นต์ต้องเปลี่ยนไปใช้โหมดการทำงานนี้หลังจาก การซิงค์ครั้งแรก
rfc6638: ส่วนขยายการตั้งเวลาสำหรับ CalDAV
- รองรับ "กล่องจดหมาย" ที่ไม่มีอะไรเลย ซึ่งจะว่างเปล่าเสมอ
- ระบบจะส่งคำเชิญที่คุณได้รับไปยังคอลเล็กชัน "กิจกรรม" โดยอัตโนมัติแทนที่จะส่งไปยัง "กล่องจดหมาย"
- ไม่รองรับการค้นหา
free-busy
caldav-ctag-02: แท็กเอนทิตีของคอลเล็กชันปฏิทิน (CTag) ใน CalDAV
- ปฏิทิน
ctagจะเหมือนกับทรัพยากรetagซึ่งจะเปลี่ยนแปลงเมื่อมีการเปลี่ยนแปลงใดๆ ในปฏิทิน ซึ่งจะช่วยให้แอปพลิเคชันไคลเอ็นต์ระบุได้อย่างรวดเร็วว่าไม่จำเป็นต้องซิงค์กิจกรรมที่มีการเปลี่ยนแปลง
- ปฏิทิน
calendar-proxy: ฟังก์ชันพร็อกซีผู้ใช้ปฏิทินใน CalDAV
- หากต้องการปรับปรุงประสิทธิภาพการซิงค์ปฏิทิน คำขอที่มีพร็อพเพอร์ตี้
calendar-proxy-read-forหรือcalendar-proxy-write-forจะล้มเหลวเมื่อใช้ UserAgent ของ iOS เนื่องจากอุปกรณ์ iOS ไม่รองรับการมอบสิทธิ์
- หากต้องการปรับปรุงประสิทธิภาพการซิงค์ปฏิทิน คำขอที่มีพร็อพเพอร์ตี้
แม้ว่าการติดตั้งใช้งาน CalDAV ของเราจะไม่ครอบคลุมทุกข้อกำหนด แต่ก็ทำงานได้อย่างถูกต้องสำหรับไคลเอ็นต์จำนวนมาก รวมถึงปฏิทินของ Apple
สร้างรหัสไคลเอ็นต์
หากต้องการใช้ CalDAV API คุณต้องมีบัญชี Google
ก่อนที่จะส่งคำขอไปยัง CalDAV API ได้ คุณต้องลงทะเบียนไคลเอ็นต์กับคอนโซล Google Cloud โดยการสร้างโปรเจ็กต์
ไปที่คอนโซล Google API คลิกสร้างโปรเจ็กต์ ป้อนชื่อ แล้วคลิกสร้าง
จากนั้นคุณต้องเปิดใช้งาน CalDAV API
หากต้องการเปิดใช้ API สำหรับโปรเจ็กต์ ให้ทำดังนี้
- เปิดคลัง API ในคอนโซล Google API หากได้รับข้อความแจ้ง ให้เลือก โปรเจ็กต์หรือสร้างโปรเจ็กต์ใหม่ คลัง API แสดง API ทั้งหมดที่พร้อมใช้งาน โดยจัดกลุ่มตามตระกูลผลิตภัณฑ์และความนิยม
- หากไม่เห็น API ที่ต้องการเปิดใช้ในรายการ ให้ใช้การค้นหาเพื่อค้นหา
- เลือก API ที่ต้องการเปิดใช้ แล้วคลิกปุ่มเปิดใช้
- หากได้รับแจ้ง ให้เปิดใช้การเรียกเก็บเงิน
- หากได้รับแจ้ง ให้ยอมรับข้อกำหนดในการให้บริการของ API
หากต้องการส่งคำขอ CalDAV API คุณต้องมี Client-ID และ รหัสลับไคลเอ็นต์
หากต้องการค้นหารหัสไคลเอ็นต์และรหัสลับไคลเอ็นต์ของโปรเจ็กต์ ให้ทำดังนี้
- เลือกข้อมูลเข้าสู่ระบบ OAuth 2.0 ที่มีอยู่หรือเปิดหน้าข้อมูลเข้าสู่ระบบ
- หากยังไม่ได้ดำเนินการ ให้สร้างข้อมูลเข้าสู่ระบบ OAuth 2.0 ของโปรเจ็กต์โดยคลิกสร้างข้อมูลเข้าสู่ระบบ > รหัสไคลเอ็นต์ OAuth แล้ว ระบุข้อมูลที่จำเป็นในการสร้างข้อมูลเข้าสู่ระบบ
- มองหารหัสไคลเอ็นต์ในส่วนรหัสไคลเอ็นต์ OAuth 2.0 โปรดคลิกรหัสไคลเอ็นต์เพื่อดูรายละเอียด
เชื่อมต่อกับเซิร์ฟเวอร์ CalDAV ของ Google
หากต้องการใช้อินเทอร์เฟซ CalDAV โปรแกรมไคลเอ็นต์จะเชื่อมต่อกับเซิร์ฟเวอร์ปฏิทินที่จุดเริ่มต้น 2 จุด ไม่ว่าจะในกรณีใด การเชื่อมต่อ
ต้องทำผ่าน HTTPS และต้องใช้รูปแบบการตรวจสอบสิทธิ์ OAuth
2.0 เซิร์ฟเวอร์ CalDAV จะปฏิเสธการตรวจสอบสิทธิ์คำขอ เว้นแต่คำขอจะมาผ่าน HTTPS
พร้อมการตรวจสอบสิทธิ์ OAuth 2.0 ของบัญชี Google การพยายามเชื่อมต่อผ่าน HTTP หรือใช้การตรวจสอบสิทธิ์ขั้นพื้นฐานจะส่งผลให้เกิดรหัสสถานะ HTTP 401 Unauthorized
หากโปรแกรมไคลเอ็นต์ (เช่น แอปปฏิทินของ Apple) ต้องใช้คอลเล็กชันหลักเป็นจุดเริ่มต้น URI ที่ใช้เชื่อมต่อคือ
https://apidata.googleusercontent.com/caldav/v2/CALENDAR_ID/user
แทนที่ CALENDAR_ID ด้วยรหัสของปฏิทินที่จะเข้าถึง
หากต้องการค้นหารหัสปฏิทินผ่านอินเทอร์เฟซเว็บ ให้เลือก ** การตั้งค่าปฏิทิน** ในเมนูแบบเลื่อนลงข้างชื่อปฏิทิน รหัสปฏิทินจะแสดงในส่วนที่มีป้ายกำกับว่าที่อยู่ ปฏิทิน รหัสปฏิทินสำหรับปฏิทินหลักของผู้ใช้จะเหมือนกับอีเมลของผู้ใช้รายนั้น
หากโปรแกรมไคลเอ็นต์ (เช่น Mozilla Thunderbird) ต้องใช้คอลเล็กชันปฏิทิน เป็นจุดเริ่มต้น ให้ใช้ URI ต่อไปนี้
https://apidata.googleusercontent.com/caldav/v2/CALENDAR_ID/events