Heure fixe
Des départs exacts dans la journée, comme un tour à 10h00 et un autre à 15h00. Le client choisit une heure précise, pas une plage.
Disponibilité
Pas de bouton « générer le calendrier » que quelqu'un oublie de cliquer, pas de milliers de lignes créées au cas où. Chaque date qu'un client voit se résout sur le moment, à partir de règles, que vous consultiez demain ou dans dix ans.
Un seul moteur décide à la fois quand quelqu'un entre et à quelle fréquence cela se répète, sans configuration séparée pour chaque cas.
Des départs exacts dans la journée, comme un tour à 10h00 et un autre à 15h00. Le client choisit une heure précise, pas une plage.
Plusieurs créneaux d'arrivée par jour, comme « 8h00 à 11h00 » ou « 13h00 à 18h00 ». Le client choisit la fenêtre, pas une minute exacte.
Aucun créneau : le produit est ouvert toute la journée, comme une entrée générale dans un musée. Le client réserve la date, pas une heure.
Un horaire hebdomadaire qui se répète indéfiniment, ou une courte liste de dates exactes pour un événement précis, comme un concert.
Comment ça se résout
Cinq étapes, exactement dans cet ordre, à chaque fois que quelqu'un interroge le calendrier.
Y a-t-il une exception configurée pour ce jour précis ? Une fermeture ponctuelle ou des horaires spéciaux l'emportent toujours sur une règle récurrente.
S'il n'y a pas d'exception, on cherche quelle règle s'applique ce jour de la semaine. Si deux règles se chevauchent (une générale et une saisonnière), la plus spécifique l'emporte : celle qui a ses propres dates de début et de fin.
La règle ou l'exception renvoie ses horaires, interprétés selon le mode de disponibilité de l'option : heure fixe, fenêtre ou journée complète.
Chaque créneau est comparé au délai configuré, calculé dans le fuseau horaire du produit, jamais celui du serveur. Si cet instant est déjà passé, le créneau n'est plus proposé, même s'il reste des heures avant cette heure locale.
Si l'option a un horizon de réservation (par exemple 90 jours), tout ce qui dépasse cette limite n'est même pas calculé.
L'API, telle quelle
La même requête qui résout le calendrier résout aussi le prix final, taxes comprises, et la capacité restante de chaque créneau. Pas de prix « à partir de » non confirmé à côté : c'est exactement ce qu'utilise le checkout pour facturer.
{
"date": "2026-08-14",
"is_open": true,
"min_price_display": "€42.00",
"slots": [
{
"start_time": "18:00",
"end_time": null,
"is_open": true,
"remaining_capacity": 12,
"min_price_display": "€42.00"
},
{
"start_time": "20:30",
"end_time": null,
"is_open": true,
"remaining_capacity": 4,
"min_price_display": "€48.00"
}
]
}Le détail que presque personne ne teste
Les dates sont toujours comparées comme du texte de calendrier (« 2026-08-14 »), jamais comme des instants absolus. Comparée comme un instant, une option « dates fixes » (un concert, par exemple) pouvait cesser de se résoudre comme réservable le jour même, selon le côté du décalage UTC où se trouvait le produit. Nous avons trouvé ce cas, l'avons documenté et fermé avec une suite de tests dédiée. Un produit sans créneau horaire (journée complète) n'est pas non plus privé de délai de réservation : sa limite s'ancre à la fin du jour local, pas à un instant arbitraire.
La plus spécifique l'emporte. S'il y a une règle générale pour tous les mardis et une règle saisonnière qui couvre aussi ce mardi avec ses propres dates de début et de fin, c'est la saisonnière qui s'applique. Les règles sont classées par spécificité avant résolution, peu importe laquelle a été créée en premier.
Par rapport à l'heure exacte du créneau, dans le fuseau horaire propre au produit. Un créneau de 8h00 avec un délai de deux heures cesse de s'afficher à 6h01, calculé là où se déroule l'expérience, pas où se trouve le serveur. Pour un produit sans créneau horaire, le délai s'ancre à la fin du jour local.
Non. Rien n'est jamais pré-généré ni matérialisé. Chaque requête calcule les dates et créneaux sur le moment, à partir des règles et exceptions en vigueur, donc un horaire configuré aujourd'hui fonctionne exactement pareil dans dix ans, sans aucune maintenance.
Oui. La même requête résout le calendrier, le prix final taxes comprises et la capacité restante par créneau, en retenant le pire cas parmi les types de billets qui partagent la même capacité. C'est exactement ce qu'utilise le checkout pour facturer, pas une estimation à part.
Oui, avec une exception de calendrier. On peut fermer une date précise, comme un jour férié, ou lui donner des horaires différents, comme des horaires réduits le 31 décembre, sans modifier la règle récurrente qui régit le reste de l'année.
Tiqory garde disponibilité, tarifs, paiements et accès parfaitement synchronisés à mesure que votre activité grandit. Dites-nous où vous allez ; nous vous montrons comment y arriver sans repartir de zéro.