J’ai passé des années à utiliser Calendly pour mes rendez-vous clients. Ça fonctionnait, mais chaque mois je voyais passer la facture pour un outil qui faisait essentiellement une chose : afficher un calendrier et envoyer un email. Quand j’ai réalisé que mes données de réservation vivaient sur des serveurs américains sans que j’y aie vraiment accès, j’ai décidé de construire ma propre solution.

WS Scheduler est né de cette frustration. Un plugin WordPress qui fait exactement ce que Calendly fait, mais qui tourne sur votre propre serveur, avec vos données, sans abonnement récurrent.

Pourquoi un plugin de prise de rendez-vous sur WordPress ?

La question revient souvent : pourquoi ne pas utiliser un SaaS comme Calendly, Cal.com ou Acuity ? Trois raisons, dans l’ordre.

D’abord, le coût. Calendly facture 10 $ par mois pour ses fonctionnalités de base, 16 $ pour la version Pro. Sur un an, ça fait entre 120 et 192 $. Pour un indépendant qui prend cinq rendez-vous par semaine, c’est un poste de dépense difficile à justifier.

Ensuite, les données. Quand un prospect remplit un formulaire sur Calendly, ses informations (nom, email, téléphone, message) sont stockées chez Calendly. Vous n’en êtes pas propriétaire. En cas de fermeture du service ou de changement de politique, vous perdez tout. Avec un plugin WordPress, les données restent dans votre base MySQL, sur votre hébergement.

Enfin, l’intégration. Un outil externe implique toujours un compromis visuel. L’iframe Calendly ne respecte jamais complètement votre charte graphique. Un plugin natif, lui, peut s’adapter au thème de votre site sans bidouille.

Comment fonctionne WS Scheduler

Le principe est simple. Vous placez un shortcode sur n’importe quelle page de votre site. Un bouton apparaît. Quand un visiteur clique dessus, une popup s’ouvre en deux étapes.

WS Scheduler plugin WordPress front popup

Le calendrier

La première étape affiche un calendrier mensuel. Chaque jour est marqué selon son statut : disponible, complet ou fermé. Le visiteur choisit une date, puis sélectionne un créneau horaire parmi ceux qui restent libres. Les créneaux déjà réservés n’apparaissent pas. Les jours fermés (week-ends, jours fériés, vacances) non plus.

Le calcul se fait côté serveur, en temps réel. Pas de mise en cache hasardeuse qui afficherait des créneaux déjà pris. Quand deux personnes regardent le même jour au même moment, la vérification de disponibilité se fait au moment de la confirmation, pas au moment de l’affichage.

Le formulaire

La deuxième étape demande les coordonnées : prénom, nom, email (obligatoires), puis téléphone, société et message (optionnels). Le formulaire valide les champs côté client et côté serveur. Pas de réservation fantôme avec un email vide ou un créneau passé.

À la soumission, le plugin vérifie une dernière fois que le créneau est toujours libre (double-check anti-collision), enregistre le rendez-vous en base, puis envoie deux emails : un au client pour confirmer, un à l’administrateur pour notifier.

Le back-office : ce que vous voyez en tant qu’admin

Quatre pages dans l’administration WordPress. Pas de menu interminable avec des sous-sous-catégories inutiles.

 

WS Scheduler : plugin WordPress back office

Tableau de bord

Quatre compteurs en haut : rendez-vous à venir, confirmés, en attente et annulés. En dessous, la liste complète avec filtres par statut. Pour chaque rendez-vous : date, heure, nom du client, société, email, téléphone, message, et des boutons d’action (confirmer, annuler, supprimer).

Quand vous annulez ou supprimez un rendez-vous, le client reçoit automatiquement un email d’annulation. Pas besoin de le faire manuellement.

Indisponibilités

Vous partez en vacances du 15 au 30 août ? Ajoutez une indisponibilité en deux clics. Le calendrier front-end marquera ces jours comme fermés automatiquement. Même chose pour un rendez-vous médical le mardi après-midi, un jour férié local, ou n’importe quelle période où vous ne voulez pas être dérangé.

Réglages

Les options de configuration tiennent sur une page. Jours ouvrables (checkboxes), horaires de début et de fin, durée des créneaux (15, 20, 30, 45, 60, 90 ou 120 minutes), et la limite de réservation dans le futur. Ce dernier point est important : sans limite, un client peut réserver un créneau en 2030. Le plugin permet de bloquer les réservations au-delà d’une semaine, deux semaines, un mois ou jusqu’à un an.

