horaires (écriture par API)

Les horaires sont une sous-donnée du noeud ouverture.periodesOuvertures[]. Leur composition se trouve sur la page Format des objets (écriture).

L’écriture des horaires reprend principalement le format de consultation.

Notez en particulier que, comme pour les autres champs des periodesOuvertures, la présence du noeud horaires est obligatoire : si vous modifiez une periodeOuverture qui disposait d’horaires, mais ne repassez pas le noeud horaires, les informations sont considérées comme à supprimer.

Réutilisation d’une période qui n’est pas encore créée

Lorsqu’on veut utiliser les mêmes horaires sur plusieurs périodes, l’une des périodes est déclarée comme « source » par l’ajout d’un ouverture.periodesOuvertures[].nom, et les périodes qui réutilisent ces horaires la référencent à partir de ouverture.periodesOuvertures[].sourceHoraireId (l’identifiant de la période d’origine, celle qui a un nom).

Lors de la création de nouvelles périodes, l’identifiant n’existe pas encore : dans ce cas vous pouvez ajouter un identifiantTemporaire fictif sur la période source, puis l’utiliser dans sourceHoraireId dans les périodes réutilisantes.

Exemple ici avec une création d’offre et l’utilisation d’un identifiantTemporaire=99 :

{
    "type": "PATRIMOINE_CULTUREL",
    "nom": {
        "libelleFr": "Test"
    },
    "localisation": {
        "adresse": {
            "commune": {
                "id": 14707
            }
        }
    },
    "ouverture": {
        "periodesOuvertures": [
            {
                "nom": "Vacances scolaires",
                "identifiantTemporaire": 99,
                "dateDebut": "2025-01-01",
                "dateFin": "2025-12-31",
                "type": "OUVERTURE_SAUF",
                "horaires": [
                    {
                        "type": {
                            "elementReferenceType": "HoraireType",
                            "id": 7457
                        },
                        "timePeriods": [
                            {
                                "weekdays": ["MON","TUE","WED","THU","FRI"],
                                "timeFrames": [
                                    {"startTime": "08:00","endTime": "12:00"},
                                    {"startTime": "14:00","endTime": "18:00"}
                                ]
                            },
                            {
                                "weekdays": ["SAT"],
                                "timeFrames": [
                                    {"startTime": "08:00","endTime": "19:00"}
                                ]
                            }
                        ]
                    }
                ]
            },
            {
                "dateDebut": "2026-01-01",
                "dateFin": "2026-12-31",
                "horaireOuverture": "15:11:00",
                "horaireFermeture": "16:11:00",
                "type": "OUVERTURE_SAUF",
                "sourceHoraireId": 99
            }
        ]
    }
}

[TODO] sourceHoraireId=identifiant (et non identifiantTechnique) pour réutiliser une période déjà existante