Google Calendar vers Workflowy
July 26, 2024
La formation du Cerveau Numérique de Julien Gueniat et le livre The Workflowy Timeline de Frank Degenaar proposent un système d'organisation où les évènements du calendrier sont dupliqués en tant que points dans Workflowy.
J'ai adopté cette méthode depuis des années. Une fois l'évènement présent en tant que point, on accède à toute la flexibilité de Workflowy. On peut ajouter des informations dans le point, le déplacer, ajouter des images, des fichiers et créer des liens vers d'autres points. Cela se relève utile pour préparer l'évènement, créer des notes, des tâches, lier des évènements entre eux. Les possibilités sont infinies.
Mais il est fastidieux de dupliquer manuellement les évènements du calendrier en points dans Workflowy. Il est aussi facile d'y glisser des erreurs de saisie. Workflowy a annoncé en janvier 2024 l'intégration avec Zapier et permet d'automatiser ce processus. Pas moins de 29 applications de calendrier sont supportées.
Selon mon expérience, l'intégration Workflowy dans Zapier a un inconvénient majeur : les évènements du calendrier ne sont pas rapidement dupliqués dans Workflowy. Ce délai est variable, d'après mes tests, il est fréquent qu'il s'élève à plus de 2 minutes.
Ce projet permet de réduire ce délai. Il connecte mon calendrier, Google Calendar, et Workflowy par un programme auto-hébergé sur un Raspberry Pi.
Pour créer un point dans Workflowy par programme, j'ai retenu cette API non-officielle car il n'existe pas d'API officielle. L'API de Google Calendar est quant à elle disponible depuis longtemps.
J'ai décidé d'écrire la majorité du code en Java. L'API pour Workflowy est fournie via un module node. Un processus node est donc lancé par le programme Java. La communication entre les deux processus est réalisée en http.
L'API pour Workflowy ne supporte pas l'authentification à deux facteurs, que j'utilise sur mon compte. J'ai contourné cette limitation en créant un deuxième compte Workflowy, gratuit, avec une authentification par mot de passe, qui reçoit les points créés à partir des évènements de Google Calendar. Le point parent est partagé avec mon compte principal. Bien que cela génère quelques restrictions, cette technique maintient une sécurité élevée de mon compte principal.
J'héberge ce projet sur un Raspberry Pi. J'ai mis en place un web_hook
pour être notifié par Google Calendar
d'une modification de mon calendrier. Ce web_hook
doit donc passer l'information au Raspberry Pi. J'ai choisi d'utiliser
un broker MQTT pour ce rôle. Cela implique une certaine complexité d'infrastructure.
On peut voir que je coupe et colle l'évènement du point partagé du compte gratuit vers mon compte principal, ce qui génère un message d'information de la part de Workflowy. Bien que moins pratique qu'un déplacement par glisser-déposer, cela me convient.
L'intégration de Workflowy dans Zapier ne permet que de créer un point dans Workflowy. Ce projet supporte la création
et la modification d'un point, tant qu'il n'a pas été supprimé, et cela est exploité. Si l'évènement est modifié,
le point dans Workflowy sera modifié également. Si l'évènement est supprimé, le point sera aussi modifié en préfixant
le titre avec [CANCELLED]
.
Le code source du projet : phdezann/gcalendar-to-workflowy [GitHub]