Skip to main content

Installation et configuration de vdirsyncer

🧰 Objectif

Synchroniser automatiquement un calendrier iCloud (CalDAV) vers un fichier .ics local, exploitable par le module calendar de MagicMirror.


đŸ§© Installation

✅ MĂ©thode recommandĂ©e (via apt)

sudo apt update
sudo apt install vdirsyncer -y

💡 Cela installe la version stable packagĂ©e pour Ubuntu (ex. 0.19.2).

Vérification :

vdirsyncer --version

Résultat attendu :

vdirsyncer, version 0.19.2

⚙ Emplacement des fichiers

Fichier de configuration :

~/.vdirsyncer/config

Dossier de statut :

Il sera automatiquement créé Ă  l’emplacement :

~/.vdirsyncer/status/

Fichiers .ics exportés :

Répertoire cible à créer pour MagicMirror :

~/MagicMirror/modules/calendars/

đŸ§Ÿ 3. Configuration ~/.vdirsyncer/config 

Voici une version corrigée et adaptée pour Ubuntu :

# vdirsyncer configuration for MagicMirror

[general]
status_path = "~/.vdirsyncer/status/"

# --- CALDAV Sync 1 ---
[pair iCloud_to_MagicMirror1]
a = Mirror1
b = iCloud1
collections = ["home"]
metadata = ["displayname", "color"]

[storage Mirror1]
type = singlefile
path = /home/thymon/MagicMirror/modules/calendars/%s.ics

[storage iCloud1]
type = caldav
url = https://caldav.icloud.com/
username = sebort@icloud.com
password = abcd-efgh-ijkl-mnop   # Mot de passe d'application iCloud
read_only = true
item_types = ["VEVENT"]

# --- CALDAV Sync 2 ---
[pair iCloud_to_MagicMirror2]
a = Mirror2
b = iCloud2
collections = ["145c2a93-c79a-4347-8045-86fca9c3d201"]
metadata = ["displayname", "color"]

[storage Mirror2]
type = singlefile
path = /home/thymon/MagicMirror/modules/calendars/%s.ics

[storage iCloud2]
type = caldav
url = https://caldav.icloud.com/
username = sebou@icloud.com
password = zzzz-yyyy-xxxx-wwww   # Mot de passe d'application iCloud
read_only = true
item_types = ["VEVENT"]

🔐 GĂ©nĂ©ration du mot de passe d’application iCloud

  1. Se connecter Ă  https://appleid.apple.com

  2. Section SĂ©curitĂ© → Mots de passe spĂ©cifiques d’application → GĂ©nĂ©rer un mot de passe


  3. Donner un nom (ex. vdirsyncer)

  4. Copier le mot de passe généré (ex. abcd-efgh-ijkl-mnop)

  5. Le coller dans la configuration (password = 
)

⚠ iCloud refuse les mots de passe standards pour CalDAV — ce mot de passe spĂ©cifique est obligatoire.


đŸ§Ș Test de dĂ©couverte

Découverte des calendriers disponibles :

vdirsyncer discover

Résultat attendu :

Discovering collections for pair iCloud_to_MagicMirror1
Found 1 collection
/home/thymon/MagicMirror/modules/calendars/home.ics

Si tu vois une erreur 401 Unauthorized, vĂ©rifie ton mot de passe d’application iCloud.


🔁 Synchronisation manuelle

Pour lancer une synchronisation :

vdirsyncer sync

Le ou les fichiers .ics seront créés dans :

~/MagicMirror/modules/calendars/

⏱ Synchronisation automatique avec systemd.timer

Créer le dossier systemd utilisateur :

mkdir -p ~/.config/systemd/user

Télécharger les unités :

curl -o ~/.config/systemd/user/vdirsyncer.service https://raw.githubusercontent.com/pimutils/vdirsyncer/master/contrib/vdirsyncer.service
curl -o ~/.config/systemd/user/vdirsyncer.timer https://raw.githubusercontent.com/pimutils/vdirsyncer/master/contrib/vdirsyncer.timer

Modifier la fréquence (facultatif) :

nano ~/.config/systemd/user/vdirsyncer.timer

Par défaut :

[Timer]
OnBootSec=5m
OnUnitActiveSec=15m

âžĄïž Modifier par exemple pour une synchro toutes les heures :

OnUnitActiveSec=1h

Activer et démarrer :

systemctl --user daemon-reload
systemctl --user enable --now vdirsyncer.timer

Vérifier :

systemctl --user status vdirsyncer.timer