SlotlyAppointment & Booking System
Self-hosted appointment booking engineered so it can't double-book.
No sign-up, no password — the demo opens already signed in, on sample data.
- Full PHP source included
- Instant download + licence key
- It never phones home
- Compare vs SaaS pricing →
The problem it solves
Salons, spas, trainers, and clinics-of-one need staff and services booked without double-bookings, timezone bugs, or ignored buffers — the exact places cheap booking scripts fall apart. Hosted booking SaaS also charges a monthly fee forever and keeps the client list on someone else's server.
- Double-bookings and timezone/DST bugs in cheap scripts
- Buffers, blackout dates, and split shifts that aren't enforced
- Recurring SaaS fees for a booking widget you could own outright
What you get
Paste your own payment page once and every booking that carries a due deposit shows the customer a pay link right where the amount is quoted. HTTPS-only, no card ever touches your server.
Token-guarded read-only .ics feeds — team-wide or per staff member — that Google Calendar, Outlook or Apple Calendar poll themselves. Revoke a token and that feed goes dark.
Double-booking is prevented at the database level, even when two customers hit the same slot at the same instant.
Customers see their own timezone while you work in yours, and impossible DST-gap times are never offered.
Prep/cleanup buffers, blackout dates, minimum notice, booking windows, and per-weekday hours including split shifts.
Set a capacity so multiple people can book the same slot, never one more.
Per-service deposits, coupon codes, tax, and automatic email reminders via one cron line.
Colour-coded week calendar, appointment statuses, walk-in bookings, and reports by service and staff.
Add it to a phone or tablet home screen straight from the browser — a full-screen app served from your own server, with no app store involved. Business data is never cached offline, so what you see is always live.
Slotly ships the whole Own It 2.0 owner layer. The public booking endpoints stay exactly as they were — they are your storefront.
- Owner REST API with an OpenAPI spec and revocable bearer keys
- Signed webhooks on booking events
- Two-factor sign-in (TOTP)
- CSV customer import with a mandatory dry run
- One-click backups — JSON with secrets redacted, or the raw SQLite file
- Login rate limiting and a /healthz endpoint for your uptime monitor
- Dark mode
Point Claude, an n8n agent or your own script at POST /mcp and it can check availability, book and reschedule — through the same conflict-free engine the public form uses (a serialized transaction plus a unique slot key), so a taken slot is refused, never double-booked. Deliberately, an agent can fill your calendar but never empty it: there is no cancel tool, no delete tool and no payment tool. Upgrade from any 1.x by replacing the files — the database migrates itself.
- Roles with email invitations and a last-admin guard
- Append-only audit trail across browser, API and agent
- Front-desk day sheet and booking confirmations as printable PDFs
- iCal calendar feed of upcoming appointments (tokenized, revocable)
- Scheduled backups with a guided dry-run restore
- Optional single sign-on (OIDC)
The 3.1 wave gave the catalogue a way to reach the other side of the transaction: counterparty email through your own SMTP server, calendar feeds your own calendar subscribes to, attachments filed where the paperwork belongs, and export presets other people's software imports. Every outbound path ships switched off, runs on your own credentials, and can never break the thing that triggered it. What this app gained is listed at the top of this section.
See it running — right now, on sample data
No sign-up, no password — it opens already signed in, and resets itself. Click around freely.
Open the live demoIs Slotly right for you?
Before the price, not after it: what Slotly deliberately does not do. We publish this on every product because the wrong purchase costs you more than the price.
- No online card processing at booking. Deposits are quoted and tracked; your own payment link (a Stripe or PayPal page) is shown to the customer beside the amount due, and Slotly never touches the card.
- Calendar feeds are one-way (Slotly → your calendar) via token-guarded .ics; external calendars are not read back.
- On the autumn DST change the repeated wall-clock hour is offered once, not twice — only relevant if you take bookings between 2 and 3 a.m.
- Not built for a multi-vendor marketplace.
- Single business per install.
Still the right fit? See the price → · Not sure — see who should stay with the SaaS →
Pricing — one-time, yours forever
- ✔ Full source included — PHP you can read and change
- ✔ No subscription. One payment, yours forever
- ✔ It never phones home
- ✔ Your data stays on your server
- ✔ 14-day refunds — we’d rather refund than argue
- ✔ Offline test suite in the box — run it before you rely on it
- ✔ If we ever stop: after 1 year the domain limit lifts, after 3 years your copy relicenses to MIT — it’s in the licence
Not ready to own it? Ownware Cloud runs selected apps from $12/month — and after 12 paid months the perpetual self-host licence is yours.
Read before you buy — what the zip looks like inside
slotly/
README.md · QUICKSTART.txt · LICENSE.txt
app/
index.php · router.php · config.sample.php · Dockerfile
src/ the classes — plain PHP 8, no framework, no Composer
controllers/ every route handler
views/ every screen
tests/ the offline test suite — run it yourself: php tests/run.php
bin/ packaging · seeding · maintenance scripts
API.md the REST + webhook + MCP reference
Nothing is obfuscated or encoded. What you read is what runs.
What the same job costs rented
Every figure is read from the vendor’s own pricing page and carries the date it was read.
Standard $10/seat/mo, billed yearly; free tier limited to 1 event type on 1 calendar
4 months of Calendly equals the one-time $99.00.
Source, read 2026-08-04 →Free plan; Plus $49/mo per location (Premium $149/mo)
3 months of Square Appointments equals the one-time $99.00.
Source, read 2026-07-22 →Free tier; Pro $5/user/month
7 months of Setmore equals the one-time $99.00.
Source, read 2026-08-02 →The full table — every competitor, what each does better than us, and who should stay with them: Slotly vs renting →
Which licence do I need?
It comes down to how many installations you need. Running your own business on one site is the Single licence. Building or running sites for other people — a second domain of your own, or an installation a client keeps — is the Extended licence.
Single licence
One (1) domain or subdomain
One business, running it on one site.
- Install it on one domain or subdomain you own or operate
- Change the source however you like for that installation
- Run your own business on it commercially, client work included
- Re-download the current build any time from your buyer portal
- A second site, or an installation you hand to a client as theirs, needs the Extended licence
- No reselling, redistributing or sublicensing the source
- Not for offering it to other people as a hosted service
Extended licence
Unlimited sites you own or operate
Agencies, and anyone running it on more than one site.
- Everything the Single licence grants
- Install it on as many domains as you own or operate — no cap on the number
- Build and hand over one installation per client project
- Still no reselling or redistributing the source itself
- Running it as a multi-tenant service others sign up for needs a SaaS agreement
Every download carries the full terms as LICENSE.txt, and the licence you bought is
named on your order and in your buyer portal. The complete wording lives on the
terms page, and the live demo is free for as long
as it takes to decide.
No reviews yet — so here is what we offer instead. Every competitor price on our comparison pages is source-linked and dated, and when a vendor’s price won’t load we say so rather than guess. See the sources for yourself →
After you buy
The four things people ask right before they decide.
Your download link always serves the current build at the time you fetch it — re-download any time from your order page or the buyer portal. No renewal fee to keep what you bought.
Email support for installation and for defects in the code as delivered — a person answers, usually within a day or two. It does not cover custom development or server administration. What support covers →
Refunds are handled by Lemon Squeezy as Merchant of Record, case by case — if something is broken and we can’t fix it, we’d rather refund than argue. EU consumers additionally hold the statutory 14-day right until delivery starts. Refund terms →
Nothing stops. You hold the full PHP source, it runs on your own server, and the software does not phone home — there is no licence check that can fail and no cloud that can be switched off. LICENSE.txt ships inside the zip, so your right to keep running it never depended on this site existing.
Covered in these guides
The limitation-smash release: your tools now write to the people they serve — client emails through your own SMTP, calendar feeds, attachments, export presets — every one of them off until you switch it on.
We read nine tracked vendors' privacy policies looking for one answer: how long is your data kept after you leave? Three gave a number. The three numbers were 7 days, 9 months and 6 years.
Invoicing, time tracking, scheduling, expenses — $552 a year at entry tiers. For one person, per-seat pricing is the best case. What actually bites is the cap, and most of this stack has a free answer we will name.
A small clinic runs booking, waivers, a staff rota and expenses. We priced the hosted options from their own pages and worked out which layers are worth owning outright — and which are not, including the one that disqualifies most self-hosted booking tools.
If you have never installed self-hosted software, this is the objection standing between you and owning your tools. Here is the actual sequence on ordinary shared hosting, and how to tell which of the three common failures you have hit.
Questions about Slotly
Does it take payment online?
Slotly never processes cards. Deposits are quoted and tracked in admin, and your own payment link (Stripe, PayPal — any page) is shown to the customer beside the amount due. The payment happens on your provider's page, not on your server.
What do automatic reminders need?
One cron line enables them; email goes through SMTP or PHP mail().
Can I run group classes?
Yes — set a capacity and multiple people can book the same slot.
MySQL or SQLite?
Either — MySQL for shared hosting, SQLite for a local trial.
What do I need to run it?
PHP 8.0+ with PDO and MySQL/MariaDB or SQLite, on any Apache/LiteSpeed shared host (mod_rewrite) or Nginx/VPS.
Can my calendar see Slotly bookings?
Yes — subscribe your Google/Outlook/Apple calendar to a token-guarded .ics feed (whole team or one staff member). Feeds are read-only and one-way; external calendars are not read back into Slotly.
