Cum construiești o aplicație de rezervări: sloturi, disponibilitate, memento-uri și avansuri
Pentru a construi o aplicație de rezervări, ai nevoie de patru lucruri care funcționează împreună: o listă a tot ce poate fi rezervat (servicii, camere, personal), reguli pentru când este disponibil fiecare, un flux de rezervare care oferă doar sloturi chiar libere și o vedere privată în care afacerea gestionează ce a intrat. Un constructor de aplicații cu AI poate produce o primă versiune funcțională în câteva minute dintr-o descriere scurtă. Munca reală este să decizi regulile — durata slotului, pauzele, anulările, fusurile orare — și să testezi că dublările sunt imposibile.
Începe prin a decide ce înseamnă „o rezervare” pentru tine
Aplicațiile de rezervări arată asemănător la suprafață, dar diferă mult pe dinăuntru. Răspunde mai întâi la acestea:
- Ce se rezervă? Un serviciu (o tunsoare), o persoană (un meditator), o resursă (o sală de ședințe, un teren, o dubă) sau un loc la o sesiune (un curs de yoga cu 12 locuri).
- Cât durează? Fix pentru fiecare serviciu sau alege clientul?
- Cine îl oferă? O persoană, mai mulți angajați cu programul lor sau nimeni (o sală)?
- Ce se întâmplă după rezervare? Confirmare instantanee sau o cerere pe care proprietarul o aprobă?
- Sunt implicați bani? Gratuit, plată la fața locului, avans sau plată integrală în avans?
„Cere o oră, proprietarul confirmă prin email” este mult mai simplu de construit decât „rezervare instantanee pe calendarele a trei angajați, cu avansuri”. Ambele sunt valide — alege-o pe cea de care ai nevoie efectiv pentru prima versiune.
Ce are nevoie aplicația
Date
| Tabel | Câmpuri-cheie |
|---|---|
| Servicii | Nume, durată, preț, pauză după, activ da/nu |
| Personal sau resurse | Nume, ce servicii oferă |
| Disponibilitate | Orele de lucru săptămânale per angajat, plus excepții (sărbători, închideri punctuale) |
| Rezervări | Serviciu, angajat, ora de început, ora de sfârșit, datele clientului, stare (în așteptare, confirmată, anulată), stare plată |
| Clienți | Nume, email, telefon, notițe — opțional la început; pot trăi și în rezervare |
Salvarea orei de sfârșit la fiecare rezervare, nu doar a celei de început, simplifică mult verificările de suprapunere.
Pagini
- Publice: lista de servicii, selectorul de sloturi, formularul de rezervare, pagina de confirmare și un link de anulare sau reprogramare.
- Private (proprietar sau personal): programul de azi, rezervările viitoare, o modalitate de a bloca timp liber și setări pentru servicii și program.
Permisiuni
Clienții ar trebui să vadă doar sloturi libere sau ocupate — niciodată numele altor clienți. Personalul poate vedea doar propriul program; proprietarul vede tot. Scrie asta, pentru că decide dacă ai nevoie de conturi și roluri. Ghidul nostru despre adăugarea autentificării în aplicație acoperă opțiunile.
Părțile dificile și cum le tratezi
Dublările
Bug-ul clasic: două persoane încarcă pagina, amândouă văd 10:00 liber, amândouă rezervă. Soluția este să verifici din nou pe server, la salvarea rezervării, și să o refuzi dacă ceva se suprapune acum. Cere explicit acest lucru:
La salvarea unei rezervări, verifică din nou pe server că nicio rezervare confirmată sau în așteptare pentru același angajat nu se suprapune cu ora cerută (inclusiv pauza). Dacă există una, respinge rezervarea și afișează „Ora aceasta tocmai a fost ocupată — alege alta.”
Apoi testeaz-o cu două ferestre de browser.
Fusurile orare
Stochează fiecare oră în UTC și convertește-o pentru afișare. Decide al cui fus orar îl arată pagina de rezervări — de obicei al afacerii pentru servicii fizice și al clientului pentru apeluri online — și scrie-l pe pagină. Testează o rezervare trecând peste o schimbare de oră de vară.
Pauze, preaviz și limite
Reguli frecvente de hotărât dinainte: o pauză între programări, preaviz minim („fără rezervări cu mai puțin de 2 ore înainte”), cât de departe în viitor pot rezerva oamenii și un plafon zilnic. Fiecare este o propoziție într-un prompt; dacă le lași afară, AI-ul alege valori implicite în locul tău.
Anulări și neprezentări
Dă fiecărei confirmări un link de anulare cu un token unic, ca clienții să nu aibă nevoie de cont. Decide fereastra de anulare și dacă avansurile sunt returnabile, și arată politica înainte de plată.
Memento-uri
Memento-urile prin email sau SMS au nevoie de ceva care rulează programat („la fiecare 15 minute, trimite memento-uri pentru rezervările care încep în 24 de ore”). Verifică cum tratează constructorul și găzduirea ta sarcinile programate. Dacă nu le tratează, folosește un planificator extern care apelează un punct de capăt din aplicația ta sau trimite emailul de confirmare cu o invitație de calendar atașată, ca propriul calendar al clientului să-i amintească. Vezi cum trimiți emailuri din aplicația ta pentru partea furnizorului.
Avansuri și plăți
Modelul obișnuit cu Stripe:
- Clientul alege un slot; aplicația creează o rezervare în așteptare care ține slotul o perioadă scurtă (să zicem 15 minute).
- Aplicația îl trimite la Stripe Checkout pentru avans.
- Stripe anunță aplicația printr-un webhook când plata reușește; rezervarea devine confirmată.
- Dacă plata nu se face la timp, rezervarea în așteptare expiră și slotul se eliberează.
Tarifele standard Stripe sunt un procent plus o taxă fixă pentru fiecare plată cu cardul reușită, fără taxă lunară (la septembrie 2026); tarifele variază în funcție de țară, deci verifică pagina de prețuri Stripe pentru a ta. Folosește modul de test și cardurile de test până când totul funcționează. Ghidul nostru despre adăugarea plăților parcurge pas cu pas.
Un prompt de start care funcționează
Construiește o aplicație de rezervări pentru Northside Barbers. Servicii: Tuns (30 min, 25 $), Aranjat barbă (15 min, 12 $), Tuns + barbă (45 min, 32 $). Doi frizeri, Sam și Ali, fiecare lucrând marți–sâmbătă 9:00–18:00. Clienții aleg un serviciu, apoi un frizer sau „oricare frizer” și văd doar orele de start libere de 15 minute pentru următoarele 14 zile și introduc nume, telefon și email. Salvează rezervările într-o bază de date, cu o pauză de 10 minute după fiecare programare, și reverifică disponibilitatea la salvare ca să previi dublările. Arată o pagină de confirmare cu un link de anulare. Proprietarul are o pagină privată cu programările de azi și viitoare, poate anula o rezervare și poate bloca timp. Orele sunt în fusul orar local al salonului. Design curat, mobile-first.
Denumește serviciile, personalul, orele, regulile și vederea proprietarului — tot ce AI-ul ar ghici altfel.
Pașii de construire
- Întâi fluxul de rezervare de bază. Servicii → slot → formular → rezervare salvată → confirmare. Nimic altceva până nu funcționează pe telefon.
- Vederea proprietarului. Lista de azi, lista viitoare, anulare, blocare de timp.
- Protejează paginile proprietarului. Adaugă autentificare înainte să intre date reale.
- Reguli. Pauze, perioada de preaviz, orizontul de rezervare, sărbători.
- Email. Confirmare cu invitație de calendar și link de anulare.
- Avansuri, dacă ai nevoie, întâi în modul de test Stripe.
- Testează cazurile limită. Două ferestre care rezervă același slot, o rezervare peste miezul nopții, o dată cu schimbarea orei de vară, o rezervare anulată care eliberează slotul.
- Publică, apoi fă singur o rezervare reală înainte să trimiți linkul altora.
Greșeli frecvente
- Verificarea disponibilității doar în browser. Arată corect și totuși dublează rezervările.
- Stocarea orelor locale fără fus orar. Funcționează până se schimbă ora.
- Afișarea numelor clienților în calendarul public. Arată doar liber sau ocupat.
- Construirea programării personalului, a punctelor de fidelitate și a SMS-urilor din prima zi. Lansează fluxul de bază, apoi adaugă ce cer efectiv clienții.
- Niciun mod prin care proprietarul să blocheze timp. Prima zi de boală va produce neprezentări.
Când Calendly (sau similar) este alegerea mai bună
Dacă ești o singură persoană care își împărtășește disponibilitatea pentru apeluri, un instrument de programare este greu de întrecut. Din septembrie 2026, planul gratuit Calendly acoperă un tip de eveniment, o conexiune de calendar și programări unu-la-unu cu o pagină de rezervare personalizabilă, iar planurile plătite adaugă mai multe tipuri de evenimente și funcții de echipă. Instrumente de acest fel se conectează la calendarul tău existent din prima clipă, ceea ce o aplicație construită la comandă trebuie să fie făcută special să facă.
Construiește-ți propria când ai nevoie de reguli pe care aceste instrumente nu le acceptă, de mai multe resurse rezervabile, de brandingul tău peste tot, de rezervări legate de alte date (clienți, comenzi, abonamente) sau dacă construiești un produs de rezervări pe care să-l vinzi altora.
Construirea cu Mythex
În Mythex descrii aplicația de rezervări în chat, ea se construiește într-o previzualizare live și adaugă o bază de date Postgres când rezervările trebuie salvate. Cazul de utilizare pentru pagina de rezervări din documentație sugerează să începi cu un formular de cerere și o listă de administrare, apoi să adaugi restul. Fii lucid în privința a ce este inclus și ce conectezi singur: Mythex nu are sincronizare nativă de calendar, memento-uri SMS sau produs de avans. Emailul trece prin propriul tău furnizor, avansurile prin propriile chei Stripe, stocate ca secrete ale proiectului (rețeta Stripe), iar regulile împotriva dublărilor și ale fusurilor orare sunt lucruri pe care le specifici și le testezi, ca mai sus.
Comanda /test îl pune pe agent să parcurgă fluxul de rezervare în previzualizare și să raporteze ce se strică. Pentru un prompt de start, încearcă șabloanele site de rezervări pentru frizerie sau programator de întâlniri, sau răsfoiește toate șabloanele de aplicații.
Întrebări
Ce funcționalități are nevoie o aplicație de rezervări?
Cel puțin: o listă de servicii cu durate, o modalitate de a afișa doar sloturile libere, un formular de rezervare, o confirmare și o pagină privată în care afacerea vede și administrează rezervările. Memento-urile, avansurile și calendarele personalului vin după.
Cum opresc dublările de rezervări?
Verifică disponibilitatea pe server în momentul salvării rezervării, nu doar când se încarcă pagina, și respinge rezervarea dacă slotul a fost ocupat între timp. Testează trimițând să rezervi același slot din două ferestre de browser.
O aplicație de rezervări construită la comandă poate lua avansuri?
Da. Abordarea obișnuită este să trimiți clientul la o pagină Stripe Checkout pentru avans și să confirmi rezervarea doar după ce plata reușește. Ai nevoie de propriul cont Stripe și de propriile chei.
Ar trebui să construiesc o aplicație de rezervări sau să folosesc Calendly?
Dacă o singură persoană trebuie să-și împărtășească disponibilitatea și nimic din flux nu e neobișnuit, un instrument de programare precum Calendly este mai rapid și mai ieftin de utilizat. Construiește-ți propria aplicație când ai nevoie de reguli proprii, de mai multe resurse, de brandingul tău peste tot sau de rezervări legate de alte date pe care le ții.