Calendrier (CalDAV)

La stratégie Calendrier transmet un compte CalDAV à l’application Calendrier native d’iOS et d’iPadOS via un profil de configuration, ce qui évite toute configuration manuelle par l’utilisateur final. Sur les versions récentes d’iOS, les chemins de calendrier associés au compte sont déterminés automatiquement selon la RFC 6764, via une redirection sous /.well-known/caldav. Une redirection /.well-known/caldav correctement configurée côté serveur est donc obligatoire sur les versions récentes d’iOS ; la seule indication d’une URL de principal n’y suffit plus.


Options de configuration

Les champs suivants sont disponibles pour le compte CalDAV. Ils correspondent aux clés de la charge utile CalDAV d’Apple (com.apple.caldav.account).

Paramètres du compte

  • Description du compte — nom affiché du compte sur l’appareil.
  • Hôte — adresse du serveur sans schéma et sans chemin (par exemple calendrier.example.com).
  • Port — en règle générale 443.
  • Utiliser SSL — obligatoire lorsque le serveur est accessible via HTTPS. Sans SSL actif, une connexion non chiffrée est tentée sur le port 443, ce qui échoue.
  • Nom d’utilisateur — saisi manuellement ou via les espaces réservés ${user.name} ou ${user.email}.
  • Mot de passe — s’il n’est pas renseigné, il est demandé sur l’appareil lors de l’installation du profil.
  • URL de principal (facultatif) — le chemin vers le principal de l’utilisateur (par exemple /remote.php/dav/principals/users/${user.name}/).

Détection automatique via .well-known

Les versions récentes d’iOS configurent les comptes CalDAV selon la RFC 6764. Le déroulement est le suivant :

  1. Requête PROPFIND /.well-known/caldav vers le serveur indiqué sous Hôte.
  2. Le serveur répond par une redirection (301) vers son point de terminaison DAV (/remote.php/dav pour ownCloud/Nextcloud).
  3. Le point de terminaison DAV permet de déterminer le current-user-principal et, à partir de là, l’espace calendrier de l’utilisateur.

La fiabilité de la configuration dépend donc entièrement d’une redirection /.well-known correcte. Sur les versions récentes d’iOS, la détection automatique ne peut plus être contournée par l’indication d’une URL de principal — sans redirection /.well-known fonctionnelle, la configuration échoue, même si une URL de principal est renseignée.


Configuration de la redirection côté serveur

/.well-known/caldav et /.well-known/carddav doivent rediriger par 301 vers le point de terminaison DAV du serveur. L’adresse cible doit impérativement commencer par https:// et ne doit pas contenir de port interne.

Pour nginx :

location = /.well-known/caldav  { return 301 https://$host/remote.php/dav; }
location = /.well-known/carddav { return 301 https://$host/remote.php/dav; }

Pour Apache (dans le vHost) :

Redirect 301 /.well-known/caldav  https://calendrier.example.com/remote.php/dav
Redirect 301 /.well-known/carddav https://calendrier.example.com/remote.php/dav

Vérification

La redirection peut être vérifiée avec curl :

curl -sI https://calendrier.example.com/.well-known/caldav

La réponse doit contenir une redirection avec un en-tête location correct :

HTTP/2 301
location: https://calendrier.example.com/remote.php/dav

L’en-tête location doit commencer par https:// et ne doit pas contenir de port interne (par exemple :8080).


Résolution des problèmes

SymptômeCauseSolution
La configuration échoue uniquement sur les versions récentes d’iOS ; les anciens appareils continuent de fonctionnerLa redirection pointe vers http:// (rétrogradation) ; les anciennes versions d’iOS le toléraientCorriger la redirection vers https://
Le 301 pointe vers un port interne (par exemple :8080)Reverse proxy/terminaison TLS, le serveur web ne connaît pas son adresse publiqueDéfinir la redirection avec l’adresse https:// complète sur le proxy ou le serveur web
405 Method Not Allowed sur des chemins tels que / ou /principals/La détection automatique n’aboutit pas et teste des chemins par défaut qui n’existent pas sur le serveurConfigurer correctement la redirection /.well-known (obligatoire sur les versions récentes d’iOS)
Le chemin déterminé est manifestement incorrectURL de principal renseignée comme URL complète au lieu d’un chemin simple, ou Utiliser SSL non activéIndiquer l’URL de principal sous forme de chemin simple et activer Utiliser SSL

Délimitation du problème sur l’appareil

Pour délimiter le problème, un compte CalDAV peut être configuré à titre de test directement sur l’appareil sous RéglagesCalendrierComptes. Si le compte configuré manuellement se connecte alors que le compte distribué par profil échoue, la cause se situe dans la détection automatique (/.well-known) ou dans l’URL de principal distribuée via le profil — et non dans le serveur lui-même.


Utilisation sous macOS

La configuration CalDAV et le prérequis /.well-known côté serveur s’appliquent de manière identique à macOS :

Top