Slots is appointment booking for a business
Core booking
- Service management — services with their own duration, price, buffers, slot length and booking window
- Staff and resource scheduling — assign staff to services, each with their own schedules and location
- Multi-location support — run more than one location, each with its own timezone
- Flexible availability — recurring weekly schedules, one-off windows, breaks, and blackout dates
- Capacity management — group bookings with per-day capacity limits for staff-less services
- Customer booking limits — cap how often one customer may book a service, fixed or rolling
- Customer self-service — cancel, reschedule, change quantity and download an
.icsfrom a signed link with no account, or a built-in account area for logged-in customers - Multi-site — services are localised and propagate across sites
- Framework-free booking wizard — a zero-dependency, CSP-safe multi-step wizard that auto-selects and skips any step with only one option, so a single-service, single-staff setup is just "pick a time"
Payments
- Stripe, directly. Card details are entered in-page with Stripe Elements — no Craft Commerce, no redirect to a hosted checkout
- Bookings are confirmed by a signature-verified webhook, not by the browser
- Full and partial refunds from the control panel, clamped by a per-service or global refund policy; refunds issued in the Stripe dashboard sync back automatically
- A payment panel on every booking, and a three-field Stripe setup in Settings
- Payments-aware reporting — in direct mode revenue reflects money actually captured, net of refunds
- Free bookings work with no payment configuration at all
Notifications
- Confirmation, reminder, cancellation, reschedule, status-change, quantity-change and owner-alert emails
- Every template overridable in your own
templates/, globally or per site - Confirmation emails carry an
.icscalendar attachment - Queued in the background, so a slow mail server never holds up a booking
Security and anti-spam
- reCAPTCHA v3, hCaptcha, Turnstile, and a honeypot
- Rate limiting per email and per IP, optional IP blocking, and a minimum submission time
- Soft locking — a held slot cannot be claimed by a second customer while the first is still typing
- Optional audit logging
Performance
- Tag-based cache invalidation, batched availability queries, and memoised schedule resolution
- Timezone conversion throughout, so a location's hours mean what they say
For developers
- Bookings are first-class Craft elements — native element index, element actions, exporters, and queryable in Twig like anything else
- A versioned REST API at
/slots/api/v1for custom front ends - A headless wizard core published as ESM/UMD if you would rather build your own interface
- A comprehensive event system for hooking in custom business logic
- Translated into English, German, French, Spanish, Italian, Japanese, Dutch and Portuguese
Standard
Plus $29/year after one year.
Installation Instructions
To install this plugin, copy the command above to your terminal.
Reviews
This plugin doesn't have any reviews.
Active Installs
2
License
Craft
Last release
August 2, 2026
Activity (30 days)
0
Closed Issues
0
Open Issues
3
Merged PRs
0
Open PRs







