Installation et configuration de vdirsyncer

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’applicationGé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

📋 Points importants

Élément Ancien tuto Raspberry Adaptation Ubuntu
Utilisateur pi thymon
Chemins /home/pi/... /home/thymon/...
Guillemets dans la config "Mirror" Mirror (sans guillemets)
Dates Python (datetime.now()) Autorisées (ancien vdirsyncer) ❌ Non supportées
systemd unit /etc/systemd/user ~/.config/systemd/user
Commande sudo vdirsyncer ❌ Toujours sans sudo
Mot de passe iCloud Standard 🔐 Mot de passe d’application

Revision #5
Created 2025-11-21 14:18:07 UTC by thymon
Updated 2025-11-23 23:35:46 UTC by thymon