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éthode | Endpoint | Description |
|---|---|---|
| GET | /calendar | Config hebdo complète + overrides à venir |
| GET | /calendar/slots | Créneaux dispos pour une date donnée |
| PUT | /calendar/week/:dow | Configurer un jour de la semaine |
| PUT | /calendar/dates/:date | Override d'une date spéciale |
| DEL | /calendar/dates/:date | Retirer l'override |
| POST | /calendar/pause-day | Bloquer 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
| Champ | Type | Notes |
|---|---|---|
is_open | bool | false si fermé (jour, override is_closed...) |
notice_cutoff | HH:MM | null | Heure minimum réservable aujourd'hui (préavis). null = pas de filtre |
services[] | array | Services couvrant cette date avec leur usage actuel |
slots[].available | bool | false si plein, ou si trop tôt (préavis), ou service plein |
slots[].unavailable_reason | string|null | "notice", "full", "service_full", "closed" |
Configurer un jour de la semaine
PUT
/api/v1/calendar/week/:dayOfWeek
:dayOfWeek = 0 (dimanche) … 6 (samedi).
Body
| Champ | Type | Notes |
|---|---|---|
is_open | bool | Ouvert ce jour-là |
open_time | HH:MM | Heure d'ouverture |
close_time | HH:MM | Heure de fermeture (dernier slot < close) |
slot_duration_min | int | Durée d'un slot en minutes (défaut 30) |
max_bookings_per_slot | int | Ré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_closed | bool | Si true, fermé peu importe les autres champs |
open_time | HH:MM | Horaire spécifique |
close_time | HH:MM | |
slot_duration_min | int | |
max_bookings_per_slot | int | |
note | string | Note 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
date | YYYY-MM-DD | required |
reason | string | Optionnel, 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
- Définir des services lunch / dinner avec capacité cumulée
- Préavis de réservation (booking_notice_hours)
- Référence Markdown complète