Vous choisissez aussi le texte du bouton, le nom de votre entreprise (affiché dans les emails) et l’email qui recevra les notifications.

Choix de la langue

Le plugin est traduit en quatre langues : français, anglais, espagnol et allemand. Un sélecteur dans les réglages permet de changer la langue du back-office, de la popup et des emails en un clic. Indépendamment de la langue du site WordPress.

Les emails : pas du texte brut

Les emails transactionnels sont souvent le parent pauvre des plugins WordPress. Texte brut, pas de mise en forme, pas de branding. WS Scheduler envoie des emails HTML avec un template aux couleurs de votre marque : header avec logo, détails du rendez-vous dans un tableau structuré, footer avec lien vers votre site.

Trois types d’emails sont gérés : la confirmation au client après réservation, la notification à l’administrateur avec tous les détails du rendez-vous (y compris le message du client), et l’email d’annulation si vous changez d’avis côté back-office.

L’encodage UTF-8 est géré nativement. Les apostrophes, accents et caractères spéciaux passent sans problème, même dans le champ message.

 

WS Scheduler : plugin WordPress

Compatibilité : Avada, Elementor et les autres

C’est probablement le point qui m’a donné le plus de fil à retordre pendant le développement. Les page builders comme Avada ou Elementor ne stockent pas les shortcodes de la même manière que l’éditeur classique WordPress. Le shortcode peut se retrouver dans des post meta au lieu du post_content, ce qui casse la détection standard de WordPress.

WS Scheduler contourne le problème en chargeant le CSS et le JavaScript au moment exact où le shortcode est rendu, pas avant. L’overlay de la popup est déplacé directement dans le via JavaScript pour échapper aux contextes transform et position imposés par les thèmes. La popup fonctionne partout.

Vous pouvez placer plusieurs boutons sur la même page. Ils partagent tous la même popup (rendue une seule fois dans le footer), donc pas de duplication HTML ni de conflits d’ID.

La version Pro : pour ceux qui veulent aller plus loin

La version gratuite couvre 90 % des besoins d’un indépendant ou d’une petite entreprise. La version Pro ajoute six fonctionnalités pour les utilisateurs qui gèrent un volume plus important de rendez-vous.

La synchronisation Google Calendar inscrit chaque rendez-vous directement dans votre agenda Google, avec toutes les informations du client. Plus besoin de recopier manuellement. La connexion se fait via OAuth2, directement depuis les réglages du plugin.

Google Meet génère automatiquement un lien de visioconférence pour chaque réservation. Le lien est inclus dans l’email de confirmation envoyé au client et affiché dans la popup après réservation.

Les rappels email (J-7 et J-1) réduisent les no-shows. Le client reçoit un email 7 jours avant le rendez-vous, puis un autre la veille. Le système tourne via WP Cron, sans dépendance externe.

L’export CSV permet de récupérer tous les rendez-vous dans un tableur, avec filtres par statut et par plage de dates. Pratique pour la comptabilité ou le reporting.

La personnalisation des couleurs donne le contrôle sur les 12 variables CSS de la popup : fond, bordures, couleur d’accent, texte principal, texte secondaire. Le client final ne voit jamais la charte WebStrategy par défaut.

Et pour les plus exigeants sur le branding : le logo « Propulsé par WebStrategy » dans le footer de la popup peut être masqué en un clic.

Installation et configuration

Le plugin s’installe comme n’importe quel plugin WordPress : upload du ZIP depuis Extensions → Ajouter, activation, puis direction Réglages pour définir vos horaires et jours ouvrables. Comptez cinq minutes pour avoir un bouton de réservation fonctionnel sur votre site.

Aucune dépendance externe n’est requise. Pas de compte tiers à créer, pas d’API à configurer (sauf Google Calendar pour la version Pro), pas de JavaScript externe à charger. Le plugin est autonome.

Pour qui ?

WS Scheduler a été pensé pour les consultants, freelances, coachs, thérapeutes, et plus généralement toute personne qui propose des rendez-vous en ligne sans vouloir payer un abonnement mensuel ou dépendre d’un service tiers. Si vous avez un site WordPress et que vous prenez des rendez-vous, le plugin fait le travail.