CalDAV es una extensión de WebDAV que proporciona un estándar para que los clientes accedan a la información del calendario en un servidor remoto.
Google proporciona una interfaz de CalDAV que puedes usar para ver y administrar calendarios con el protocolo CalDAV.
Especificaciones
Para cada una de las especificaciones pertinentes, la compatibilidad de Google con CalDAV es la siguiente:
- rfc4918: HTTP Extensions for Web Distributed Authoring and Versioning
(WebDAV)
- Admite los métodos HTTP
GET
,PUT
,HEAD
,DELETE
,POST
,OPTIONS
,PROPFIND
yPROPPATCH
. - No admite los métodos HTTP
LOCK
,UNLOCK
,COPY
,MOVE
niMKCOL
, ni el encabezadoIf*
(exceptoIf-Match
). - No admite propiedades WebDAV arbitrarias (definidas por el usuario).
- No admite el control de acceso WebDAV (rfc3744).
- Admite los métodos HTTP
- rfc4791: Calendaring Extensions to WebDAV (CalDAV)
- Admite el método HTTP
REPORT
. Se implementaron todos los informes, excepto free-busy-query. - No admite el método HTTP
MKCALENDAR
. - No admite la acción
AUDIO
.
- Admite el método HTTP
- rfc5545: iCalendar
- Los datos expuestos en la interfaz de CalDAV se formatean según la especificación de iCalendar.
- Actualmente, no admite datos de
VTODO
niVJOURNAL
. - No admite la extensión Apple iCal® para permitir propiedades de URL configurables por el usuario.
- rfc6578: Collection Synchronization for WebDAV
- Las aplicaciones cliente deben cambiar a este modo de operación después de la sincronización inicial.
- rfc6638: Scheduling Extensions to CalDAV
- Admite una "bandeja de entrada" trivial, que siempre está vacía.
- Las invitaciones que recibes se envían automáticamente a tu colección de "eventos" en lugar de a tu "bandeja de entrada".
- No admite la búsqueda de disponibilidad.
- caldav-ctag-02: Etiqueta de entidad de colección de calendario (CTag) en CalDAV
- El calendario
ctag
es como un recursoetag
: cambia cuando se modifica algo en el calendario. Esto permite que la aplicación cliente determine rápidamente que no necesita sincronizar ningún evento cambiado.
- El calendario
- calendar-proxy: Funcionalidad de proxy de usuario de Calendar en CalDAV
- Para mejorar el rendimiento de la sincronización del calendario desde dispositivos iOS, que no admiten la delegación, no se podrán usar las propiedades
calendar-proxy-read-for
ocalendar-proxy-write-for
con un UserAgent de iOS.
- Para mejorar el rendimiento de la sincronización del calendario desde dispositivos iOS, que no admiten la delegación, no se podrán usar las propiedades
Aún no proporcionamos una implementación completa de todas las especificaciones pertinentes. Sin embargo, para muchos clientes, como la app de Calendario de Apple, el protocolo CalDAV debería interoperar correctamente.
Nota: Para garantizar la seguridad de la cuenta y evitar abusos, es posible que Google establezca cookies en las aplicaciones cliente que acceden a los datos a través de CalDAV.
Crea tu ID de cliente
Para usar la API de CalDAV, debes tener una Cuenta de Google. Si ya tienes una cuenta que puedes usar, no tienes que hacer nada más.
Antes de enviar solicitudes a la API de CalDAV, debes registrar tu cliente en la Consola de APIs de Google creando un proyecto.
Ve a la Consola de API de Google. Haz clic en Crear proyecto, ingresa un nombre y haz clic en Crear.
El siguiente paso es activar la API de CalDAV.Si deseas habilitar una API para tu proyecto, haz lo siguiente:
- Abre la Biblioteca de APIs en la Consola de APIs de Google. Si se te solicita, selecciona un proyecto o crea uno nuevo. La Biblioteca de APIs muestra todas las APIs disponibles, agrupadas por familia de productos y popularidad.
- Si la API que quieres habilitar no está en la lista, usa la búsqueda para encontrarla.
- Selecciona la API que deseas habilitar y, luego, haz clic en el botón Habilitar.
- Si se te solicita, habilita la facturación.
- Si se te solicita, acepta las Condiciones del Servicio de la API.
Para encontrar el ID de cliente y el secreto de cliente de tu proyecto, haz lo siguiente:
- Selecciona una credencial de OAuth 2.0 existente o abre la página Credenciales.
- Si aún no lo hiciste, crea las credenciales de OAuth 2.0 de tu proyecto. Para ello, haz clic en Crear credenciales > ID de cliente de OAuth y proporciona la información necesaria para crear las credenciales.
- Busca el ID de cliente en la sección IDs de cliente de OAuth 2.0. Para obtener más información, haz clic en el ID del cliente.
Conexión al servidor CalDAV de Google
Para usar la interfaz de CalDAV, un programa cliente se conecta inicialmente con el servidor de calendario en uno de los dos puntos de partida. En cualquier caso, la conexión debe realizarse a través de HTTPS y debe usar el esquema de autenticación OAuth 2.0. El servidor de CalDAV rechazará la autenticación de una solicitud, a menos que llegue a través de HTTPS con la autenticación de OAuth 2.0 de una Cuenta de Google.
Si intentas conectarte a través de HTTP o usar la autenticación básica, se generará un código de estado HTTP 401 Unauthorized
.
Si el programa cliente (como la app de Calendario de Apple) requiere una colección de principales como punto de partida, el URI al que se debe conectar es el siguiente:
https://apidata.googleusercontent.com/caldav/v2/calid/user
Aquí, calid
se debe reemplazar por el "ID del calendario" al que se accederá. Puedes encontrarlo en la interfaz web del Calendario de Google de la siguiente manera: en el menú desplegable junto al nombre del calendario, selecciona Configuración del calendario. En la página resultante, el ID del calendario se muestra en una sección etiquetada como Dirección del calendario. El ID del calendario principal de un usuario es el mismo que su dirección de correo electrónico.
Si un programa cliente (como Mozilla Sunbird) requiere una colección de calendarios como punto de partida, el URI al que se debe conectar es el siguiente:
https://apidata.googleusercontent.com/caldav/v2/calid/events
El extremo anterior https://www.google.com/calendar/dav está obsoleto y ya no es compatible. Úsalo bajo tu propia responsabilidad. Te recomendamos que migres al nuevo formato de endpoint que se describió anteriormente.
iCal® es una marca de Apple Inc.