/cron-notion-ics

*Python*API

24/06/2023

Image issue du calendrier Notion synchronisé avec Google Agenda

Ce projet est issu d’un besoin personnel. Je souhaitais pouvoir synchroniser mon calendrier Notion avec mon calendrier Google. Des solutions similaires existent déjà, mais sont payantes ou limitées par rapport à mon besoin. J’ai donc décidé de développer ma propre solution.

Voici le lien vers le projet

Le principe est simple : j’ai développé un script Python qui récupère les données de mon calendrier Notion via l’API, puis qui génère un fichier ICS. Ce fichier est ensuite envoyé sur un serveur web et est accessible publiquement. Il ne reste plus qu’à ajouter le lien du fichier ICS dans Google Agenda.

Partie du code en Python du script

J’ai utilisé Python pour ce projet, car c’est un langage que j’avais déjà utilisé et que je souhaitais approfondir.

Une grande partie du travail a consisté à comprendre le fonctionnement de l’API Notion. Il a également fallu comprendre le format ICS, comment le générer, et avec quelles données.

Fichier ICS généré

Ensuite, j’ai rédigé une documentation pour expliquer comment utiliser le script et comment l’installer sur un serveur web.

J’ai personnellement installé ce script sur un Raspberry Pi, mais il peut être installé sur n’importe quel serveur web. Le script s’exécute toutes les 5 minutes grâce à une tâche cron.

Un Raspberry Pi