CalDAV API Developer's Guide

CalDAV is an extension of WebDAV that provides a standard for clients to access calendar information on a remote server.

Google provides a CalDAV interface that you can use to view and manage calendars using the CalDAV protocol.

The CalDAV API has the same quota limits as the Calendar API. For more information, see Usage limits.

Specifications

For each of the relevant specifications, Google's CalDAV support is as follows:

Although our CalDAV implementation doesn't cover every specification, it works correctly for many clients, including Apple Calendar.

Create your client ID

To use the CalDAV API you need to have a Google Account.

Before you can send requests to the CalDAV API, you must register your client with the Google Cloud console by creating a project.

Go to the Google API Console. Click Create project, enter a name, and click Create.

You next need to activate the CalDAV API.

To enable an API for your project, do the following:

  1. Open the API Library in the Google API Console. If prompted, select a project or create a new one. The API Library lists all available APIs, grouped by product family and popularity.
  2. If the API you want to enable isn't visible in the list, use search to find it.
  3. Select the API you want to enable, then click the Enable button.
  4. If prompted, enable billing.
  5. If prompted, accept the API's Terms of Service.

To perform CalDAV API requests you need a Client ID and Client Secret.

To find your project's client ID and client secret, do the following:

  1. Select an existing OAuth 2.0 credential or open the Credentials page.
  2. If you haven't done so already, create your project's OAuth 2.0 credentials by clicking Create credentials > OAuth client ID, and providing the information needed to create the credentials.
  3. Look for the Client ID in the OAuth 2.0 client IDs section. For details, click the client ID.

Connect to Google's CalDAV server

To use the CalDAV interface, a client program initially connects with the calendar server at one of two starting points. In either case, the connection must be made over HTTPS and must use the OAuth 2.0 authentication scheme. The CalDAV server refuses to authenticate a request unless it arrives over HTTPS with OAuth 2.0 authentication of a Google Account. Attempting to connect over HTTP or using Basic Authentication results in an HTTP 401 Unauthorized status code.

If the client program (such as Apple's Calendar app) requires a principal collection as the starting point, the URI to connect to is:

https://apidata.googleusercontent.com/caldav/v2/CALENDAR_ID/user

Replace CALENDAR_ID with the ID of the calendar to be accessed.

To find the calendar ID through the web interface, select ** Calendar Settings** in the drop-down menu next to the calendar name. The calendar ID is shown in a section labeled Calendar Address. The calendar ID for a user's primary calendar is the same as that user's email address.

If a client program (such as Mozilla Thunderbird) requires a calendar collection as the starting point, use the following URI:

https://apidata.googleusercontent.com/caldav/v2/CALENDAR_ID/events