Direct naar de inhoud

Cookie-instellingen

Kies per soort welke cookies je toestaat. Je kunt je keuze altijd wijzigen via Cookie-instellingen onderaan elke pagina. Privacyverklaring

Noodzakelijk

Altijd aan

Nodig om in te loggen, je winkelwagen te bewaren en je keuzes te onthouden. Deze staan altijd aan.

Welke cookies?
  • weboke_sessie, weboke_klant, weboke_remember: je sessie en ingelogd blijven
  • weboke_basket: je winkelwagen
  • wkBtwIncl: prijzen met of zonder btw tonen
  • wok_cookies: je cookiekeuze, 12 maanden

Meet welke advertentie tot een bezoek of bestelling leidt, zodat we niet betalen voor advertenties die niets doen.

Welke cookies?
  • Google Ads via Google Tag Manager (_gcl_au, _gcl_aw), tot 90 dagen
  • OpenAI Ads, advertenties in ChatGPT
  • wok_aff: via welke partner je bij ons kwam (affiliateprogramma), 60 dagen

4,6

Land en taal

Elk land heeft zijn eigen site, met prijzen en btw van dat land.

Bekijken

Module 5 · 5.1

Nederlands

CalDAV en CardDAV: hoe agenda en contacten synchroniseren

Module 5: Agenda en contacten · Leestijd: 10 minuten

Leerdoel: Na deze les kun je uitleggen hoe CalDAV en CardDAV je agenda en contacten tussen server en apparaten gelijk houden, waarom je ze pas merkt als je een app instelt, en welke gegevens je nodig hebt om een app te koppelen.

Kernbegrippen: CalDAV, CardDAV, WebDAV, synchroniseren, server-adres, .well-known/caldav, .well-known/carddav, principal, app-wachtwoord, Exchange ActiveSync, standaardagenda

Agenda en contacten wonen op een server

Bij Google en Microsoft merk je niet hoe je agenda op je telefoon komt. Je logt in met je account, en de agenda en contacten zijn er. Achter de schermen gebruiken ze daarvoor vaak hun eigen manier van synchroniseren: Microsoft gebruikt Exchange ActiveSync en eigen koppelingen, Google zijn eigen account-synchronisatie op Android.

Bij een Europese aanbieder gaat het bijna altijd via twee open standaarden:

  • CalDAV (RFC 4791) voor agenda's en takenlijsten;
  • CardDAV (RFC 6352) voor contactpersonen.

Beide bouwen voort op WebDAV, een uitbreiding van het gewone webverkeer (HTTPS) waarmee je bestanden op een server kunt lezen en schrijven. Een afspraak is voor CalDAV een klein bestand in iCalendar-formaat (les 5.2), een contactpersoon een klein bestand in vCard-formaat. De server bewaart die bestanden in een map per agenda of adresboek. Je telefoon, je laptop en de webagenda vragen elke paar minuten: "wat is er veranderd sinds de vorige keer?" en halen alleen de wijzigingen op.

iPhone  <--CalDAV/HTTPS-->  server: /calendars/anne/werk/  <--CalDAV-->  laptop (Thunderbird)
                                   ^
                                   |
                              webagenda in de browser

Het grote voordeel van een open standaard: je bent niet vast aan één app. De agenda-app van je iPhone, DAVx5 op Android, Thunderbird, de Agenda op de Mac en veel andere apps spreken CalDAV. Stap je later weer over naar een andere aanbieder die ook CalDAV heeft, dan stel je dezelfde apps opnieuw in.

Waarom je het niet ziet tot je een app instelt

Na het overzetten van je agenda (les 5.2 en 5.3) staat alles keurig in de webagenda van je nieuwe dienst. Je telefoon weet daar nog niets van. Er is geen app die vanzelf verschijnt: je moet op elk apparaat een account toevoegen. Daarvoor heb je drie dingen nodig:

GegevenVoorbeeld bij Bakkerij De Korrel
Het server-adreshttps://cloud.example.com of het volledige DAV-adres, zoals https://cloud.example.com/remote.php/dav
De gebruikersnaamanne
Een wachtwoordeen app-wachtwoord, zie hieronder

Het server-adres en .well-known

Elke dienst heeft een eigen pad waar CalDAV en CardDAV wonen. Bij Nextcloud is dat /remote.php/dav, bij andere servers iets anders. Om te voorkomen dat iedereen dat pad moet weten, is er een afspraak (RFC 6764): een app die alleen de domeinnaam krijgt, kijkt eerst op een vaste plek:

https://cloud.example.com/.well-known/caldav
https://cloud.example.com/.well-known/carddav

De server antwoordt daar met een doorverwijzing naar het echte pad. Werkt die doorverwijzing goed, dan hoef je in je iPhone alleen cloud.example.com in te vullen. Werkt hij niet, dan zegt de app "kan account niet verifiëren" en moet je het volledige adres invullen. Dezelfde RFC beschrijft ook SRV-records (_caldavs._tcp.example.com) waarmee een app vanaf je e-maildomein de server kan vinden. Niet elke app gebruikt die.

Daarna vraagt de app de server naar je principal: de vaste plek van jouw account op de server, met de lijst van jouw agenda's en adresboeken. Zo vindt de app vanzelf alle agenda's, ook die met je gedeeld zijn.

Waarom je een app-wachtwoord nodig hebt

De meeste Europese clouddiensten vragen bij het inloggen in de browser een tweede stap: een code per e-mail, een authenticator-app of een passkey. Een agenda-app op je telefoon kan die tweede stap niet invullen. Hij heeft alleen een veld voor gebruikersnaam en wachtwoord.

