# CalDAV : les occurrences futures d’événements récurrents ne sont-elles plus régénérées après un certain temps?

**URL:** <https://community.gladysassistant.com/t/caldav-les-occurrences-futures-d-evenements-recurrents-ne-sont-elles-plus-regenerees-apres-un-certain-temps/10680>\
**Category:** Configuration\
**Created:** [Août 20, 2026, 5:12 UTC](https://community.gladysassistant.com/t/caldav-les-occurrences-futures-d-evenements-recurrents-ne-sont-elles-plus-regenerees-apres-un-certain-temps/10680 "2026-08-20T05:12:49Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![spenceur](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/spenceur/32/1961_2.png) [@spenceur](https://community.gladysassistant.com/u/spenceur)\
**Post date:** [Août 20, 2026, 5:12 UTC](https://community.gladysassistant.com/t/caldav-les-occurrences-futures-d-evenements-recurrents-ne-sont-elles-plus-regenerees-apres-un-certain-temps/10680/1 "2026-08-20T05:12:49Z")

</div>

Bonjour @bertrandda ,

Je rencontre un problème avec un calendrier CalDAV contenant des anniversaires récurrents annuellement.

Aujourd’hui, j’ai un anniversaire qui est bien présent dans mon calendrier CalDAV `Anniversaire`, mais l’événement du jour n’apparaît pas dans Gladys.

La connexion CalDAV semble pourtant fonctionner correctement :

- Gladys découvre bien le calendrier `Anniversaire` lors des synchronisations ;

- les autres calendriers, notamment `Famille`, fonctionnent ;

- j’ai essayé de désactiver/réactiver le calendrier puis de relancer une synchronisation, sans résultat.

En regardant le fonctionnement du code CalDAV de Gladys, j’ai remarqué que les événements récurrents sont développés dans une fenêtre temporelle limitée, avec notamment :

```js

const rangeStart = this.dayjs().subtract(1, 'years');

const rangeEnd = this.dayjs().add(2, 'years');

```

Je me demande donc s’il pourrait y avoir le cas suivant :

1. Un événement annuel avec une `RRULE` est synchronisé.

2. Gladys crée ses occurrences jusqu’à `+2 ans`.

3. Les années passent sans modification de l’événement source.

4. Le `ctag` du calendrier ne change pas.

5. Gladys ne retraite donc pas l’événement récurrent.

6. Les occurrences pré-calculées finissent par arriver au bout de la fenêtre initialement générée.

Est-ce que ce scénario est possible avec le fonctionnement actuel de la synchronisation CalDAV ?

Cela pourrait expliquer pourquoi un anniversaire toujours présent côté CalDAV n’apparaît plus dans Gladys plusieurs années après son import initial.

Si c’est utile pour confirmer, je peux faire des tests sur mon installation, par exemple forcer une resynchronisation complète du calendrier et vérifier si l’occurrence réapparaît.

Merci !

---

<div class="post-metadata">

**Author:** ![bertrandda](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/bertrandda/32/5929_2.png) [@bertrandda](https://community.gladysassistant.com/u/bertrandda)\
**Post date:** [Octobre 5, 2026, 9:43 UTC](https://community.gladysassistant.com/t/caldav-les-occurrences-futures-d-evenements-recurrents-ne-sont-elles-plus-regenerees-apres-un-certain-temps/10680/2 "2026-10-05T21:43:45Z")

</div>

Salut @spenceur,

Bien vu, il y a en effet un problème en cas d’évènement récurrent non mis à jour pendant longtemps.

Voilà une PR pour fixer ça

> <https://github.com/GladysAssistant/Gladys/pull/3170>
>
> \### Description
> 
> Recurring events are expanded over \[now - 1 year, now + 2 yea…rs\] when they are synchronized. As the CalDAV sync is incremental (ctag / sync token), an event that is never modified (a birthday for instance) was never expanded again, so its occurrences ran out about 2 years after the import.
> 
> Once every 30 days, the recurring events of each CalDAV calendar are now requested with a calendar-query REPORT filtering on the RRULE property, and their occurrences are computed again. If the server rejects this request, every event of the calendar is synchronized instead. The refresh date is kept in the existing calendar last\_sync column.
> 
> \### Related request
> 
> https://community.gladysassistant.com/t/caldav-les-occurrences-futures-d-evenements-recurrents-ne-sont-elles-plus-regenerees-apres-un-certain-temps/10680
> 
> \### Checklist
> 
> \- \[\] If a forum topic or GitHub issue exists, the description links it (\`Forum: https://community.gladysassistant.com/t/...\` or \`Closes #...\`)
> \- \[\] Tests pass: \`cd server && npm run coverage\` (Codecov requires 100% coverage on changed lines) and Cypress (\`npm run cypress:run\`) if the UI changed
> \- \[\] Linter and prettier pass on both front and server (\`npm run eslint\`, \`npm run prettier\`)
> \- \[\] No undocumented breaking change
> 
> 
> 
> 
> 
> \## Summary by CodeRabbit
> 
> \* \*\*New Features\*\*
> \* Recurring events in CalDAV calendars are refreshed every 30 days, or sooner if they have never been synced. Refreshes can run alongside changes sync.
> \* \*\*Bug Fixes\*\*
> \* If a recurring-event refresh is rejected, calendars without a sync token fall back to a full event sync.
> \* Saved recurring-event occurrences are retained when an updated event cannot be processed or saved.
> \* Calendars with syncing disabled are skipped, and subscribed web calendars update only when their contents change.

Une image docker sera disponible dans les prochaines minutes pour tester `bertrandda/gladys:caldav`
