Rendez-vous
Agenda et calendrier dans l'admin, types de rendez-vous, intervenants, horaires, prise de rendez-vous en ligne et rappels par courriel.
@lrvo/module-booking ajoute une section Rendez-vous à l'admin et, si le projet l'ouvre, une prise de rendez-vous en ligne servie par une page publique à jeton, intégrable en iframe sur un site externe.
Les deux moitiés sont indépendantes. Un cabinet qui ne veut qu'un agenda interne active le module et laisse LRVO_MODULE_BOOKING_ONLINE à false : les liens de réservation répondent 404 et seule l'administration crée des rendez-vous.
La page de gestion d'un rendez-vous existant n'est pas concernée par cet interrupteur. Elle répond sur son jeton seul, même prise en ligne fermée : un rendez-vous créé par l'admin envoie une confirmation qui porte ce lien, et ce lien doit mener quelque part. Voir Réservation en ligne.

L'agenda groupe ce qui vient par échéance, et le bandeau du haut est la fiche du prochain rendez-vous, derrière le filet de couleur de son type. Les types, les intervenants et les horaires que portent ces lignes sont des données, créées dans la page Options : ils changent sans redéploiement.
Pages de cette section
| Page | Contenu |
|---|---|
| Installation | Installer le module, créer les tables, poser le premier horaire. |
| Configuration | Variables d'environnement, permissions, fuseau horaire. |
| Administration | Agenda, calendrier, et la page Options : types, intervenants, horaires, liens. |
| Réservation en ligne | Liens de réservation, parcours public, iframe, annulation par le client. |
| Courriels | Confirmation, rappel, avis internes, fichier .ics. |
| Modèle de données | Les onze tables lrvo_booking_*. |
| API | Routes HTTP d'admin et publiques. |
Ce que le module apporte
| Élément | Détail |
|---|---|
| Tables | Onze, toutes préfixées lrvo_booking_. |
| Entrées d'admin | Section « Rendez-vous », icône Appointment02Icon, ordre 140, trois items. |
| Permissions | booking.view, booking.manage et booking.options. |
| Routes API | 31 routes d'admin, 9 routes publiques. |
| Pages publiques | /lrvo/booking/<slug> et /lrvo/booking/rendez-vous/<jeton>. |
| Panneau de tableau de bord | Prochains rendez-vous et demandes en attente. |
| Tâches planifiées | booking-reminders toutes les heures, booking-housekeeping chaque nuit. |
Les objets du module
| Objet | Rôle |
|---|---|
| Intervenant | La personne qui reçoit. Fiche propre au module, reliable à un compte LRVO. |
| Type de rendez-vous | Durée, tampons, capacité, lieu, prix indicatif, questions supplémentaires, intervenants autorisés. |
| Horaire | Les heures d'ouverture de l'organisation, qu'un intervenant peut remplacer par les siennes. |
| Exception | Une fermeture ou une ouverture exceptionnelle, à une date précise. |
| Lien de réservation | Une adresse publique et la portée de ce qu'elle offre. |
| Rendez-vous | Ce qui est réservé, et le jeton qui permet au client d'y revenir. |
Dépendances fonctionnelles
Le module n'a aucune dépendance de code au-delà du core, mais trois de ses fonctions reposent sur des services que le projet doit avoir configurés :
| Fonction | Dépend de |
|---|---|
| Toute réservation en ligne | NEXT_PUBLIC_URL, sans laquelle la vérification d'origine du core rejette la requête. |
| Confirmations, rappels et avis | La configuration courriel du core, Resend ou SMTP. |
| Heure des créneaux | LRVO_TIMEZONE, défaut America/Toronto. |
Ce que le module ne fait pas
- Il n'encaisse aucun paiement. Un type de rendez-vous porte un prix indicatif, affiché au client, jamais débité.
- Il ne lit aucun agenda externe. Les disponibilités viennent des horaires saisis et des rendez-vous déjà pris. Un empêchement extérieur se pose à la main, en exception.
- Il n'enregistre pas de bloc BlockEditor. Le site atteint la réservation par un lien, par la page publique, ou par le script d'intégration en iframe.
- Il ne gère qu'un fuseau horaire, celui du site. Les heures sont affichées au client avec le fuseau nommé sous la grille.
Notes
- Le fuseau vient de
LRVO_TIMEZONEet rien d'autre. Changer cette variable sur un site en production laisse les instants justes mais rend fausse la colonnelocal_datedes rendez-vous déjà pris. Voir Modèle de données. - Un rendez-vous annulé est le seul qui libère son créneau. Un rendez-vous terminé ou marqué absent a bel et bien occupé le temps.
- La capacité d'un type de rendez-vous n'autorise pas N rendez-vous qui se chevauchent : elle autorise N participants dans le même créneau.
