La prise de rendez-vous WordPress
sans créneaux fantômes.
OW Agenda gère la réservation en ligne, la validation, les rappels et l'agenda quotidien du praticien. Chaque demande de visiteur doit être confirmée par un lien envoyé à son adresse e-mail avant d'occuper une place : un robot n'atteint jamais ton planning. Gratuit, GPL, sans version Pro.
Pourquoi encore un plugin de rendez-vous ?
Sur le site d'un cabinet, un formulaire de réservation branché sans garde-fou crée plus de travail qu'il n'en économise. N'importe quel robot remplit un planning public, et la personne qui décroche le téléphone passe sa journée à démêler les rendez-vous réels des demandes qui n'ont jamais existé.
Les plugins établis fonctionnent, mais ils sont tous construits sur le même modèle : une version gratuite volontairement bridée — un seul employé, un seul lieu, une poignée de services — et un abonnement annuel pour retrouver l'usage normal du logiciel. Pour un praticien seul, on paie surtout le droit de sortir de la démo.
OW Agenda part d'un cabinet réel et de trois contraintes : une demande n'existe qu'après confirmation par e-mail, deux visiteurs ne peuvent pas réserver le même créneau, et l'agenda doit se piloter debout entre deux patients, sur un téléphone. Le reste — répertoire clients, invitations, ICS, rappels — découle de ces trois règles.
Sans validation par e-mail, un formulaire ouvert est un planning que les robots remplissent gratuitement. Ici la demande reste en attente, retient le créneau 45 minutes, et disparaît d'elle-même si le lien n'est jamais cliqué.
Deux visiteurs sur le même créneau à trois secondes d'intervalle : une simple transaction MySQL ne pose aucun verrou de ligne et enregistre les deux. OW Agenda sérialise la réservation avec un verrou nommé — le second reçoit un message, pas un doublon.
Entre deux patients, personne n'ouvre wp-admin sur un téléphone. La gestion se fait sur une page de ton site protégée par connexion : vue du jour, demandes en attente, replanification, statuts fait / absent, en quelques appuis du pouce.
Ce qui change concrètement
Pas de slogans. Voici les décisions techniques qui distinguent ce produit.
Le shortcode [ow_agenda] affiche les 14 prochains jours disponibles, puis les heures libres : choix du jour, du créneau, formulaire court (nom, téléphone, e-mail, message) et case de consentement RGPD. Tu règles la granularité, la durée de consultation, le battement entre deux rendez-vous, le délai minimum et l'horizon de réservation. Tout événement de ton agenda — réservation web, rendez-vous téléphonique saisi à la main, créneau bloqué — retire sa plage des disponibilités.
Une demande de visiteur reste non vérifiée tant que le lien reçu par e-mail n'est pas cliqué. Elle retient le créneau 45 minutes, puis est purgée automatiquement. En amont, le champ piège et l'horodatage du formulaire sont obligatoires — les omettre ne désactive plus rien —, le quota horaire est compté par adresse IPv4 et par préfixe /64 en IPv6, et un plafond limite les demandes non validées sur une même journée.
L'e-mail de notification contient deux boutons, Confirmer et Refuser, dont les liens sont signés en HMAC-SHA256 : tu décides en un appui, sans ouvrir WordPress ni te connecter. La validation manuelle est le mode recommandé ; la confirmation automatique reste disponible pour les activités qui n'ont rien à arbitrer.
Le shortcode [ow_agenda_admin] crée une page « Agenda » sur ton site, protégée par connexion et par une capacité dédiée : vue du jour, demandes en attente, ajout d'un rendez-vous pris par téléphone, blocage de créneaux, replanification, statuts fait et absent. Ajoutée à l'écran d'accueil de ton téléphone, elle se comporte comme une application.
Recherche, création, édition et suppression des fiches clients, alimentées automatiquement par les rendez-vous validés. Pour une séance de suivi, un lien privé nominatif laisse le client choisir sa date lui-même, sur un service et une durée que tu as fixés : l'invitation expire, se consomme une seule fois, et redevient utilisable si le rendez-vous est annulé.
E-mails HTML soignés à chaque étape, avec un fichier ICS joint : ton client ajoute le rendez-vous au calendrier de son téléphone d'un geste, une replanification met l'entrée à jour et une annulation la supprime. Le rappel de la veille part dans une fenêtre glissante de 12 à 36 heures et se rattrape à l'exécution suivante ; la tâche horaire se reprogramme seule si elle disparaît.
Face aux alternatives
Données vérifiables. Cocher uniquement ce qui existe vraiment chez le concurrent.
| Critère | OW Agenda | Amelia | Bookly | Simply Schedule Appointments |
|---|---|---|---|---|
| Modèle économique | Gratuit, GPL-2.0 | Freemium (Pro payant) | Freemium (Pro payant) | Freemium (Pro payant) |
| Limites de la version gratuite | Aucune : tout est inclus | Lite : 1 employé, 1 lieu | 5 services, 1 employé | Fonctions de base |
| Clé de licence à activer | Aucune | Pour la version Pro | Pour la version Pro | Pour la version Pro |
| Double opt-in e-mail avant d'occuper le créneau | Activé par défaut | Non annoncé | Non annoncé | Non annoncé |
| Confirmer / Refuser depuis l'e-mail, sans connexion | Liens signés HMAC-SHA256 | Oui | Non annoncé | Non annoncé |
| Fichier ICS joint aux e-mails du client | REQUEST, mises à jour et CANCEL | |||
| Anonymisation automatique des rendez-vous passés | Incluse, délai réglable | Non annoncé | Non annoncé | Non annoncé |
| Gestion quotidienne | Page du site, mobile-first | Back-office WordPress | Back-office WordPress | Back-office WordPress |
Trois façons d'intégrer un formulaire
Pas de page builder propriétaire forcé. Choisis l'approche qui correspond à ton stack.
[ow_agenda]
// La page « Prendre rendez-vous » est créée automatiquement à l'activation.
// Le même shortcode sert aux invitations de séance : le lien privé envoyé
// à un client existant pointe vers cette page avec son jeton en paramètre.
//
// https://ton-site.be/prendre-rendez-vous/?owag_invite=<jeton>Doutes raisonnables, réponses directes
Oui. Tout ce qui figure dans ton agenda occupe le temps qu'il prend : une réservation web, un rendez-vous saisi à la main après un appel, une plage bloquée pour une réunion. Le calcul des disponibilités part de tes horaires d'ouverture, retire ces plages, applique la durée de la prestation, le battement entre deux rendez-vous, le délai minimum avant réservation et l'horizon maximum. Un créneau affiché est un créneau réellement libre.
Par une demande qui n'existe pas tant qu'elle n'est pas confirmée. Le visiteur reçoit un lien de validation ; sans clic, sa demande retient le créneau 45 minutes puis est purgée. S'y ajoutent un champ piège et un horodatage désormais obligatoires — un envoi qui les omet est refusé au lieu de passer sans contrôle —, un quota horaire par adresse IP (agrégé par préfixe /64 en IPv6, où une seule machine dispose sinon de milliards d'adresses) et un plafond de demandes non validées par journée, pour qu'un même visiteur ne puisse pas geler tout ton agenda.
Une seule réservation aboutit. La section critique est sérialisée par un verrou MySQL nommé : la vérification de disponibilité et l'écriture se font sous verrou, ce qu'une simple transaction ne garantissait pas — une lecture nue ne pose aucun verrou de ligne en REPEATABLE READ. Le nom du verrou est dérivé de la base et du préfixe de tables, pour que deux sites d'un même hébergement mutualisé ne se bloquent pas mutuellement. Le second visiteur reçoit une invitation à choisir un autre créneau.
Oui, par le lien présent dans ses e-mails, jusqu'au délai de préavis que tu fixes (24 heures par défaut) ; au-delà, la page l'invite à t'appeler. L'annulation envoie un fichier ICS d'annulation qui retire l'événement de son calendrier, et si le rendez-vous provenait d'une invitation privée, celle-ci redevient utilisable au lieu de rester définitivement consommée.
Ouvre la page « Agenda » de ton site sur le téléphone, connecte-toi, puis utilise « Ajouter à l'écran d'accueil ». L'interface se comporte alors comme une application : journée en cours, demandes à valider, ajout d'un rendez-vous téléphonique, blocage d'un créneau, replanification, statuts fait et absent. Aucune installation, aucun store, et rien qui sorte de ton hébergement.
Oui. Depuis la 1.3.1, toutes les chaînes visibles — réglages, pages de réservation et d'annulation, messages de l'API, modèles d'e-mails et interface JavaScript — passent par le domaine de traduction ow-agenda, avec l'anglais comme langue source. Le gabarit languages/ow-agenda.pot est fourni pour les traducteurs, et une traduction française complète a été produite puis soumise à translate.wordpress.org.
Aucune version Pro, aucune clé de licence.
OW Agenda est publié sous licence GPL-2.0. Tout ce que décrit cette page se trouve dans le .zip que tu télécharges : aucune fonctionnalité réservée, aucun abonnement, aucune limite sur le nombre de rendez-vous, d'employés ou de prestations.
- Tout est inclus : réservation en ligne, double opt-in, invitations de séance, répertoire clients, e-mails ICS et rappels.
- Le .zip se télécharge sur optionweb.dev. Le plugin n'est pas publié sur wordpress.org : installe-le via Extensions → Ajouter → Téléverser une extension.
- Aucun service tiers, aucune vérification de licence, aucun traceur : les coordonnées de tes clients restent sur ton hébergement.
- Le code est sous GPL-2.0, lisible et modifiable : tu peux l'auditer, l'adapter et le faire évoluer, avec ou sans nous.