# Scène : pouvoir disposer d'une liste des événements de calendrier à une date à venir

**URL:** <https://community.gladysassistant.com/t/scene-pouvoir-disposer-dune-liste-des-evenements-de-calendrier-a-une-date-a-venir/10530>\
**Category:** Demandes livrées\
**Tags:** in-progress\
**Created:** [Août 11, 2026, 4:44 UTC](https://community.gladysassistant.com/t/scene-pouvoir-disposer-dune-liste-des-evenements-de-calendrier-a-une-date-a-venir/10530 "2026-08-11T16:44:25Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![jean\_bruder](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/jean_bruder/32/13_2.png) [@jean\_bruder](https://community.gladysassistant.com/u/jean_bruder)\
**Post date:** [Août 11, 2026, 4:44 UTC](https://community.gladysassistant.com/t/scene-pouvoir-disposer-dune-liste-des-evenements-de-calendrier-a-une-date-a-venir/10530/1 "2026-08-11T16:44:25Z")

</div>

Pouvoir disposer de la liste de tous les événements d’une date précisée. La valeur par défaut est le jour suivant.

Cas d’usage : création d’une scène déclenchée à un horaire précis (repas du soir), dans laquelle Gladys va renoncer l’ensemble des actions qui seront à réaliser le lendemain. La synthèse vocale utilise dans mon cas une API locale à qui on passe une phrase prononcée ensuite sur une enceinte ou un ensemble d’enceinte choisies. On peut imaginer passer à l’URL TTS une phrase comportant une variable qui regroupe les évènements (ou alors trouver un moyen de créer la phrase à la volée).

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [Août 14, 2026, 9:57 UTC](https://community.gladysassistant.com/t/scene-pouvoir-disposer-dune-liste-des-evenements-de-calendrier-a-une-date-a-venir/10530/2 "2026-08-14T09:57:44Z")

</div>

Hop c’est développé 🙂

 ![Capture d’écran 2026-08-14 à 11.55.59](https://gladys-assistant-community.b-cdn.net/uploads/default/original/3X/2/6/262db22308b9d1bcc0ea49fd24772aa3c3f2e3c3.png)  
 ![Capture d’écran 2026-08-14 à 11.56.56](https://gladys-assistant-community.b-cdn.net/uploads/default/original/3X/2/d/2da734fe8e287a6bf47bc3ac7f3e26a01b49ec53.png)  
 ![Capture d’écran 2026-08-14 à 11.56.09](https://gladys-assistant-community.b-cdn.net/uploads/default/original/3X/6/3/63885304cae35c242c0dcfbeb3c5798b82bcbabc.png)

> <https://github.com/GladysAssistant/Gladys/pull/2857>
>
> \### Description
> 
> This PR adds a new scene action \*\*\`calendar.get-events\`\*\* ("Get… calendar events") that fetches the events of one or more shared calendars over a relative time range and exposes them as scene variables, so a scene can announce the day's or tomorrow's agenda through a message, a TTS notification or an HTTP request to a local TTS API.
> 
> \*\*Time range options\*\*: today, tomorrow (the forum request's default use case), or the next X hours.
> 
> \*\*Variables injected in the scene scope\*\* (\`calendarEvents.\*\`):
> \- \`text\`: a ready-to-use localized sentence listing the events, e.g. \`Dentist at 9:00 AM, Meeting at 4:00 PM\` (full-day events are announced without a time, events starting on another day include the full date). The "at" word is localized (en/fr/de) using the calendar creator's language, consistent with how \`calendar.event-is-coming\` formats dates.
> \- \`count\`: number of events found.
> \- \`events\`: the raw sorted list (name, location, description, start, end, summary) for advanced templating.
> 
> The action can optionally \*\*stop the scene when no event is found\*\*, which also makes it usable as a condition in if/then/else blocks (e.g. "if there are events tomorrow → announce them"), consistent with \`calendar.is-event-running\`.
> 
> Implementation details:
> \- New \`calendar.findEventsInRange(calendars, from, to)\` lib function: events \*\*starting\*\* in the range, shared calendars only (same convention as \`findCurrentlyRunningEvent\` and the calendar trigger), sorted chronologically.
> \- New action handler in \`scene.actions.js\`, registered in \`CONDITION\_ACTIONS\`.
> \- New front component \`CalendarGetEvents\` (modeled on \`CalendarIsEventRunning\`), translations added for en/fr/de.
> \- MCP scene schema added so AI-generated scenes can use the action.
> \- Server tests: 7 tests for the scene action (all time ranges, sorting, full-day events, events without end date, empty result, abort behavior, invalid range) and 3 tests for the lib function (range filter, sorting, shared-only, calendar filter).
> 
> \## Forum
> 
> Forum: https://community.gladysassistant.com/t/calendrier-pouvoir-disposer-dune-liste-des-evenements-a-une-date-a-venir/10530
> 
> \### Checklist
> 
> \- \[x\] Tests pass: \`cd server && npm run coverage\` (Codecov requires 100% coverage on changed lines) and Cypress (\`npm run cypress:run\`) if the UI changed — targeted suites are green locally (scene: 252 ✓, MCP: 99 ✓, calendar: 39 ✓ including the 10 new tests); the only local full-suite failures are environment-related (missing \`sqlite3\` binary/Docker/network in the sandbox) in areas untouched by this PR. Cypress could not run in the sandbox (binary download blocked).
> \- \[x\] Linter and prettier pass on both front and server (\`npm run eslint\`, \`npm run prettier\`)
> \- \[x\] No undocumented breaking change
> 
> 🤖 Generated with \[Claude Code\](https://claude.com/claude-code)
> 
> https://claude.ai/code/session\_01ExXaNXP51WH4CJzCrXZkZt
> 
> \---
> \_Generated by \[Claude Code\](https://claude.ai/code/session\_01ExXaNXP51WH4CJzCrXZkZt)\_
> 
> 
> \## Summary by CodeRabbit
> 
> \* \*\*New Features\*\*
> \* Added a scene action to retrieve events from one or more shared calendars.
> \* Supports today, tomorrow, or customizable upcoming-hour ranges.
> \* Provides event summaries, counts, and event lists, with an option to stop when no events are found.
> \* Added configuration validation and English, French, and German translations.
> 
> \* \*\*Tests\*\*
> \* Added coverage for date ranges, calendar selection, sorting, formatting, validation, and empty results.

Testé et approuvé, ça partira dans la prochaine version de Gladys 🙂

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [Août 14, 2026, 3:15 UTC](https://community.gladysassistant.com/t/scene-pouvoir-disposer-dune-liste-des-evenements-de-calendrier-a-une-date-a-venir/10530/3 "2026-08-14T15:15:02Z")

</div>

Je ferme ce post car la fonctionnalité est disponible dans Gladys Assistant 4.86 :

> [@Gladys 4.86 : la plus grosse release de l’histoire du projet rocket](https://community.gladysassistant.com/t/gladys-4-86-la-plus-grosse-release-de-l-histoire-du-projet/10554):
>
> Salut à tous ! Super heureux de sortir Gladys Assistant 4.86. C’est simple, c’est la plus grosse version depuis le début du projet, avec 68 PR fusionnées en une semaine exploding_head C’est juste incroyable, et ça montre le nouveau rythme qu’on peut tenir avec l’IA. L’objectif est maintenant clair : rattraper et dépasser Home Assistant rocket Je vous parle de ces 68 nouveautés ici : Merci à tous les contributeurs !!

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [Août 14, 2026, 3:15 UTC](https://community.gladysassistant.com/t/scene-pouvoir-disposer-dune-liste-des-evenements-de-calendrier-a-une-date-a-venir/10530/4 "2026-08-14T15:15:05Z")

</div>


