--- categories: sysadmin title: Howto Vdirsyncer ... * Documentation: Vdirsyncer est un outil de synchronisation de calendriers et de carnets d'adresses avec une gestion de droits et de priorités en cas de conflits. ## Déploiement Son installation est simple avec son compte utilisateur : ~~~ pip install --user vdirsyncer ~~~ L'emplacement de son fichier de configuration : ~~~ mkdir -vp ~/.config/vdirsyncer/ cat ~/.config/vdirsyncer/config ~~~ ## Configuration ### Synchronisation unidirectionnelle Admettons que l'on veuille la synchro d'un calendrier et d'un carnet d'adresse précis d'un serveur zimbra vers un serveur nextcloud. ~~~ [general] # Emplacement où se trouve la base des métadonnées status_path = "~/.local/state/vdirsyncer/status/" #### Calendar [pair pull2push_calendar] a = "remote_zimbra" b = "remote_nextcloud" collections = null [storage remote_zimbra] type = "caldav" # On précise le calendrier : url = "https://zimbra.evolix.net/dav/$USER/Calendrier" username = " " password = " " # Pas d'écriture sur cette instance : read_only = true [storage remote_nextcloud] type = "caldav" # On précise le calendrier : url = "https://nextcloud-demo.evolix.org/remote.php/dav/calendars/$USER/Perso/" username = " " password = " " #### Contacts [pair pull2push_contacts] a = "remote_zimbra_contacts" b = "remote_nextcloud_contacts" collections = null [storage remote_zimbra_contacts] type = "carddav" # On précise le nom du carnet url = "https://zimbra.evolix.net/dav/$USER/Contacts/" username = " " password = " " # Pas d'écriture sur cette instance : read_only = true [storage remote_nextcloud_contacts] type = "carddav" # On précise le nom du carnet url = "https://nextcloud-demo.evolix.org/remote.php/dav/addressbooks/users/$USER/Contacts/" username = " " password = " " ~~~ A chaque modification de la configuration, il faut faire un discover : ~~~ vdirsyncer discover ~~~ Ainsi, on voit si les sélections sont correctes. ### Synchronisation Sans disposer de daemon pour se lancer continuellement en arrière plan, la synchronisation se fait manuellement avec : ~~~ vdirsyncer sync ~~~ L'usage d'une tâche cron est donc conseillé : ~~~ 10 1 * * * vdirsyncer sync ~~~