Calendrier

Calendrier & créneaux

Pilotez la configuration horaire du restaurant : ouverture par jour de semaine, exceptions par date, et créneaux disponibles tenant compte des services, capacités et préavis.

Vue d'ensemble

MéthodeEndpointDescription
GET/calendarConfig hebdo complète + overrides à venir
GET/calendar/slotsCréneaux dispos pour une date donnée
PUT/calendar/week/:dowConfigurer un jour de la semaine
PUT/calendar/dates/:dateOverride d'une date spéciale
DEL/calendar/dates/:dateRetirer l'override
POST/calendar/pause-dayBloquer un jour en un appel
Hiérarchie : override date > service actif > config hebdo > valeurs par défaut. Une date avec is_closed: true override coupe court à toute génération de slots.

Lire la config calendrier

GET /api/v1/calendar
bash
curl https://api.restaurateur.ch/api/v1/calendar \
  -H "X-API-Key: VOTRE_CLE_API"
json
{
  "week": [
    { "day_of_week": 0, "label": "dim", "is_open": false, "open_time": null, "close_time": null, "slot_duration_min": 30, "max_bookings_per_slot": 5 },
    { "day_of_week": 1, "label": "lun", "is_open": true,  "open_time": "12:00", "close_time": "13:45", "slot_duration_min": 15, "max_bookings_per_slot": 5 }
  ],
  "overrides": [
    { "date": "2026-12-25", "is_closed": true, "open_time": null, "close_time": null, "note": "Noël" }
  ]
}

Créneaux dispos d'une date

GET /api/v1/calendar/slots?date=YYYY-MM-DD

Retourne la liste des créneaux pour la date demandée, enrichis avec disponibilité, service associé, capacité, et préavis.

bash
curl "https://api.restaurateur.ch/api/v1/calendar/slots?date=2026-06-15" \
  -H "X-API-Key: VOTRE_CLE_API"
json
{
  "date": "2026-06-15",
  "is_open": true,
  "notice_cutoff": null,
  "services": [
    { "code": "lunch", "label": "Déjeuner", "start_time": "12:00", "end_time": "13:45",
      "max_bookings_per_slot": 5, "max_total_guests": 20, "guests_booked": 8, "service_full": false }
  ],
  "slots": [
    { "time": "12:00", "available": true, "bookings": 1, "guests": 2, "max_bookings_per_slot": 5,
      "service": "lunch", "service_full": false, "unavailable_reason": null },
    { "time": "12:15", "available": true, "bookings": 0, "guests": 0, "max_bookings_per_slot": 5,
      "service": "lunch", "service_full": false, "unavailable_reason": null }
  ]
}

Champs réponse

ChampTypeNotes
is_openboolfalse si fermé (jour, override is_closed...)
notice_cutoffHH:MM | nullHeure minimum réservable aujourd'hui (préavis). null = pas de filtre
services[]arrayServices couvrant cette date avec leur usage actuel
slots[].availableboolfalse si plein, ou si trop tôt (préavis), ou service plein
slots[].unavailable_reasonstring|null"notice", "full", "service_full", "closed"

Configurer un jour de la semaine

PUT /api/v1/calendar/week/:dayOfWeek

:dayOfWeek = 0 (dimanche) … 6 (samedi).

Body

ChampTypeNotes
is_openboolOuvert ce jour-là
open_timeHH:MMHeure d'ouverture
close_timeHH:MMHeure de fermeture (dernier slot < close)
slot_duration_minintDurée d'un slot en minutes (défaut 30)
max_bookings_per_slotintRéservations max par créneau
bash
curl -X PUT https://api.restaurateur.ch/api/v1/calendar/week/1 \
  -H "X-API-Key: VOTRE_CLE_API" \
  -H "Content-Type: application/json" \
  -d '{"is_open":true,"open_time":"12:00","close_time":"13:45","slot_duration_min":15}'

Override d'une date spéciale

PUT /api/v1/calendar/dates/:date

Définit un comportement spécifique pour une date (ex: fermé pour les fêtes, horaires étendus pour la St-Valentin).

Body

is_closedboolSi true, fermé peu importe les autres champs
open_timeHH:MMHoraire spécifique
close_timeHH:MM
slot_duration_minint
max_bookings_per_slotint
notestringNote interne
bash
curl -X PUT https://api.restaurateur.ch/api/v1/calendar/dates/2026-12-25 \
  -H "X-API-Key: VOTRE_CLE_API" \
  -H "Content-Type: application/json" \
  -d '{"is_closed":true,"note":"Noël - fermé"}'

Retirer un override

DELETE /api/v1/calendar/dates/:date

Retire l'override pour cette date. La config hebdo reprend.

bash
curl -X DELETE https://api.restaurateur.ch/api/v1/calendar/dates/2026-12-25 \
  -H "X-API-Key: VOTRE_CLE_API"

Bloquer un jour (raccourci)

POST /api/v1/calendar/pause-day

Raccourci pour bloquer un jour entier sans avoir à passer par l'override complet.

Body

dateYYYY-MM-DDrequired
reasonstringOptionnel, stocké en note
bash
curl -X POST https://api.restaurateur.ch/api/v1/calendar/pause-day \
  -H "X-API-Key: VOTRE_CLE_API" \
  -H "Content-Type: application/json" \
  -d '{"date":"2026-08-15","reason":"Congés"}'

Voir aussi