---
title: "CRM — Récurrence de saisie de temps"
module: crm
type: functional
status: active
updated: 2026-09-01
---

# CRM — Récurrence de saisie de temps

> Doc fonctionnelle : décrit le **quoi** et le **pourquoi** (point de vue utilisateur / chef de projet).

## À quoi ça sert

Depuis un temps déjà saisi (`/crm/times/recurrence/{time}`), la récurrence duplique ce temps sur
plusieurs dates selon un motif (tous les jours, toutes les semaines, toutes les 2 semaines, tous
les mois) jusqu'à une date de fin. Cas d'usage typique : saisir un « Repos Forfait Jour » un
vendredi puis générer la récurrence sur toute l'année pour tous les vendredis suivants.

## Comment ça marche (côté utilisateur)

1. Depuis un temps existant, ouvrir l'écran de récurrence.
2. Choisir le type de récurrence (jour / semaine / 2 semaines / mois) et la date de fin.
3. Valider : les occurrences sont créées automatiquement, en sautant les week-ends et les jours
   fériés.

### Ne pas écraser une date déjà renseignée

Si une date de la récurrence a **déjà une saisie de temps** (peu importe sa catégorie — mission ou
absence), elle est **ignorée par défaut** : aucune occurrence n'y est ajoutée. C'est le cas typique
où l'utilisateur a déjà rempli certains jours (ex. des jours de mission) avant de lancer une
récurrence d'absence — plus besoin d'aller supprimer les doublons après coup.

La case à cocher **« Forcer l'écriture même sur les dates déjà renseignées »** (décochée par
défaut) permet d'outrepasser ce comportement et d'écrire quand même une occurrence sur ces dates,
en plus de la saisie existante.

À la fin de la création, un message indique le nombre d'occurrences créées et, le cas échéant, le
nombre de dates ignorées car déjà renseignées. Il s'affiche en notification à l'arrivée sur le
tableau des temps.

## Règles d'accès

Inchangées : la récurrence nécessite le droit de modification (`U`) sur le temps source
(`manageAccessRights('U', $time->idtime, 62100101)`).

## Points d'attention

- Les week-ends et jours fériés (API `calendrier.api.gouv.fr`) restent **toujours** exclus, y
  compris quand l'option « forcer » est cochée — celle-ci ne concerne que les dates déjà
  renseignées.
- Pour une récurrence hebdomadaire, une date ignorée ne casse pas le motif : la récurrence continue
  sur le même jour de semaine, à l'occurrence suivante.
- Pour une récurrence **toutes les 2 semaines**, une date ignorée décale la suite d'une semaine : la
  recherche repart au prochain jour de semaine libre, donc 7 jours plus tard, et la cadence de 2
  semaines reprend à partir de là. L'écart autour de la date ignorée est donc de 3 semaines.
- Pour une récurrence **mensuelle**, si la date visée tombe un week-end, un jour férié ou une date
  déjà renseignée, l'occurrence est décalée aux jours suivants ; ce décalage est reporté sur le mois
  d'après puis résorbé, la série ne dérive pas.

## Voir aussi

- Doc technique : `../../.claude/technical-docs/crm/crm-times-recurrence.md`
