La prenotazione appuntamenti WordPress
senza slot fantasma.
OW Agenda gestisce la prenotazione online, la conferma, i promemoria e l'agenda quotidiana del professionista. Ogni richiesta di un visitatore deve essere confermata tramite un link inviato al suo indirizzo email prima di occupare un posto: un bot non arriva mai alla tua agenda. Gratuito, GPL, senza versione Pro.
Perché l'ennesimo plugin di prenotazione appuntamenti?
Sul sito di uno studio professionale, un form di prenotazione collegato senza protezioni crea più lavoro di quanto ne faccia risparmiare. Qualsiasi bot riempie un'agenda pubblica, e chi risponde al telefono passa la giornata a distinguere gli appuntamenti veri dalle richieste che non sono mai esistite.
I plugin affermati funzionano, ma sono tutti costruiti sullo stesso modello: una versione gratuita volutamente limitata — un solo operatore, una sola sede, una manciata di servizi — e un abbonamento annuale per riavere l'uso normale del software. Per un professionista che lavora da solo, si paga soprattutto il diritto di uscire dalla demo.
OW Agenda nasce da uno studio reale e da tre vincoli: una richiesta esiste solo dopo la conferma via email, due visitatori non possono prenotare lo stesso slot, e l'agenda deve poter essere gestita in piedi tra un paziente e l'altro, da un telefono. Il resto — rubrica clienti, inviti, ICS, promemoria — discende da queste tre regole.
Senza conferma via email, un form aperto è un'agenda che i bot riempiono gratis. Qui la richiesta resta in sospeso, trattiene lo slot per 45 minuti e sparisce da sola se il link non viene mai cliccato.
Due visitatori sullo stesso slot a tre secondi di distanza: una semplice transazione MySQL non applica alcun lock di riga e li registra entrambi. OW Agenda serializza la prenotazione con un lock con nome — il secondo riceve un messaggio, non un doppione.
Tra un paziente e l'altro nessuno apre wp-admin dal telefono. La gestione avviene su una pagina del tuo sito protetta da login: vista del giorno, richieste in attesa, spostamento degli appuntamenti, stati fatto / assente, con pochi tocchi del pollice.
Cosa cambia davvero
Niente slogan. Ecco le decisioni tecniche che distinguono questo prodotto.
Lo shortcode [ow_agenda] mostra i 14 giorni disponibili successivi, poi gli orari liberi: scelta del giorno, dello slot, form breve (nome, telefono, email, messaggio) e casella di consenso GDPR. Sei tu a impostare la granularità, la durata della consulenza, il margine tra due appuntamenti, il preavviso minimo e l'orizzonte di prenotazione. Ogni evento della tua agenda — prenotazione web, appuntamento telefonico inserito a mano, slot bloccato — toglie la propria fascia dalle disponibilità.
La richiesta di un visitatore resta non verificata finché non viene cliccato il link ricevuto via email. Trattiene lo slot per 45 minuti, poi viene eliminata automaticamente. A monte, il campo trappola e il timestamp del form sono obbligatori — ometterli non disattiva più nulla —, il limite orario è conteggiato per indirizzo IPv4 e per prefisso /64 in IPv6, e un tetto massimo limita le richieste non confermate nella stessa giornata.
L'email di notifica contiene due pulsanti, Conferma e Rifiuta, i cui link sono firmati in HMAC-SHA256: decidi con un tocco, senza aprire WordPress né fare il login. La conferma manuale è la modalità consigliata; la conferma automatica resta disponibile per le attività che non hanno nulla da valutare.
Lo shortcode [ow_agenda_admin] crea una pagina «Agenda» sul tuo sito, protetta da login e da una capability dedicata: vista del giorno, richieste in attesa, inserimento di un appuntamento preso al telefono, blocco degli slot, spostamento, stati fatto e assente. Aggiunta alla schermata Home del telefono, si comporta come un'app.
Ricerca, creazione, modifica ed eliminazione delle schede cliente, alimentate automaticamente dagli appuntamenti confermati. Per una seduta di controllo, un link privato nominativo lascia che sia il cliente a scegliere la data, su un servizio e una durata fissati da te: l'invito scade, si consuma una sola volta e torna utilizzabile se l'appuntamento viene annullato.
Email HTML curate a ogni passaggio, con un file ICS allegato: il tuo cliente aggiunge l'appuntamento al calendario del telefono con un gesto, uno spostamento aggiorna la voce e un annullamento la elimina. Il promemoria del giorno prima parte in una finestra mobile da 12 a 36 ore e recupera all'esecuzione successiva; l'attività oraria si riprogramma da sola se sparisce.
Rispetto alle alternative
Dati verificabili. Spuntare solo ciò che esiste davvero nella concorrenza.
| Criterio | OW Agenda | Amelia | Bookly | Simply Schedule Appointments |
|---|---|---|---|---|
| Modello di business | Gratuito, GPL-2.0 | Freemium (Pro a pagamento) | Freemium (Pro a pagamento) | Freemium (Pro a pagamento) |
| Limiti della versione gratuita | Nessuno: tutto è incluso | Lite: 1 operatore, 1 sede | 5 servizi, 1 operatore | Funzioni di base |
| Chiave di licenza da attivare | Nessuna | Per la versione Pro | Per la versione Pro | Per la versione Pro |
| Doppio opt-in email prima di occupare lo slot | Attivo di default | Non dichiarato | Non dichiarato | Non dichiarato |
| Conferma / Rifiuta dall'email, senza login | Link firmati HMAC-SHA256 | Sì | Non dichiarato | Non dichiarato |
| File ICS allegato alle email del cliente | REQUEST, aggiornamenti e CANCEL | |||
| Anonimizzazione automatica degli appuntamenti passati | Inclusa, termine configurabile | Non dichiarato | Non dichiarato | Non dichiarato |
| Gestione quotidiana | Pagina del sito, mobile-first | Back-office WordPress | Back-office WordPress | Back-office WordPress |
Tre modi per integrare un modulo
Nessun page builder proprietario imposto. Scegli l'approccio adatto al tuo 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>Dubbi ragionevoli, risposte dirette
Sì. Tutto ciò che compare nella tua agenda occupa il tempo che richiede: una prenotazione web, un appuntamento inserito a mano dopo una telefonata, una fascia bloccata per una riunione. Il calcolo delle disponibilità parte dai tuoi orari di apertura, toglie queste fasce, applica la durata della prestazione, il margine tra due appuntamenti, il preavviso minimo prima della prenotazione e l'orizzonte massimo. Uno slot mostrato è uno slot davvero libero.
Con una richiesta che non esiste finché non viene confermata. Il visitatore riceve un link di conferma; senza clic, la sua richiesta trattiene lo slot per 45 minuti e poi viene eliminata. Si aggiungono un campo trappola e un timestamp ormai obbligatori — un invio che li omette viene rifiutato invece di passare senza controlli —, un limite orario per indirizzo IP (aggregato per prefisso /64 in IPv6, dove altrimenti una sola macchina dispone di miliardi di indirizzi) e un tetto di richieste non confermate al giorno, perché uno stesso visitatore non possa congelare tutta la tua agenda.
Una sola prenotazione va a buon fine. La sezione critica è serializzata da un lock MySQL con nome: la verifica della disponibilità e la scrittura avvengono sotto lock, cosa che una semplice transazione non garantiva — una lettura nuda non applica alcun lock di riga in REPEATABLE READ. Il nome del lock deriva dal database e dal prefisso delle tabelle, così due siti sullo stesso hosting condiviso non si bloccano a vicenda. Il secondo visitatore riceve l'invito a scegliere un altro slot.
Sì, tramite il link presente nelle sue email, fino al preavviso che stabilisci tu (24 ore di default); oltre quel termine, la pagina lo invita a telefonarti. L'annullamento invia un file ICS di cancellazione che rimuove l'evento dal suo calendario e, se l'appuntamento proveniva da un invito privato, quest'ultimo torna utilizzabile invece di restare consumato per sempre.
Apri la pagina «Agenda» del tuo sito sul telefono, fai il login, poi usa «Aggiungi alla schermata Home». L'interfaccia si comporta allora come un'app: giornata in corso, richieste da confermare, inserimento di un appuntamento telefonico, blocco di uno slot, spostamento, stati fatto e assente. Nessuna installazione, nessuno store e niente che esca dal tuo hosting.
È interamente traducibile. Dalla 1.3.1 tutte le stringhe visibili — impostazioni, pagine di prenotazione e di annullamento, messaggi dell'API, modelli di email e interfaccia JavaScript — passano dal dominio di traduzione ow-agenda, con l'inglese come lingua sorgente. Il template languages/ow-agenda.pot è fornito ai traduttori e una traduzione francese completa è stata prodotta e poi inviata a translate.wordpress.org; la traduzione italiana si contribuisce allo stesso modo.
Nessuna versione Pro, nessuna chiave di licenza.
OW Agenda è pubblicato con licenza GPL-2.0. Tutto ciò che questa pagina descrive si trova nello .zip che scarichi: nessuna funzionalità riservata, nessun abbonamento, nessun limite al numero di appuntamenti, di operatori o di prestazioni.
- Tutto è incluso: prenotazione online, doppio opt-in, inviti per le sedute, rubrica clienti, email con ICS e promemoria.
- Lo .zip si scarica da optionweb.dev. Il plugin non è pubblicato su wordpress.org: installalo da Plugin → Aggiungi nuovo → Carica plugin.
- Nessun servizio terzo, nessuna verifica di licenza, nessun tracker: i dati di contatto dei tuoi clienti restano sul tuo hosting.
- Il codice è sotto GPL-2.0, leggibile e modificabile: puoi verificarlo, adattarlo e farlo evolvere, con o senza di noi.