What's inside
One system,
every booking type.
Four booking patterns, unlimited businesses, branded pages, a full admin panel, and a customer CRM. Everything below runs on your server.
Booking pages that look custom-built.
Every business gets a public booking page with their own brand colors, logo, and cover image. The page adapts to the booking pattern - time slot pickers for salons, date-range calendars for B&Bs, capacity selectors for restaurants. Fully responsive. Under 200KB.
- Business brand colors, logo, and cover image
- Mobile-first design, optimized for 375px
- Embed widget for external websites
One installation, multiple businesses.
Create a tenant setup for each branch or partner. Each setup is fully isolated with its own bookings, customers, staff, and settings. Manage all of them from one central dashboard — same codebase, one installation.
- Database-level tenant isolation
- Central dashboard for cross-tenant management
- Isolated tenant user accounts for owners and managers
See the whole day at a glance.
Day and week calendar views with draggable bookings. Color-coded by status: confirmed, pending, cancelled, no-show. Filter by staff member or service. Click any booking for full details, reschedule, or cancel.
- Day and week views with drag-to-reschedule
- Status-aware color coding
- Staff and service filtering
Every customer, every booking.
See every customer's booking history, contact information, and internal notes. Phone-based deduplication prevents duplicate records. Quick actions for rebooking, calling, or emailing. Export to CSV for external CRM sync.
- Full booking history per customer
- Phone-based deduplication
- Internal notes and quick actions
Branded emails, automatic reminders.
Confirmation emails go out the second a booking is confirmed. Reminder emails before the appointment. Cancellation notices when plans change. Every email carries the business's brand - colors, logo, business name. Customers see "From: Salon Bella" - not "From: VoxelBooking."
- Confirmation, reminder, and cancellation emails
- Calendar .ics attachments
- SMTP configuration per installation
The dashboard your tenants log into.
Today's bookings, upcoming schedule, recent customers, and quick actions - all in one view. Tenant managers see exactly what they need. Time slot businesses get a "Who's working today" panel showing staff availability at a glance.
- Today's bookings count with status breakdown
- Staff availability panel for time slot businesses
- Quick manual booking creation
Every booking, every status.
Filter by status, date range, or customer. Click any booking for full details, reschedule, cancel, or mark as no-show. Manual bookings follow the same availability rules as public ones. Accidentally cancelled? Recover it back to confirmed.
- Reschedule with full availability checking
- Status recovery for accidental cancellations
- CSV export for reporting and accounting
Everything included.
Every feature below. No add-ons. No tiers.
Time Slot Booking
Appointments with staff members. Pick a service, pick a stylist, pick a time. Perfect for salons, consultants, personal trainers, and therapists.
Resource Booking
Date-range bookings for rooms, spaces, and equipment. Check-in and check-out dates, seasonal pricing, blackout periods. For B&Bs, hotels, meeting rooms.
Capacity Booking
Reservations with party sizes. Track remaining seats across time slots. For restaurants, escape rooms, tours, and tasting experiences.
Event Booking
Classes, workshops, and activities with participant limits, waitlists, and recurring schedules. For yoga studios, workshops, wine tastings.
Branded booking pages
Every tenant gets a public booking page with their own brand colors, logo, and cover image. Looks custom-built. Mobile-first. Under 200KB.
Multi-tenant architecture
One installation, unlimited tenants. Each tenant is fully isolated with their own bookings, customers, staff, and settings. Database-level tenant_id scoping.
Admin calendar
Day and week views with drag-to-reschedule. Filter by status, staff member, or service. Color-coded booking states.
No double bookings
MySQL row-level locking prevents concurrent bookings on the same slot. If the slot is taken, the customer sees alternatives - not an error page.
Branded emails
Confirmation, reminder, and cancellation emails with the tenant's brand color and logo. Customers see "From: Salon Bella" - not "From: VoxelBooking."
Customer CRM
See every customer's booking history, contact info, and notes. Phone-based deduplication across tenants. Quick actions for rebooking and communication.
Staff management
Add staff members with individual availability schedules. Assign services to specific staff. Customers choose their preferred person when booking.
GDPR compliant
Consent collection on the booking page, privacy policy linking, data access requests, right to deletion, and automatic anonymization after retention period.
Embed widget
Add a floating "Book Now" button to any website with one line of JavaScript. The booking flow opens in a branded modal. Works on WordPress, Wix, Squarespace.
Mobile-first design
70% of bookings happen on phones. Every interface is designed for 375px first. The booking page loads in under 1.5s on 4G.
Multi-language & RTL
Built-in internationalization with right-to-left support. The booking page respects the tenant's configured locale for date formatting and text direction.
Self-hosted
PHP 8.3+, MySQL 8.0+. No Redis, no Node.js, no external APIs. Deploy on any VPS or shared hosting. Your data never leaves your server.
Full source code
One installation.
Zero SaaS dependency.
Open source booking software with full source code.
Your server. Your data.
Every feature above. Every booking pattern. Multiple tenant support.
PHP 8.3+ · MySQL 8.0+ · Self-hosted · Multi-tenant
Server requirements