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 mediante el protocolo de CalDAV.
Especificaciones
Para cada una de las especificaciones relevantes, la asistencia de CalDAV de Google es la siguiente:
- rfc4918: Extensiones de HTTP para la creación y el control de versiones distribuidos en la Web (WebDAV)
- Admite los métodos HTTP
GET
,PUT
,HEAD
,DELETE
,POST
,OPTIONS
,PROPFIND
yPROPPATCH
. - No es compatible con los métodos HTTP
LOCK
,UNLOCK
,COPY
,MOVE
oMKCOL
, ni con el encabezadoIf*
(exceptoIf-Match
). - No es compatible con propiedades arbitrarias (definidas por el usuario) de WebDAV.
- No es compatible con el control de acceso WebDAV (rfc3744).
- Admite los métodos HTTP
- rfc4791: Calendario de extensiones para WebDAV (CalDAV)
- Admite el método HTTP
REPORT
. Se implementan todos los informes, excepto la consulta de disponibilidad. - No es compatible con 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 tienen un formato según la especificación de iCalendar.
- Actualmente no admite datos de
VTODO
niVJOURNAL
. - No es compatible con la extensión de Apple iCal® para permitir las propiedades de las URL definidas por el usuario.
- rfc6578: Sincronización de colecciones para WebDAV
- Las aplicaciones cliente deben cambiar a este modo de operación después de la sincronización inicial.
- rfc6638: Programación de extensiones en CalDAV
- Admite una bandeja de entrada trivial, que siempre está vacía.
- Las invitaciones que recibas se entregan automáticamente a tu colección "events" (eventos) en lugar de colocarse en "Recibidos".
- No admite búsquedas de disponibilidad.
- caldav-ctag-02: Etiqueta de entidad de recopilación de calendario (CTag) en CalDAV
- El calendario
ctag
es como un recursoetag
; cambia cuando se modifica cualquier elemento del calendario. Esto permite que la aplicación cliente determine rápidamente que no necesita sincronizar ningún evento modificado.
- El calendario
- calendar-proxy: Funcionalidad de usuario del calendario de Calendario en CalDAV
- Para mejorar el rendimiento de la sincronización de calendarios desde dispositivos iOS, que no admiten la delegación, el uso de las propiedades
calendar-proxy-read-for
ocalendar-proxy-write-for
con un usuario-agente de iOS fallará.
- Para mejorar el rendimiento de la sincronización de calendarios desde dispositivos iOS, que no admiten la delegación, el uso de las propiedades
Aún no proporcionamos una implementación completa de todas las especificaciones relevantes. Sin embargo, para muchos clientes, como Apple iCal, el protocolo CalDAV debe interoperar de forma correcta.
Nota: Para la seguridad de la cuenta y evitar abusos, Google puede establecer cookies en las aplicaciones cliente que accedan a 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 poder enviar solicitudes a la API de CalDAV, debes registrar tu cliente en la Consola de API de Google mediante la creación de 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 API en la Consola de API de Google. Si se te solicita, selecciona un proyecto o crea uno nuevo. En la biblioteca de API, se enumeran todas las API 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 ID de cliente OAuth 2.0. Para obtener más información, haz clic en el ID de cliente.
Conéctate 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 si no llega a través de HTTPS con la autenticación 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 Apple iCal) requiere una colección principal como punto de partida, el URI al que te conectarás es el siguiente:
https://apidata.googleusercontent.com/caldav/v2/calid/user
En este comando, calid
se debe reemplazar por el "ID del calendario" al que se accede. Puedes encontrar esta información a través de la interfaz web de Calendario de Google de la siguiente manera: en el menú desplegable que aparece junto al nombre del calendario, selecciona Configuración del calendario. En la página resultante, el ID de 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 la dirección de correo electrónico de ese usuario.
Si un programa cliente (como Mozilla Sunbird) requiere una colección de calendario como punto de partida, el URI al que se conectará será el siguiente:
https://apidata.googleusercontent.com/caldav/v2/calid/events
El extremo anterior https://www.google.com/calendar/dav dejó de estar disponible y ya no es compatible. Úsalo bajo tu propia responsabilidad. Recomendamos que realices la transición al nuevo formato de extremo descrito anteriormente.
iCal es una marca de Apple Inc.