Table des matières
Mis à jour le 12 octobre 2026
WS Scheduler est un plugin WordPress de prise de rendez-vous que j’ai développé pour remplacer Calendly sur mon propre site : un bouton, une popup en deux étapes, des emails de confirmation, et toutes les réservations stockées dans votre base de données. Pas d’abonnement mensuel, pas de service tiers pour afficher un calendrier.
J’ai utilisé Calendly pendant des années pour mes rendez-vous clients. Ça fonctionnait, mais l’outil faisait essentiellement une chose : afficher un calendrier et envoyer un email. Quand j’ai constaté que mes données de réservation vivaient chez l’éditeur et que je n’y avais pas vraiment la main, j’ai décidé de construire ma propre solution. Un plugin WordPress de réservation couvre l’essentiel de ce que fait Calendly, sur votre serveur, sans abonnement récurrent.
Pourquoi utiliser un plugin de prise de rendez-vous sur WordPress ?
Un plugin de rendez-vous WordPress garde les données chez vous, s’intègre au design du site et évite un abonnement par utilisateur. Un SaaS reste pertinent si vous avez besoin d’intégrations commerciales poussées ou d’agendas d’équipe. Trois critères comptent, dans cet ordre : le coût, les données, l’intégration.
Le coût. Au moment de la rédaction, la page tarifs de Calendly affiche 10 $ par utilisateur et par mois pour l’offre Standard et 16 $ pour l’offre Teams, avec une offre gratuite limitée à un seul type d’événement. Au tarif affiché, l’offre Standard représente 120 $ par an et l’offre Teams 192 $. Cal.com propose une offre gratuite pour un utilisateur, des offres Teams à 12 $ par utilisateur et par mois (facturation annuelle) et une option auto-hébergée.
Les données. Avec un SaaS, les informations saisies par vos prospects (nom, email, téléphone, message) sont stockées chez l’éditeur. Avec un plugin WordPress, elles restent dans votre base MySQL, sur votre hébergement. Vous restez dans tous les cas responsable de traitement au sens du RGPD : il faut donc prévoir la mention dans votre politique de confidentialité et une durée de conservation.
L’intégration. L’iframe d’un outil externe respecte rarement toute votre charte graphique. Un plugin natif s’adapte au thème sans bricolage.
| Critère | SaaS (Calendly, Cal.com hébergé) | Plugin WordPress (WS Scheduler) |
|---|---|---|
| Coût | Abonnement par utilisateur | Pas d’abonnement pour la version gratuite |
| Données | Chez l’éditeur | Dans votre base WordPress |
| Design | Iframe ou page hébergée | Popup intégrée au site |
| Fonctions d’équipe | Round-robin, routage, intégrations CRM | Pensé pour un indépendant ou une petite structure |
| Maintenance | Assurée par l’éditeur | Mises à jour du plugin et de WordPress à votre charge |
Comment fonctionne WS Scheduler côté visiteur ?
Vous placez le shortcode du plugin sur n’importe quelle page. Un bouton apparaît ; au clic, une popup s’ouvre en deux étapes : le choix du créneau, puis le formulaire de coordonnées. Il n’y a rien d’autre à configurer côté visiteur.

Le calendrier
La première étape affiche un calendrier mensuel. Chaque jour est marqué comme disponible, complet ou fermé. Le visiteur choisit une date, puis un créneau parmi ceux qui restent libres. Les créneaux déjà réservés n’apparaissent pas, ni les jours fermés (week-ends, jours fériés, vacances).
Le calcul se fait côté serveur, en temps réel, sans mise en cache qui afficherait un créneau déjà pris. Si deux personnes regardent le même jour au même moment, la disponibilité est revérifiée à la confirmation, pas à l’affichage.
Le formulaire
La deuxième étape demande le prénom, le nom et l’email (obligatoires), puis le téléphone, la société et un message (optionnels). Les champs sont validés côté client et côté serveur, ce qui évite une réservation avec un email vide ou un créneau passé.
À la soumission, le plugin revérifie que le créneau est libre (contrôle anti-collision), enregistre le rendez-vous en base, puis envoie deux emails : une confirmation au client et une notification à l’administrateur.
Que contient le back-office du plugin ?
Le back-office tient en quatre pages dans l’administration WordPress, sans sous-menus inutiles : tableau de bord, indisponibilités, réglages et choix de la langue.

Tableau de bord
Quatre compteurs en haut : rendez-vous à venir, confirmés, en attente, annulés. En dessous, la liste complète avec filtres par statut. Pour chaque rendez-vous : date, heure, nom, société, email, téléphone, message, et des boutons pour confirmer, annuler ou supprimer. Quand vous annulez ou supprimez un rendez-vous, le client reçoit automatiquement un email d’annulation.
Indisponibilités
Vous partez en vacances du 15 au 30 août ? Ajoutez une indisponibilité en deux clics : le calendrier marque ces jours comme fermés. Même chose pour un rendez-vous médical, un jour férié local ou toute période où vous ne voulez pas être dérangé.
Réglages
Les options tiennent sur une page : jours ouvrables, horaires de début et de fin, durée des créneaux (15, 20, 30, 45, 60, 90 ou 120 minutes) et limite de réservation dans le futur. Cette limite évite qu’un client réserve en 2030 : vous pouvez bloquer au-delà d’une semaine, deux semaines, un mois ou un an. Vous choisissez aussi le texte du bouton, le nom d’entreprise affiché dans les emails et l’adresse qui reçoit les notifications.
Choix de la langue
Le plugin est traduit en français, anglais, espagnol et allemand. Un sélecteur dans les réglages change la langue du back-office, de la popup et des emails, indépendamment de la langue du site.
À quoi ressemblent les emails de confirmation ?
Les emails sont envoyés en HTML avec un gabarit à vos couleurs : en-tête avec logo, détails du rendez-vous dans un tableau, pied de page avec lien vers votre site. Trois types sont gérés : la confirmation au client, la notification à l’administrateur avec le message du client, et l’annulation.