Daarom maak je voor zo'n app een app-wachtwoord: een lang, willekeurig wachtwoord dat alleen voor die ene app geldt. Je maakt het in de beveiligingsinstellingen van je cloud, geeft het een herkenbare naam ("Agenda iPhone Anne") en vult het in de app in.

Voordelen:

  • Je echte wachtwoord staat niet op je telefoon.
  • Raak je je telefoon kwijt, dan trek je alleen dat ene app-wachtwoord in; de rest blijft werken.
  • Verander je je gewone wachtwoord, dan blijven je apps werken.

Sommige apps kunnen ook inloggen via de browser: ze openen het inlogscherm van je cloud, jij doet daar de tweede stap, en de app krijgt zelf een app-wachtwoord. DAVx5 op Android kan dat met Nextcloud bijvoorbeeld.

De bekendste foutmelding bij agenda-apps is 401 Unauthorized. Bijna altijd betekent dat: je hebt je gewone wachtwoord gebruikt in plaats van een app-wachtwoord, of het app-wachtwoord is ingetrokken.

Exchange-agenda's en wat je verliest

Wie van Microsoft 365 komt, is gewend aan een paar dingen die met CalDAV anders of niet werken:

  • Vrij/bezet zien van collega's bij het plannen. Nextcloud en andere CalDAV-servers hebben een eigen vorm (beschikbaarheid binnen dezelfde server), maar die werkt niet tussen verschillende diensten en niet altijd in elke app.
  • Ruimtes en apparaten boeken (vergaderzaal, beamer). Sommige servers hebben resource-agenda's, andere niet.
  • Gedelegeerde toegang ("de secretaresse beheert de agenda van de directeur"). Bij CalDAV regel je dat met delen met bewerkrechten.

Zet dat op je lijst (module 3). Het is zelden een reden om niet over te stappen, maar collega's moeten het wel vooraf weten.

In de praktijk: zo ziet het eruit bij een aanbieder

In een WebOké Nextcloud vind je de adressen in de app Agenda, linksonder bij Agenda instellingen: de CalDAV URL en het Server adres voor iOS en macOS, elk met een kopieerknop. Het algemene adres is https://<jouw-adres>/remote.php/dav. Een app-wachtwoord maak je bij Instellingen, Beveiliging, Apparaten & sessies. Daar zie je later ook welk apparaat wanneer voor het laatst contact had, en trek je een app-wachtwoord in. Andere Nextcloud-aanbieders werken precies zo; bij andere Europese diensten (bijvoorbeeld mailbox.org, Posteo of een Open-Xchange-omgeving) staat het CalDAV-adres in de hulppagina's of de instellingen, en heten app-wachtwoorden soms "apparaatwachtwoord" of "applicatiewachtwoord".

Samenvatting

  • CalDAV (agenda, taken) en CardDAV (contacten) zijn open standaarden boven op WebDAV en HTTPS; elke wijziging is een klein bestand op de server.
  • Je moet op elk apparaat zelf een account toevoegen: server-adres, gebruikersnaam en een app-wachtwoord.
  • Via .well-known/caldav en .well-known/carddav vindt een app het echte pad vanaf alleen de domeinnaam; werkt dat niet, vul dan het volledige DAV-adres in.
  • Een app-wachtwoord is nodig omdat agenda-apps geen tweede inlogstap kunnen doen; een 401-melding betekent bijna altijd een verkeerd wachtwoord.
  • Exchange-functies als vrij/bezet tussen collega's, ruimtes boeken en delegatie werken anders; zet ze op je lijst.

Quiz

1. Welk protocol gebruik je om contactpersonen tussen server en telefoon gelijk te houden?



2. Waarvoor dient https://cloud.example.com/.well-known/caldav?



3. Anne stelt haar agenda in op haar iPhone met haar gewone Nextcloud-wachtwoord en krijgt "401 Unauthorized". Wat is de oplossing?



4. Wat is een voordeel van een apart app-wachtwoord per apparaat?



5. De bakkerij plant nu vergaderingen door in Outlook te zien wie er vrij is. Wat is een eerlijke opmerking bij de overstap naar een CalDAV-agenda?



Opdracht

Opdracht A5.1: Vindt een app jouw agenda? Vul het adres van je (nieuwe) cloud in, bijvoorbeeld cloud.example.com. Het programma kijkt of /.well-known/caldav en /.well-known/carddav goed doorverwijzen naar een DAV-pad, en of de server daar als DAV-server antwoordt. Zo weet je of je op een telefoon alleen de domeinnaam kunt invullen.

Opdracht A5.1: Vindt een app jouw agenda?

Vul het adres van je cloud in. Het programma doet wat een agenda-app doet: /.well-known/caldav en /.well-known/carddav opvragen, de doorverwijzing volgen en kijken of daar een DAV-server antwoordt. Er wordt niet ingelogd.



Wat je invult en wat we vinden, slaan we niet op. Je browser onthoudt je antwoorden en of je de opdracht hebt gehaald. Ben je aangemeld, dan bewaren we alleen dat je de opdracht (bijna) goed had in Mijn cursussen; daar kun je het ook verwijderen.

Verder lezen

De stappen in deze artikelen gelden voor de diensten van WebOké; bij andere aanbieders werkt het vergelijkbaar.

Even geduld…

Stel je domeinen in

Regel per domein de nameservers, de koppeling aan je hosting en wie de eigenaar wordt.

Je domeinen laden…