CalDAV e CardDAV: come sincronizzare calendario e contatti
Modulo 5: Agenda e contatti · Tempo di lettura: 10 minuti
Obiettivo formativo: dopo questa lezione saprà spiegare come CalDAV e CardDAV mantengono allineati calendario e contatti tra server e dispositivi, perché se ne accorge solo quando configura un'app e quali dati Le servono per collegare un'app.
Concetti chiave: CalDAV, CardDAV, WebDAV, sincronizzazione, indirizzo del server, .well-known/caldav, .well-known/carddav, principal, password per l'app, Exchange ActiveSync, calendario predefinito
Calendario e contatti risiedono su un server
Con Google e Microsoft non si nota come il calendario arrivi sul telefono. Lei accede con il Suo account, e calendario e contatti sono già lì. Dietro le quinte, questi servizi usano spesso un proprio metodo di sincronizzazione: Microsoft usa Exchange ActiveSync e collegamenti proprietari, Google la propria sincronizzazione degli account su Android.
Con un fornitore europeo si passa quasi sempre per due standard aperti:
- CalDAV (RFC 4791) per calendari ed elenchi di attività;
- CardDAV (RFC 6352) per i contatti.
Entrambi si basano su WebDAV, un'estensione del normale traffico web (HTTPS) che permette di leggere e scrivere file su un server. Per CalDAV un appuntamento è un piccolo file in formato iCalendar (lezione 5.2), un contatto è un piccolo file in formato vCard. Il server conserva questi file in una cartella per ogni calendario o rubrica. Il Suo telefono, il Suo laptop e il calendario web chiedono ogni pochi minuti: "cosa è cambiato dall'ultima volta?" e scaricano solo le modifiche.
iPhone <--CalDAV/HTTPS--> server: /calendars/anne/werk/ <--CalDAV--> laptop (Thunderbird)
^
|
webagenda in de browserIl grande vantaggio di uno standard aperto: Lei non è vincolato a un'unica app. L'app Calendario dell'iPhone, DAVx5 su Android, Thunderbird, Calendario su Mac e molte altre app parlano CalDAV. Se in futuro passa a un altro fornitore che usa anch'esso CalDAV, potrà configurare di nuovo le stesse app.
Perché non se ne accorge finché non configura un'app
Dopo aver trasferito il Suo calendario (lezioni 5.2 e 5.3), tutto è ordinatamente a posto nel calendario web del nuovo servizio. Il Suo telefono ancora non ne sa nulla. Non esiste un'app che si aggiorna da sola: deve aggiungere un account su ogni dispositivo. Per farlo Le servono tre elementi:
| Dato | Esempio per la Bakkerij De Korrel |
|---|---|
| L'indirizzo del server | https://cloud.example.com oppure l'indirizzo DAV completo, come https://cloud.example.com/remote.php/dav |
| Il nome utente | anne |
| Una password | una password per l'app, vedere sotto |
L'indirizzo del server e .well-known
Ogni servizio ha un proprio percorso dove risiedono CalDAV e CardDAV. Su Nextcloud è /remote.php/dav, su altri server è diverso. Per evitare che tutti debbano conoscere quel percorso esiste una convenzione (RFC 6764): un'app a cui viene fornito solo il nome del dominio controlla prima un punto fisso:
https://cloud.example.com/.well-known/caldav
https://cloud.example.com/.well-known/carddavLì il server risponde con un reindirizzamento al percorso effettivo. Se il reindirizzamento funziona bene, nell'iPhone deve inserire solo cloud.example.com. Se non funziona, l'app segnala "impossibile verificare l'account" e deve inserire l'indirizzo completo. La stessa RFC descrive anche i record SRV (_caldavs._tcp.example.com) con cui un'app può trovare il server a partire dal Suo dominio di posta. Non tutte le app li usano.
Dopodiché l'app chiede al server il Suo principal: il punto fisso del Suo account sul server, con l'elenco dei Suoi calendari e delle Sue rubriche. Così l'app trova automaticamente tutti i calendari, anche quelli condivisi con Lei.
Perché serve una password per l'app
La maggior parte dei servizi cloud europei, quando si accede dal browser, richiede un secondo passaggio: un codice via email, un'app di autenticazione o una passkey. Un'app calendario sul telefono non può eseguire quel secondo passaggio. Ha solo un campo per nome utente e password.
Per questo, per un'app di questo tipo, crea una password per l'app: una password lunga e casuale valida solo per quella specifica app. La crea nelle impostazioni di sicurezza del Suo cloud, le assegna un nome riconoscibile ("Calendario iPhone Anne") e la inserisce nell'app.
Vantaggi:
- La Sua password vera non è salvata sul telefono.
- Se perde il telefono, revoca solo quella singola password per l'app; il resto continua a funzionare.
- Se cambia la Sua password normale, le app continuano a funzionare.
Alcune app possono anche accedere tramite il browser: aprono la schermata di accesso del Suo cloud, Lei esegue lì il secondo passaggio, e l'app riceve automaticamente una password per l'app. DAVx5 su Android può farlo, ad esempio, con Nextcloud.
Il messaggio di errore più noto nelle app calendario è 401 Unauthorized. Quasi sempre significa che è stata usata la password normale invece di una password per l'app, oppure che la password per l'app è stata revocata.
Calendari Exchange e cosa si perde
Chi proviene da Microsoft 365 è abituato ad alcune funzioni che con CalDAV funzionano in modo diverso o non funzionano:
- Vedere libero/occupato dei colleghi nella pianificazione. Nextcloud e altri server CalDAV hanno una propria forma (disponibilità all'interno dello stesso server), ma non funziona tra servizi diversi e non sempre in ogni app.
- Prenotare sale e dispositivi (sala riunioni, proiettore). Alcuni server hanno calendari di risorse, altri no.
- Accesso delegato ("la segretaria gestisce il calendario del direttore"). Con CalDAV questo si gestisce condividendo con diritti di modifica.
Lo aggiunga alla Sua lista (modulo 3). Raramente è un motivo per non passare, ma i colleghi devono saperlo in anticipo.
Nella pratica: come si presenta presso un fornitore
In un Nextcloud WebOké trova gli indirizzi nell'app Calendario, in basso a sinistra in Impostazioni Calendario: l'URL CalDAV e l'Indirizzo del server per iOS e macOS, ciascuno con un pulsante per copiare. L'indirizzo generale è https://<il-suo-indirizzo>/remote.php/dav. Una password per l'app si crea in Impostazioni, Sicurezza, Dispositivi e sessioni. Lì vedrà in seguito anche quale dispositivo ha avuto l'ultimo contatto e quando, e potrà revocare una password per l'app. Altri fornitori Nextcloud funzionano esattamente allo stesso modo; presso altri servizi europei (ad esempio mailbox.org, Posteo o un ambiente Open-Xchange) l'indirizzo CalDAV si trova nelle pagine di aiuto o nelle impostazioni, e le password per l'app sono talvolta chiamate "password del dispositivo" o "password dell'applicazione".
Riepilogo
- CalDAV (calendario, attività) e CardDAV (contatti) sono standard aperti costruiti sopra WebDAV e HTTPS; ogni modifica è un piccolo file sul server.
- Deve aggiungere un account su ogni dispositivo: indirizzo del server, nome utente e una password per l'app.
- Tramite
.well-known/caldave.well-known/carddavun'app trova il percorso effettivo partendo solo dal nome del dominio; se non funziona, inserisca l'indirizzo DAV completo. - Una password per l'app è necessaria perché le app calendario non possono eseguire un secondo passaggio di accesso; un messaggio 401 indica quasi sempre una password sbagliata.
- Funzioni di Exchange come libero/occupato tra colleghi, prenotazione di sale e delega funzionano in modo diverso; le aggiunga alla Sua lista.
Quiz
Esercizio
Esercizio A5.1: Un'app trova il Suo calendario? Inserisca l'indirizzo del Suo (nuovo) cloud, ad esempio cloud.example.com. Il programma verifica se /.well-known/caldav e /.well-known/carddav reindirizzano correttamente a un percorso DAV, e se il server risponde lì come server DAV. Così saprà se su un telefono può inserire solo il nome del dominio.
Per approfondire
I passaggi descritti in questi articoli valgono per i servizi di WebOké; presso altri fornitori funziona in modo simile.
- Guida a Nextcloud 3.5: Password di applicazione: quando e come
- Guida a Nextcloud 9.9: Calendario e contatti su iPhone e iPad
- Guida a Nextcloud 9.10: Calendario e contatti su Android con DAVx5
- Guida a Nextcloud 15.6: Calendario o contatti non arrivano sul telefono
- Creare una password per le app (necessaria per collegare app e dispositivi)
- RFC 4791 (CalDAV), RFC 6352 (CardDAV), RFC 4918 (WebDAV), RFC 6764 (.well-known e SRV per CalDAV e CardDAV)
