Un sistema prenotazioni online deve promettere soltanto appuntamenti che l’attività può svolgere. Mostrare un’ora libera non basta: possono servire contemporaneamente una persona, una sala e un’attrezzatura. Il lavoro di progettazione consiste nel tradurre questi vincoli in disponibilità verificabili, prima di scegliere una piattaforma.
Questa guida riguarda prenotazioni pubbliche di servizi e spazi, non hotel e portali turistici. Per assegnazione dei tecnici e rapportini, il riferimento è il flusso di gestione degli interventi tecnici. Qui il punto di partenza è ciò che il cliente può prenotare e quando riceve una conferma attendibile.
Un appuntamento libero non è ancora prenotabile
Se un servizio richiede un operatore qualificato, una sala e un kit, lo slot esiste solo nell’intersezione delle tre disponibilità. Due sale libere non raddoppiano la capacità se il kit è uno. Una risorsa condivisa con altri servizi deve essere impegnata nello stesso registro, non in calendari indipendenti.
Distingui esclusività e capienza: prenotare una sala intera è diverso da acquistare un posto in una sessione collettiva. Specifica anche ferie, manutenzione, anticipo minimo e tempo di preparazione o riordino. La documentazione Odoo Appuntamenti distingue disponibilità di utenti, risorse e capacità; non significa che qualsiasi combinazione sia già coperta da ogni prodotto.
Prima della demo, scrivi due regole concrete: «questo servizio richiede tutte queste risorse» e «queste prenotazioni possono condividere la risorsa fino a questa capienza». Chiedi al fornitore di mostrarle, non soltanto di confermarle a voce.
Esempio: due sale, ma un solo kit
Consideriamo un workspace ipotetico che offre laboratori dalle 09:00 alle 13:00, nel fuso Europe/Rome. Ogni laboratorio dura 45 minuti, seguiti da 15 minuti di riordino che impegnano tutte le risorse. Ci sono due sale da quattro posti, un formatore e un kit condiviso. Ogni sessione richiede una sala, il formatore e il kit.
| Dato | Calcolo o conseguenza |
|---|---|
| Finestra operativa | 4 ore × 60 = 240 minuti |
| Occupazione per sessione | 45 + 15 = 60 minuti |
| Sessioni massime | 240 ÷ 60 = 4, non 8 |
| Inizi ammessi nell’esempio | 09:00, 10:00, 11:00, 12:00 |
| Posti teorici giornalieri | 4 sessioni × 4 posti = 16 |
| Formatore indisponibile 11:00–12:00 | 3 sessioni × 4 posti = 12 |
Sono massimi teorici, non domanda prevista o risultati clienti. Presuppongono sessioni complete e nessun altro vincolo. Il riordino dell’ultima sessione termina alle 13:00: eliminarlo dal conteggio farebbe apparire disponibilità che il personale non può garantire.
Se tre persone prenotano la sessione delle 10:00, rimane un solo posto in quella sessione. Il secondo locale non crea automaticamente un’altra sessione: formatore e kit sono già occupati. Questa distinzione deve essere visibile sia al cliente sia all’amministrazione.
La scheda requisiti da compilare prima del preventivo
Compila una riga per ogni servizio realmente venduto. La scheda non è un elenco di moduli: deve permettere a due persone diverse di calcolare gli stessi slot. A ogni eccezione assegna un responsabile e una risposta visibile al cliente.
| Campo | Decisione da documentare |
|---|---|
| Servizio e durata | Cosa prenota il cliente e quanto dura la prestazione |
| Risorse obbligatorie | Operatore, qualifiche, sala e attrezzatura; alternative ammesse |
| Capacità e riordino | Posti condivisibili oppure uso esclusivo; minuti prima e dopo |
| Calendario | Fuso della sede, aperture, chiusure e anticipo minimo |
| Conferma | Immediata, approvata dal personale oppure subordinata al pagamento |
| Blocco temporaneo | Durata, scadenza e comportamento del checkout ancora aperto |
| Modifiche | Termini per cancellazione e spostamento; gestione delle eccezioni |
| Dati e comunicazioni | Contatto necessario, destinatari, promemoria e stato delle notifiche |
Raccogli solo informazioni utili alla prenotazione; non chiedere documenti o dettagli sensibili per abitudine. Se il servizio ne richiede, definisci un percorso separato e autorizzazioni adeguate. Evita anche di inviare agli operatori l’intero profilo cliente quando basta sapere servizio, orario e necessità operative.
Europe/Rome, ora legale e appuntamenti ricorrenti
Il fuso della sede non va rappresentato come un offset fisso: Europe/Rome comprende le regole dell’ora legale. Google Calendar documenta gli identificatori IANA e il ruolo del fuso nell’espansione delle ricorrenze. Conserva l’istante dell’appuntamento e il contesto locale necessario a ricostruire la promessa fatta.
Per «ogni martedì alle 10:00» conta l’ora della sede, non una distanza fissa in secondi. Mostra chiaramente il fuso anche nella conferma. Nel cambio primaverile alcune ore locali non esistono; in quello autunnale altre si ripetono: il sistema deve rifiutare le prime e distinguere le seconde. Per una serie, chiedi esplicitamente se lo spostamento riguarda una sola occorrenza o quelle successive.
Dal blocco temporaneo alla conferma del pagamento
Due persone possono scegliere lo stesso ultimo posto prima che la pagina si aggiorni. Il server deve controllare e impegnare la disponibilità come un’unica operazione: aggiornare il calendario a video non protegge dalla concorrenza. La prenotazione conserva risorse, quantità e scadenza del blocco; un tentativo ripetuto non crea un secondo impegno.
Se è richiesto un pagamento, distingui almeno attesa pagamento, confermata, scaduta e da verificare. La scadenza del blocco deve essere coordinata con quella del checkout secondo i vincoli del fornitore. Un cronometro nel browser, da solo, non interrompe la possibilità di pagare.
Stripe richiede una conferma server tramite webhook: il ritorno alla pagina di successo non basta e i metodi differiti possono completare il pagamento più tardi. Occorre verificare lo stato del pagamento prima di confermare. La documentazione sui webhook Stripe tratta verifica della firma, duplicati ed eventi fuori ordine: una notifica ripetuta non deve generare un’altra prenotazione.
Definisci prima il caso scomodo: il pagamento riesce dopo il rilascio dello slot. Non sottrarre la risorsa a chi l’ha già prenotata. Apri un’eccezione tracciata, avvisa il responsabile e applica la procedura concordata per alternativa o rimborso. Per i contratti tra servizi e la gestione degli errori, approfondisci l’integrazione API.
Cancellare e spostare senza perdere la prenotazione
Le regole commerciali devono essere approvate dall’attività e mostrate prima della conferma: fino a quando il cliente può annullare, cosa accade al pagamento e chi gestisce le eccezioni. Cancellazione della prenotazione, rilascio delle risorse e rimborso sono operazioni collegate, ma non sinonimi.
Uno spostamento non dovrebbe cancellare prima l’appuntamento vecchio e tentare poi quello nuovo. Verifica e acquisisci la nuova disponibilità insieme al rilascio della precedente, con esito indivisibile. Se il nuovo orario non è più libero, resta valida la prenotazione originale. Registra chi ha cambiato cosa e invia una sola conferma finale, anche se la richiesta viene ripetuta.
Prodotto standard, configurazione o sviluppo su misura?
| Scelta | Quando è sensata | Prova da chiedere |
|---|---|---|
| Standard | Le regole essenziali sono già supportate | Eseguire i casi reali senza fogli paralleli |
| Configurazione o integrazione | Il nucleo funziona, manca un collegamento delimitato | Dimostrare dati scambiati, eccezioni e responsabilità |
| Sviluppo su misura | Un vincolo indispensabile non è rappresentabile | Prototipo del vincolo critico prima del progetto completo |
Parti dalla prima riga e passa alla successiva solo per un limite dimostrato. Un prodotto configurabile può bastare anche con molte prenotazioni; un’attività piccola può avere vincoli complessi. Il logo personalizzato non è, da solo, un motivo sufficiente per ricostruire il motore di disponibilità.
Confronta anche esportazione dei dati, accessi amministrativi, monitoraggio degli errori e responsabilità dopo il rilascio. La guida allo sviluppatore siti web freelance chiarisce come governare scope e consegna quando serve un referente per il progetto.
Otto scenari da usare nel collaudo
Prepara dati fittizi e conserva per ogni prova l’esito atteso, quello osservato e l’identificativo della prenotazione. La stessa batteria serve nella demo e dopo una modifica: non basta verificare che il percorso ordinario termini senza errori.
| Scenario | Esito da verificare |
|---|---|
| 1. Due richieste simultanee | Con un solo posto residuo, una conferma riesce e l’altra propone alternative; nessuna sovraprenotazione. |
| 2. Risorsa obbligatoria occupata | Sala libera ma kit impegnato: lo slot non è vendibile. Il riordino impedisce sovrapposizioni. |
| 3. Capienza parzialmente usata | Nella sessione da quattro posti con tre iscritti, una richiesta per due persone non viene accettata. |
| 4. Cambio dell’ora | Ora primaverile inesistente rifiutata; ora autunnale ripetuta disambiguata; ricorrenza coerente con Europe/Rome. |
| 5. Blocco scaduto e pagamento tardivo | Lo slot già riassegnato non viene riconfermato; l’incasso tardivo apre un’eccezione con responsabile. |
| 6. Webhook duplicato o ritardato | Resta una sola prenotazione; un evento precedente non fa regredire uno stato già verificato. |
| 7. Spostamento in concorrenza | Se il nuovo slot viene occupato, l’originale resta confermato; se riesce, tutte le risorse si spostano insieme. |
| 8. Cancellazione e notifica fallita | Le risorse vengono liberate una volta; il rimborso conserva il suo stato e l’email fallita può essere ritentata. |
Aggiungi la verifica manuale da telefono e tastiera: scegliere giorno, leggere disponibilità, correggere un errore e ritrovare la conferma. Se le regole sono corrette ma il cliente non capisce cosa ha prenotato, il lavoro amministrativo torna comunque al telefono.
Domande frequenti
Quando serve un sistema prenotazioni online su misura?
Quando una regola indispensabile non è gestibile con un prodotto esistente o una configurazione sostenibile. Prima di sviluppare, verifica risorse, capacità, pagamenti ed eccezioni con casi reali. Un calendario personalizzato graficamente non richiede necessariamente un motore su misura.
Come si prenotano più risorse per lo stesso servizio?
Lo slot deve rispettare contemporaneamente la disponibilità di tutte le risorse obbligatorie e la capacità richiesta. Il server le impegna con un’unica operazione, includendo preparazione e riordino. Una sala libera non basta se operatore o attrezzatura sono occupati.
Il pagamento conferma automaticamente l’appuntamento?
Solo se il sistema verifica sia il pagamento sia la disponibilità ancora riservata. La pagina di successo non è una prova sufficiente. Un pagamento arrivato dopo la scadenza del blocco richiede la procedura concordata, senza occupare uno slot già assegnato.
Come gestire fusi orari e ora legale?
Associa la prenotazione al fuso della sede, per esempio Europe/Rome, e conserva l’istante corretto. Per le ricorrenze mantieni l’ora locale concordata. Mostra il fuso al cliente e verifica nel collaudo gli orari inesistenti o ripetuti al cambio dell’ora.
Fonti ufficiali
Documentazione consultata il 04/09/2026.
Contenuto tecnico pubblicato e verificato il 04/09/2026. L’esempio è ipotetico; regole e test sono indicazioni progettuali da adattare. Le fonti documentano singole funzionalità, non costituiscono una raccomandazione di acquisto.
