Recevoir un résumé de ses RDV sur Telegram avec n8n et Google Calendar

Retour d'expérience : automatiser l'envoi d'un résumé de ses événements Google Calendar sur Telegram (et par mail) avec n8n, sans coder de CRM ni LLM.
- Une conversation (une amie ayant failli rater un RDV Calendly) m'a donné l'idée : recevoir un résumé de son agenda sans avoir à l'ouvrir.
- Un pipeline n8n envoie périodiquement les événements Google Calendar sur Telegram (et par mail), sans LLM.
- Déclencheur Schedule Trigger en cron, ici lundi et jeudi à 9 h (0 9 * * 1,4).
- Un format JSON « universel » découple les canaux (Telegram / mail), et le node Merge permet de gérer plusieurs calendriers en un seul message.
- Idée clé : faire venir l'information à soi. C'est une assistance, pas un miracle, encore faut-il un agenda bien rempli.
Ce nouvel article fait suite à celui qui montre comment j'ai automatisé la transcription de mes compte rendus. J'y explique comment j'ai utilisé Telegram pour déclencher une automatisation. Nous allons voir ici comment faire l'inverse.
Cet article explique comment j'ai connecté n8n, Google Calendar et Telegram pour recevoir périodiquement un résumé des événements à venir.
Pourquoi automatiser le résumé de son agenda
Je discutais avec une amie qui travaille à son compte. Elle a mis à disposition un Calendly afin que ses clients puissent prendre rendez-vous avec elle par visio. Elle m'a expliqué qu'elle avait failli manquer son premier rendez-vous de la journée parce qu'elle n'avait pas encore ouvert son agenda. Un client s'était enregistré tard la veille !
Ne plus jamais rater un rendez-vous client
Je me suis alors dit que ça serait top si elle avait reçu un message le matin avec la liste de ses engagements de la journée. Un peu comme dans les films où le directeur arrive au bureau et que sa secrétaire le suit partout en lui énumérant tous ses rendez-vous. Sauf qu'on est en 2026 et qu'à l'ère de l'IA, elle pourrait recevoir ce résumé par message ou par mail.
Telegram comme assistant personnel
Cette discussion a lieu alors que j'étais en train de finir l'automatisation pour transcrire mes comptes rendus, dans laquelle le déclencheur est un message envoyé via Telegram. Je me suis alors demandé s'il était possible d'inverser le processus. Plutôt que d'envoyer un message pour donner un ordre, ici l'idée serait de s'en servir pour cette fois recevoir de l'information sans qu'on ait besoin de la demander, par exemple tous les matins.
Et si Telegram pouvait faire office d'assistant ?
Un besoin réel : anticiper ses échéances (TVA, abonnements...)
Cette conversation a fait écho à ma situation personnelle. En tant que chef d'entreprise, j'ai de nombreuses échéances à respecter, que ce soit sur les déclarations de TVA, d'IS, etc. Et malheureusement pour moi, c'est un point sur lequel je ne suis pas très rigoureux. En général, je vois l'échéance arriver quelques semaines avant, et je me dis que ce n'est pas pressé, que j'ai le temps de m'en occuper. Et je finis par oublier, jusqu'à ce qu'il soit trop tard...
Autre exemple tout aussi parlant : ça nous est tous déjà arrivé de souscrire à une offre gratuite pendant un mois ou deux, et qu'il faut résilier avant d'être engagé pour un an voire deux. Oui, je me suis déjà fait avoir !
Dans tous ces cas-là, un assistant m'aurait aidé à mieux anticiper ces échéances.
Définir le format du message Telegram
Dans le reste de l'article, je ne vais travailler qu'avec Google Calendar. Cela va me permettre de me concentrer sur le pipeline. Mais il devrait être possible de connecter un calendrier Apple ou autre moyennant quelques modifications.
Structure du message : introduction et événements par date
Avant de commencer à concevoir le pipeline, nous allons d'abord définir le format du message qui sera envoyé à Telegram. Pas besoin de faire quelque chose de trop compliqué ici : un texte d'introduction et une liste des événements regroupés par date. Nous n'aurons même pas besoin d'utiliser un LLM.
J'explique mon projet à Claude et lui demande de me générer un exemple de message :
Gérer les cas particuliers (journée entière, récurrents, multi-jours)
Le projet est relativement simple, mais comme on peut le voir, il y a certains cas qui peuvent poser problème. Il y a des événements qui durent toute la journée, d'autres qui sont ponctuels. Certains peuvent être récurrents, mais aussi limités dans le temps, comme des cours du soir où on s'inscrit pour une saison. Et enfin il y a des événements qui peuvent durer plusieurs jours, comme un salon, un week-end entre amis, etc.
Ils ne posent pas vraiment de problème technique, car ils seront récupérés quoi qu'il en arrive. Il s'agit surtout de savoir comment les afficher dans le message. J'ai choisi de faire simple :
- Si un événement dure toute la journée, je l'affiche au début de la liste, sans indication supplémentaire
- Si l'événement est ponctuel, j'affiche les heures de début et de fin avant le libellé
- Si l'événement dure plusieurs jours, je l'affiche pour chaque jour concerné
- Je mets de côté les événements sur plusieurs jours avec une heure de début et de fin, car je ne sais pas comment les afficher. Je les inclus dans le cas précédent pour l'instant
Pourquoi choisir Telegram plutôt que le mail
Ayant déjà travaillé avec Telegram sur une première automatisation j'ai déjà presque toute la configuration faite. Cet excellent article explique très bien comment faire. Il faudra cependant récupérer le chatId pour envoyer des messages à notre bot. Pour ce faire, il suffit de démarrer une conversation avec @userinfobot. Le premier message que vous recevrez contiendra un id à réutiliser pour configurer le node Telegram.
On pourra bien sûr choisir un autre moyen de recevoir le résumé, par exemple par mail, ou autre canal.
Dans un premier temps, j'ai écarté l'envoi par mail car j'ai désactivé toutes mes notifications sur mon smartphone. Je reçois beaucoup trop de spams et je n'ai pas encore eu le courage de faire le nettoyage. Si je recevais le résumé par mail, je risquerais de passer à côté ! À l'inverse, je n'utilise pas Telegram comme messagerie, il peut donc devenir mon assistant privilégié. Si je reçois une notification Telegram, je saurai que c'est important.
Comme vous le verrez plus bas, j'ai ajouté l'envoi par mail dans un second temps pour l'exemple, mais je ne pense pas le garder sur le long terme.
Créer le workflow n8n étape par étape
Nous passons maintenant à la partie pratique.
Génération d'un agenda de démo avec Claude
Afin de voir le résultat, il nous faut des événements. J'ajoute d'abord un agenda test que j'appelle "Démo Blog". Je donne ensuite accès à Claude pour qu'il me crée une vingtaine de rendez-vous, avec le prompt suivant :
Je suis en train de rédiger un article pour expliquer comment je reçois régulièrement un résumé de mes événements à venir sur Telegram. Je te mets le workflow n8n en pj. Il interroge l'agenda de mon compte Google par défaut. J'ai créé un nouvel agenda que j'ai appelé "Démo Blog". Je veux que tu y ajoute de faux événements professionnels pour illustrer l'article. Dis-moi comment te donner les droits qu'il faut et le prompt que je dois te rédiger
Claude me demande les droits directement dans la conversation, puis je lance le prompt qu'il m'a généré en l'adaptant :
Dans mon Google Agenda, ajoute de faux événements professionnels dans l'agenda nommé « Démo Blog » (pas mon agenda principal). Ajoute une vingtaine d'événements réalistes répartis sur les 14 prochains jours, en variant les types : réunions horodatées (point d'équipe, appel client, entretien, revue de sprint…), un événement « journée entière » (ex. salon pro), et laisse au moins un jour vide pour illustrer le « RAS ». Fuseau Europe/Paris. Quand c'est fait, donne-moi le calendarId de cet agenda pour que je le mette dans mon workflow n8n.
Et voici le résultat :
On peut maintenant basculer sur n8n.
Version basique : Schedule Trigger, Google Calendar et Telegram
Ce pipeline va se révéler particulièrement simple à mettre en place. Il nous suffit d'avoir un déclencheur et une connexion à Google Calendar (il faudra configurer un credential pour cela). On crée le message à partir de la liste des éléments et on l'envoie via Telegram.
Le déclencheur est un node Schedule Trigger, qui permet de programmer l'envoi dans le temps. On pourrait déclencher le pipeline tous les jours à la même heure, personnellement j'ai choisi de le faire deux fois par semaine, le lundi et le jeudi à 9 heures. Pour cela, je passe le node en configuration custom (cron) et je saisis l'expression cron : 0 9 * * 1,4. Si mes besoins devaient évoluer, je changerais les paramètres du node en conséquence.
Découpler les canaux avec un format JSON universel
Comme on l'a vu plus haut, j'ai choisi d'envoyer le message via Telegram mais je pourrais aussi l'envoyer par mail. Le format du message serait alors différent dans les deux cas. Pour anticiper ce cas, je crée un format "universel" dans le node "Format to JSON". Ce format est reçu par le node "Format to Telegram" qui lui va créer le message spécifiquement pour Telegram.
Ajouter l'envoi par email
Si je veux aussi envoyer un mail, je peux reprendre le schéma de base et brancher un second node "Format to email" à la sortie du node "Format to JSON". Ce nouveau node créera le corps du mail qui sera envoyé dans un dernier node dédié (il y en a plusieurs disponibles selon les cas).
Et voici le résultat reçu sur Telegram et par mail :
Gérer plusieurs calendriers avec le node Merge
Comment faire si on a plusieurs calendriers ? Aujourd'hui, on a généralement un agenda pro et un perso, voire plus dans certains cas. Comment faire pour que nos messages prennent en compte cela ? On pourrait dupliquer le pipeline pour chaque calendrier, mais on recevrait deux messages à chaque envoi, ce qui n'est pas très pratique.
Pour ne recevoir qu'un seul message, on va utiliser le node Merge. Il reçoit plusieurs nodes en entrée et renvoie les données en une seule sortie. Autrement dit, nous allons connecter plusieurs Google Calendar et les fusionner. Il faudra bien sûr créer les credentials nécessaires pour chaque nouveau compte Google.
Conclusion : comment faire venir l'information à soi
Nous avons vu comment à partir d'une conversation anodine, nous avons pu mettre en place une petite automatisation simple et efficace en quelques heures avec l'aide de l'IA.
En soi, il ne s'agit pas d'une révolution, il est tout aussi possible de consulter son agenda (ou ses agendas). La différence ici, c'est que l'information vient à nous. Nous l'avons choisie, mise en forme, et sélectionné les canaux par lesquels nous souhaitions la recevoir.
Il faut voir cette automatisation comme une aide, une assistance. Si je remplis correctement mon agenda, alors ces rappels vont vraiment m'aider à mieux gérer mon quotidien. En revanche, si je ne fais rien de mon côté, il n'y aura pas de miracle !
Dans notre prochain article, nous allons justement voir si je peux faciliter la saisie des événements pour m'inciter à utiliser régulièrement cette automatisation.



