Synchronisation sans doublon entre deux agendas Microsoft 365 et un agenda Google.
Je travaille avec deux agendas professionnels hébergés sur des organisations Microsoft 365 distinctes, plus un agenda Google personnel dédié à mon activité professionnelle. Trois vues séparées de la même journée, qu'il fallait tenir à jour à la main.
SyncCal est le script que j'exécute pour que ces trois agendas reflètent la même disponibilité. Chaque événement créé dans l'un est recopié dans les autres, et les copies suivent les modifications et les suppressions de leur original.
Chaque copie porte un marqueur invisible désignant son événement d'origine, ainsi qu'une empreinte de son contenu. À chaque exécution, le script relit les trois agendas, reconstruit l'état à partir de ces marqueurs et en déduit les créations, modifications et suppressions nécessaires.
Il n'existe aucune base de données : toute la mémoire de la synchronisation vit dans les agendas eux-mêmes. Relancer le script sans rien avoir changé ne produit donc aucune action — c'est cette propriété qui garantit l'absence de doublon.
| Agenda | Accès |
|---|---|
| Microsoft 365 n°1 | Outlook classique installé en local, piloté en COM |
| Microsoft 365 n°2 | Flux ICS publié, en lecture seule |
| Google Agenda | API Google Calendar v3, via OAuth 2.0 |
Usage strictement personnel. SyncCal s'exécute sur mon poste de travail, avec mes propres accès, sur mes propres agendas. Il n'est pas proposé comme service, n'a pas d'utilisateurs, et n'envoie aucune donnée vers un serveur.
git clone https://github.com/Jerom138/synccal.git
cd synccal
pip install -r requirements.txt
copy config.example.yaml config.yaml
La marche à suivre complète — création des identifiants Google, configuration des agendas Outlook, exécution planifiée — se trouve dans le README du dépôt.