SyncCal — dernière mise à jour : 19 octobre 2026
En une phrase : SyncCal est un script personnel qui s'exécute sur mon propre ordinateur, ne possède aucun serveur, ne collecte rien, et se contente de recopier mes événements d'agenda entre mes trois agendas.
SyncCal est un projet personnel développé et utilisé par son seul auteur. Il n'est pas proposé comme service, ne dispose d'aucune base d'utilisateurs, et n'est pas destiné à être exécuté par des tiers pour leur compte. Toute personne qui en récupérerait le code l'exécuterait sur sa propre machine, avec ses propres identifiants, et deviendrait seule responsable de ses données.
SyncCal lit et écrit uniquement des événements d'agenda. Pour chaque événement :
La liste des participants n'est jamais recopiée, précisément pour qu'aucune invitation ne puisse être envoyée à des tiers. Les pièces jointes ne sont pas traitées.
SyncCal ne lit aucun courriel, aucun contact, aucun fichier, et n'accède à aucune autre donnée des comptes concernés.
| Habilitation | Pourquoi |
|---|---|
https://www.googleapis.com/auth/calendar |
Lire les événements de l'agenda Google concerné pour les diffuser vers les agendas Microsoft 365, et y créer, modifier ou supprimer les copies des événements venant de ces derniers. La synchronisation étant bidirectionnelle, un accès en lecture seule ne suffirait pas. |
Seul le calendrier désigné dans la configuration est synchronisé. Les autres calendriers du compte Google ne sont ni lus ni modifiés, hormis la lecture de leur nom lors de la recherche initiale du calendrier cible.
Toutes les données restent sur l'ordinateur de l'utilisateur. SyncCal n'a pas de serveur, pas d'hébergement, pas de service distant. Rien n'est transmis à l'auteur ni à aucun tiers.
| Élément | Emplacement |
|---|---|
| Jeton d'accès Google (OAuth 2.0) | Fichier local secrets/token_google.json |
| Identifiants d'application Google | Fichier local dans secrets/ |
| Journaux d'exécution | Dossier local logs/ |
| Événements d'agenda | Dans les agendas eux-mêmes, chez Microsoft et Google |
Ces dossiers sont exclus du dépôt public : ni les jetons, ni les journaux, ni aucune donnée d'agenda ne sont publiés.
Uniquement entre les trois agendas de l'utilisateur, tous lui appartenant : deux agendas professionnels Microsoft 365 et un agenda Google. Un événement créé dans l'un est recopié dans les deux autres, dans la limite des droits disponibles — un agenda accessible en lecture seule alimente les autres sans jamais rien recevoir.
Aucune donnée n'est transmise à un service tiers, à un intermédiaire, à un outil d'analyse ou de télémétrie. SyncCal ne communique qu'avec les API de Microsoft et de Google.
L'usage que SyncCal fait des informations reçues des API Google respecte la Google API Services User Data Policy, y compris ses exigences d'usage limité (Limited Use). Concrètement : les données d'agenda servent exclusivement à la synchronisation décrite ici, ne sont ni vendues, ni transférées, ni utilisées à des fins publicitaires, et ne sont lues par aucun humain en dehors de l'utilisateur lui-même.
python sync.py --purge --apply retire toutes les copies produites par
l'outil, sans toucher aux événements d'origine.
secrets/token_google.json révoque l'accès local.
Le jeton d'accès est stocké en clair dans un fichier local, protégé par les droits du compte Windows de l'utilisateur. Cette protection vaut donc celle de la session Windows. Toute personne ayant accès à cette session a accès aux agendas, comme elle aurait accès au client Outlook installé sur la même machine.
Ce document peut être modifié si le fonctionnement de l'outil change. La date de dernière mise à jour figure en tête de page, et l'historique complet des modifications est consultable dans le dépôt.
Pour toute question, ouvrir une issue sur le dépôt GitHub.