Guida per gli sviluppatori dell'API CalDAV

CalDAV è un'estensione di WebDAV che fornisce ai client uno standard per accedere alle informazioni del calendario su un server remoto.

Google fornisce un'interfaccia CalDAV che puoi utilizzare per visualizzare e gestire i calendari utilizzando il protocollo CalDAV.

Specifiche

Per ciascuna delle specifiche pertinenti, il supporto CalDAV di Google è il seguente:

  • rfc4918: HTTP Extensions for Web Distributed Authoring and Versioning (WebDAV)
    • Supporta i metodi HTTP GET, PUT, HEAD, DELETE, POST, OPTIONS, PROPFIND e PROPPATCH.
    • Non supporta i metodi HTTP LOCK, UNLOCK, COPY, MOVE o MKCOL né l'intestazione If* (tranne If-Match).
    • Non supporta proprietà WebDAV arbitrarie (definite dall'utente).
    • Non supporta il controllo dell'accesso WebDAV (rfc3744).
  • rfc4791: Estensioni calendario per WebDAV (CalDAV)
    • Supporta il metodo HTTP REPORT. Vengono implementati tutti i report, tranne la query sulla disponibilità.
    • Non supporta il metodo HTTP MKCALENDAR.
    • Non supporta l'azione AUDIO.
  • rfc5545: iCalendar
    • I dati esposti nell'interfaccia CalDAV sono formattati in base alla specifica iCalendar.
    • Attualmente non supporta i dati relativi a VTODO o VJOURNAL.
    • Non supporta l'estensione iCal® di Apple per consentire proprietà URL impostabili dall'utente.
  • rfc6578: Sincronizzazione delle raccolte per WebDAV
    • Le applicazioni client devono passare a questa modalità operativa dopo la sincronizzazione iniziale.
  • rfc6638: Pianificazione delle estensioni a CalDAV
    • Supporta una "posta in arrivo" banale, sempre vuota.
    • Gli inviti che ricevi vengono inviati automaticamente alla tua raccolta "Eventi" e non nella tua "Posta in arrivo".
    • Non supporta la ricerca di informazioni sulla disponibilità.
  • caldav-ctag-02: Tag entità raccolta calendario (CTag) in CalDAV
    • Il calendario ctag è come una risorsa etag e cambia ogni volta che vengono apportate modifiche al calendario. Ciò consente all'applicazione client di determinare rapidamente che non è necessario sincronizzare gli eventi modificati.
  • calendar-proxy: funzionalità di proxy utente di Calendar in CalDAV
    • Per migliorare le prestazioni della sincronizzazione del calendario dai dispositivi iOS, che non supportano la delega, l'utilizzo delle proprietà calendar-proxy-read-for o calendar-proxy-write-for con uno user agent per iOS non riuscirà.

Non abbiamo ancora fornito un'implementazione completa di tutte le specifiche pertinenti. Tuttavia, per molti client come l'app Calendario di Apple, il protocollo CalDAV dovrebbe interoperare correttamente.

Nota: per la sicurezza degli account e per impedire abusi, Google potrebbe impostare cookie nelle applicazioni client che accedono ai dati tramite CalDAV.

Creazione dell'ID client in corso...

Per utilizzare l'API CalDAV devi disporre di un Account Google. Se disponi già di un account utilizzabile, non devi eseguire altre operazioni.

Prima di poter inviare richieste all'API CalDAV, devi registrare il tuo client nella console API di Google creando un progetto.

Vai alla console dell'API di Google. Fai clic su Crea progetto, inserisci un nome e fai clic su Crea.

Il passaggio successivo consiste nell'attivazione dell'API CalDAV.

Per abilitare un'API per il tuo progetto:

  1. Apri la libreria API nella console API di Google. Se richiesto, seleziona un progetto o creane uno nuovo. La libreria API elenca tutte le API disponibili, raggruppate per famiglia di prodotti e popolarità.
  2. Se l'API che vuoi abilitare non è visibile nell'elenco, utilizza la ricerca per trovarla.
  3. Seleziona l'API da abilitare, quindi fai clic sul pulsante Abilita.
  4. Se richiesto, abilita la fatturazione.
  5. Se richiesto, accetta i Termini di servizio dell'API.
Per eseguire le richieste API CalDAV, avrai bisogno di ID client e client secret.

Per trovare l'ID client e il client secret del progetto:

  1. Seleziona una credenziale OAuth 2.0 esistente o apri la pagina Credenziali.
  2. Se non l'hai ancora fatto, crea le credenziali OAuth 2.0 del tuo progetto facendo clic su Crea credenziali > ID client OAuth e fornendo le informazioni necessarie per creare le credenziali.
  3. Cerca l'ID client nella sezione ID client OAuth 2.0. Per maggiori dettagli, fai clic sull'ID client.

Connessione al server CalDAV di Google

Per utilizzare l'interfaccia CalDAV, un programma client si connette inizialmente con il server di calendario in uno dei due punti di partenza. In entrambi i casi, la connessione deve essere effettuata tramite HTTPS e deve utilizzare lo schema di autenticazione OAuth 2.0. Il server CalDAV si rifiuta di autenticare una richiesta, a meno che non arrivi tramite HTTPS con autenticazione OAuth 2.0 di un Account Google. Se tenti di connetterti tramite HTTP o di utilizzare l'autenticazione di base, viene restituito un codice di stato HTTP 401 Unauthorized.

Se il programma client (come l'app Calendario di Apple) richiede una raccolta entità come punto iniziale, l'URI a cui connettersi è:

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

Dove calid deve essere sostituito dall'"ID calendario" del calendario a cui si accede. Puoi trovarlo nell'interfaccia web di Google Calendar nel seguente modo: nel menu a discesa accanto al nome del calendario, seleziona Impostazioni calendario. Nella pagina visualizzata, l'ID calendario viene visualizzato in una sezione denominata Calendar Address. L'ID calendario del calendario principale di un utente corrisponde all'indirizzo email dell'utente.

Se un programma client (come Mozilla Sunbird) richiede una raccolta del calendario come punto iniziale, l'URI a cui connettersi è:

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

L'endpoint precedente https://www.google.com/calendar/dav è obsoleto e non è più supportato; utilizzalo a tuo rischio. Ti consigliamo di passare al nuovo formato di endpoint descritto sopra.

iCal® è un marchio di Apple Inc.