CalDAV 是 WebDAV 的擴充功能,可為用戶端提供標準,方便用戶端存取遠端伺服器上的日曆資訊。
Google 提供 CalDAV 介面,方便您透過 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
。除了有空/忙碌查詢之外,所有報表均已實作。 - 不支援 HTTP 方法
MKCALENDAR
。 - 不支援
AUDIO
動作。
- 支援 HTTP 方法
- rfc5545: icalendar
- 在 CalDAV 介面中公開的資料會根據 icalendar 規格格式化。
- 目前不支援
VTODO
或VJOURNAL
資料。 - 不支援 Apple iCal® 擴充功能,因此無法允許使用者設定的網址屬性。
- rfc6578:WebDAV 的集合同步
- 用戶端應用程式必須在初次同步處理後,切換至此作業模式。
- rfc6638:將擴充功能排程為 CalDAV
- 支援一律空白的常見「收件匣」;
- 您收到的邀請會自動傳送到「事件」集合,而不是放入「收件匣」中。
- 不支援查詢有空/忙碌狀態。
- caldav-ctag-02:CalDAV 中的日曆集合實體標記 (CTag)
- 日曆
ctag
類似資源etag
;當日曆中的任何內容有所變更時,日曆都會隨之變更。這可讓用戶端應用程式快速判斷不需要同步處理任何變更的事件。
- 日曆
- calendar-proxy:CalDAV 中的日曆使用者 Proxy 功能
- 為改善 iOS 裝置 (不支援委派功能) 同步處理日曆的效能,因此無法在 iOS UserAgent 中使用
calendar-proxy-read-for
或calendar-proxy-write-for
屬性。
- 為改善 iOS 裝置 (不支援委派功能) 同步處理日曆的效能,因此無法在 iOS UserAgent 中使用
我們尚未提供所有相關規格的完整實作。不過,對於許多用戶端 (例如 Apple 行事曆應用程式) 的用戶端,CalDAV 通訊協定應能正確互通。
注意:為保障帳戶安全以及防範濫用行為,Google 可能會在透過 CalDAV 存取資料的用戶端應用程式中設定 Cookie。
建立用戶端 ID
如要使用 CalDAV API,您必須具備 Google 帳戶。如果您已有帳戶可用,就不需要採取任何動作。
您必須先建立專案,透過 Google API 控制台註冊用戶端,才能向 CalDAV API 傳送要求。
前往 Google API 控制台。按一下「Create project」(建立專案) 並輸入名稱,然後按一下「Create」(建立)。
下一步是啟用 CalDAV API。如果想為專案啟用 API,請按照以下步驟操作:
- 在 Google API 控制台中開啟 API 程式庫。按照系統說明選取專案,或建立新專案。API 程式庫會列出所有可用的 API,並以產品系列和熱門程度分組。
- 如果清單裡找不到您想啟用的 API,請使用搜尋功能。
- 選取要啟用的 API,然後按一下「Enable」按鈕。
- 如果系統顯示提示,請啟用帳單功能。
- 如果系統顯示提示,請接受 API 的《服務條款》。
如要找出專案的用戶端 ID 和用戶端密鑰,請按照下列步驟操作:
- 選取現有的 OAuth 2.0 憑證或開啟「憑證」頁面。
- 如果您尚未建立專案的 OAuth 2.0 憑證,請點選「Create credentials」(建立憑證) >「OAuth client ID」(OAuth 用戶端 ID),然後提供建立憑證所需的資訊。
- 在「OAuth 2.0 用戶端 ID」部分中找出「用戶端 ID」。如要瞭解詳情,請按一下用戶端 ID。
正在連線至 Google 的 CalDAV 伺服器
如要使用 CalDAV 介面,用戶端程式一開始會透過兩個起點與日曆伺服器連線。不論是哪一種情況,都必須透過 HTTPS 建立連線,且必須使用 OAuth 2.0 驗證配置。CalDAV 伺服器會拒絕驗證要求,除非要求經由 HTTPS 傳送且支援 Google 帳戶的 OAuth 2.0 驗證。嘗試透過 HTTP 連線或使用基本驗證時,系統會傳回 HTTP 401 Unauthorized
狀態碼。
如果用戶端程式 (例如 Apple 的日曆應用程式) 需要主體集合做為起點,則連線的 URI 為:
https://apidata.googleusercontent.com/caldav/v2/calid/user
其中 calid
應替換為所要存取日曆的「日曆 ID」。您也可以透過 Google 日曆網頁介面找到日曆,方法如下:在日曆名稱旁邊的下拉式選單中選取「 Calendar Settings」(日曆設定)。在隨後出現的頁面上,日曆 ID 會顯示在「日曆地址」部分。使用者主要日曆的日曆 ID 與使用者的電子郵件地址相同。
如果用戶端程式 (例如 Mozilla Sunbird) 需要日曆集合做為起點,則連線的 URI 為:
https://apidata.googleusercontent.com/caldav/v2/calid/events
舊的端點 https://www.google.com/calendar/dav 已淘汰,不再提供相關支援,您必須自行承擔使用風險。建議您改用上述的新端點格式。
iCal® 是 Apple Inc. 的商標。