BookSlot - Universal Appointment Booking System
Drop-in appointment scheduling for salons, clinics & service businesses: no framework, no build step, just PHP and MySQL.
BookSlot is a self-contained appointment booking system built in plain PHP and MySQL, ready to run on any shared host in minutes. Visitors pick a service, choose a staff member (or let the system pick anyone available), and instantly see real open time slots calculated from that staff member's working hours, existing bookings, and blocked-out time, so double-booking simply can't happen. A clean, secure admin dashboard lets the business owner manage services, staff, weekly schedules, and appointments without touching a line of code. There's no Composer, no Node build step, and no third-party API dependency required to run it: unzip, import one SQL file, edit one config file, and it works.
Features:
- Accurate, conflict-free slot engine: available times are computed live from working hours minus bookings minus blocked-out time minus service duration, so there's no double-booking, ever
- Full public booking flow: service, then staff (or "any available"), then date and time, then contact details, then confirmation page
- Admin-managed services (name, duration, price) and staff (name, which services each one offers)
- Per-staff weekly working hours, including split shifts, plus one-off blocked-out dates/times for holidays and time off
- Admin dashboard with at-a-glance stats and a day view of today's bookings
- Appointments screen filterable by date and staff, with one-click confirm/cancel
- Server-side double-booking protection: slot availability is re-validated inside a database transaction immediately before every booking is saved
- Secure by default: PDO prepared statements throughout, hashed admin passwords, CSRF-protected forms, fully escaped output
- No framework, no Composer, no build step: plain PHP files and one MySQL schema, works on standard shared hosting
- Clean, modern, mobile-responsive UI built with plain CSS and progressively-enhanced vanilla JavaScript
New in version 2:
- Recurring appointments (weekly or every 2 weeks) with per-visit or whole-series cancellation
- A customer self-service page for rescheduling or cancelling a booking from a private emailed link, no login needed
- An admin month calendar view alongside the existing day and list views
- A reporting page with appointment counts and revenue by staff member and by service, including CSV export
- CSRF protection and rate limiting added to the public booking form, login, and the new self-service link
- New database indexes and pagination on the appointments list for larger installs
Existing v1 customers can upgrade their database in place using the upgrade guide included with the download.
Requirements
PHP 8.1 or newer MySQL 5.7+ or MariaDB 10.3+ Apache or Nginx with mod_rewrite
Compatibility
PHP 8.1 - 8.3, MySQL/MariaDB, Apache/Nginx
v2.0.0 Current Sep 4, 2026
Added recurring appointments (weekly or every 2 weeks) with per-visit or whole-series cancellation, a customer self-service page for rescheduling or cancelling a booking from a private emailed link with no login needed, an admin month calendar view alongside the existing day/list view, a notification hook that logs every booking event and can optionally email the admin, and a reporting page with appointment counts and revenue by staff member and by service, including CSV export. Audited every database query for safe parameter binding, added CSRF tokens and rate limiting to the public booking and login forms and the new self-service link, added stronger server-side input validation, and added baseline security headers. Added pagination to the appointments list, new indexes for the busier lookup columns, clearer empty states, and flash messages after actions. The database schema gained new tables and columns for these features; existing installs can upgrade in place using the SQL in UPGRADE.md.
v1.0.0 Aug 28, 2026
No reviews yet.
You might also like
FileVault Share
Self-hosted secure file sharing with passwords, expiry, and download limits: no framework, no Composer, just PHP + MySQL.
SnapCompress - Bulk Image Compressor & Format Converter
Drag, drop, compress. A self-hosted bulk image optimizer your visitors can use in seconds, no account required.
VenueReserve - Venue & Room Booking System
A lightweight, self-hosted reservation system for meeting rooms, event halls, sports courts, and co-working spaces, with a real conflict-free approval workflow.
QuickTasks - Team Task & Project Tracker with Kanban Board
A self-hosted Trello-style task tracker with Kanban boards, projects, and due-date tracking.
LinkSnap - URL Shortener with Analytics & QR Codes
A self-hosted link shortener your clients can actually own: clicks, QR codes, and zero dependencies.
BudgetLine - PHP Expense & Budget Tracker
A lightweight, self-hosted expense and budget tracker for individuals, freelancers and small teams: pure PHP + MySQL, no framework required.