Universal booking system β configure providers, services, and working hours; your clients book themselves from a public link, no account required.
Appointments works for any business where someone books a slot with a provider: consultants, doctors, barbershops, repair shops, salons. A provider is any bookable person or resource β from a solo consultant to several doctors in a clinic, each with their own calendar. The system genuinely prevents overlaps: it respects each service's real duration and, if configured, a cleanup/travel buffer between one appointment and the next.
providers.php β every bookable calendar in your business, with the services it offers.
services.php β catalog with duration and, optionally, a buffer and price.
availability.php β weekly hours per provider plus one-off blocked dates (vacation, holidays).
dashboard.php β all your appointments in one visual calendar, with filters and status changes.
A provider is a bookable calendar. If you work solo, create a single provider (e.g. your own name). If you have several people or resources booked separately β several doctors, several barber chairs, several service bays β create one provider per each.
Each provider has a name, an optional title (e.g. "Dentist" or "Barber"), and a color, used to tell them apart on the calendar. From the same screen you mark which services each provider offers β not every provider has to offer every service.
Each service defines how much real time an appointment takes. The duration is what the client sees and what's booked on the calendar. The optional buffer is extra time blocked after the appointment β for cleanup, travel, or simply to avoid back-to-back bookings with no breathing room β without the client seeing it as part of their slot.
Price is optional and informational only β this module doesn't collect payment upfront; if your business needs payment before scheduling, see the IT Consulting module as a reference for that different pattern.
Every provider needs a weekly schedule before it can receive bookings. It's defined by day of the week with a start and end time β you can add more than one block on the same day if there's a break (e.g. 9am-1pm and 3pm-7pm with lunch in between).
One-off blocks are single-day exceptions β vacation, a holiday, leaving early one afternoon. You can block the whole day or just a range of hours within that day.
Every business has a unique public link (shown at the top of your dashboard.php) you can share via WhatsApp, social media, or your own site. Anyone who opens it can pick a provider, service, and available date/time, with no login required.
To complete a booking, the client provides their name, email, WhatsApp, and CURP. The last three are mandatory platform-wide β they guarantee the booking is correctly identified and that the client can claim their own profile later if they want to.
On confirmation, the client gets an email with their own link to reschedule or cancel without contacting you again β that link is per-appointment and also requires no account.
dashboard.php shows every appointment in a calendar view (day, week, or month), colour-coded by provider. You can filter by provider or status. Clicking an appointment opens its detail, where you can change its status (confirmed, completed, cancelled, no-show) and add internal notes β these are never shown to the client.