L’encodage UTF-8 est géré nativement : apostrophes, accents et caractères spéciaux passent correctement, y compris dans le champ message. Pensez à tester la délivrabilité (SPF, DKIM) de l’adresse d’envoi de votre site, car un email de confirmation qui tombe en spam fait perdre le bénéfice du plugin.
WS Scheduler fonctionne-t-il avec Avada et Elementor ?
Oui, c’est un point sur lequel j’ai passé du temps pendant le développement. Les page builders comme Avada ou Elementor ne stockent pas toujours les shortcodes dans le contenu de l’article : ils peuvent se retrouver dans des métadonnées (post meta), ce qui casse la détection habituelle de WordPress.
Le plugin charge donc son CSS et son JavaScript au moment où le shortcode est rendu, pas avant. L’overlay de la popup est déplacé dans le body par JavaScript pour échapper aux contextes transform et position imposés par certains thèmes. Plusieurs boutons peuvent coexister sur une même page : ils partagent une seule popup, rendue une fois dans le pied de page, sans duplication de HTML ni conflit d’ID.
Qu’ajoute la version Pro ?
La version Pro ajoute six fonctions pour les utilisateurs qui gèrent plus de rendez-vous :
- Google Calendar : chaque rendez-vous est inscrit dans votre agenda avec les informations du client. La connexion se fait en OAuth2 depuis les réglages.
- Google Meet : un lien de visioconférence est généré pour chaque réservation, inclus dans l’email de confirmation et affiché dans la popup.
- Rappels email J-7 et J-1 : pour limiter les rendez-vous manqués. Ils passent par WP-Cron, sans dépendance externe.
- Export CSV : tous les rendez-vous, avec filtres par statut et par période, pour la comptabilité ou le suivi.
- Couleurs personnalisées : 12 variables CSS pour la popup (fond, bordures, accent, textes).
- Masquage du crédit : la mention « Propulsé par WebStrategy » peut être retirée en un clic.
Un point technique sur les rappels : WP-Cron n’est pas un vrai planificateur système. WordPress vérifie les tâches dues à chaque chargement de page, donc un site sans visite à l’heure prévue envoie le rappel plus tard. Sur un site peu fréquenté, je recommande de déclencher WP-Cron avec une tâche cron du serveur.
Comment installer WS Scheduler ?
Il s’installe comme n’importe quel plugin : envoi du ZIP via Extensions puis Ajouter, activation, puis passage dans les réglages pour définir vos horaires et jours ouvrables. Comptez environ cinq minutes pour avoir un bouton de réservation fonctionnel.
Aucune dépendance externe n’est requise : pas de compte tiers, pas d’API à configurer (sauf Google Calendar en Pro), pas de JavaScript externe à charger.
Pour qui ce plugin est-il pensé ?
WS Scheduler s’adresse aux consultants, freelances, coachs, thérapeutes et plus largement à toute personne qui propose des rendez-vous en ligne depuis un site WordPress, sans vouloir payer un abonnement mensuel ni dépendre d’un service tiers. Si vous avez besoin de répartir des rendez-vous entre plusieurs collaborateurs avec routage commercial, un SaaS reste plus adapté.
Questions fréquentes
À quoi sert un plugin de prise de rendez-vous sur WordPress ?
Il permet aux visiteurs de réserver un créneau directement depuis votre site, sans échange manuel d’emails. Le plugin gère le calendrier, les disponibilités, le formulaire et les confirmations, ce qui réduit les allers-retours et les créneaux perdus.
Comment fonctionne WS Scheduler ?
Un shortcode affiche un bouton qui ouvre une popup en deux étapes : calendrier de créneaux libres, puis formulaire de réservation. Côté administrateur, un tableau de bord liste les rendez-vous, avec gestion des indisponibilités et réglages d’horaires.
Peut-on bloquer des plages d’indisponibilité ?
Oui. Le module d’indisponibilités ferme des dates ou des périodes précises (congés, jours fériés, rendez-vous pris hors plateforme). Elles n’apparaissent plus comme réservables côté visiteur.
WS Scheduler remplace-t-il Calendly ?
Pour un indépendant ou une petite structure, il couvre l’essentiel : calendrier, formulaire, emails, back-office. Il ne remplace pas les fonctions d’équipe d’un SaaS, comme la répartition entre plusieurs personnes ou les intégrations CRM.
Où sont stockées les données de réservation ?
Dans la base MySQL de votre site WordPress, sur votre hébergement. Vous restez responsable de ces données au sens du RGPD : prévoyez une mention dans votre politique de confidentialité et une durée de conservation.
