🔧 Problématique : J’utilise plusieurs calendriers (Apple Calendar, Google Agenda, Notion, emploi du temps des cours, etc.), mais ils ne sont pas synchronisés entre eux. Je voulais centraliser tous ces événements dans un seul fichier ICS, afin de le connecter à Calendly. L’idée était d’éviter de prendre un abonnement “Entreprise” juste pour un usage personnel sur cette plateforme.

💡 Solution : J’ai donc créé un script Python qui télécharge et fusionne plusieurs calendriers ICS en un seul. Le défi principal était d’héberger ce script sur un cloud gratuit, tout en gardant une bonne réactivité : dès qu’un rendez-vous est ajouté ou supprimé, le fichier ICS doit être mis à jour rapidement, sinon cela peut causer des conflits ou des erreurs de planning.

☁️ Hébergement : J’ai opté pour Google Cloud Run qui offre une solution gratuite tant qu’on ne dépasse pas certaines limites de consommation. Pour mon usage perso, c’est plus adapté qu’AWS, notamment parce que mon script n’a pas besoin d’interactions complexes ou de ressources importantes.

🧰 Tech utilisé : requests : pour faire des requêtes HTTP et télécharger les fichiers .ics.icalendar : pour parser et manipuler les fichiers ICS.flask : pour créer une mini API web qui renvoie le calendrier fusionné.os : pour accéder aux variables d’environnement (utile pour configurer le port sur le cloud).

⚙️ Fonctionnement du script : Ce script fait tourner un petit serveur web qui :Télécharge plusieurs calendriers ICS depuis des URLs. Fusionne leurs événements sans doublons (grâce à l’UID de chaque événement). Renvoie le calendrier fusionné au format .ics quand on accède à la racine du site (/).