
Appointment SW lets visitors book appointments from any page on your site. You configure as many working windows per day as you need, block holidays, optionally allow guest bookings, and Appointment SW takes care of slot availability, email notifications and capability checks.
Version 2.0 is a deep modernisation of the original plugin while keeping every shortcode, option and database table from 1.x in working order. Existing sites can update without re-doing setup.
What’s new in 2.0
- Modern booking flow: clicking a free slot opens a confirmation modal — no more page reloads to advance the booking.
- Admin booking modal with live client search and an inline “Add client” button, so receptionists can book a brand new client without leaving the calendar.
- Arbitrary number of time windows per day (not just two).
- Server-rendered Settings page using the WordPress Settings API, with an onboarding section that creates the shortcode pages for you in one click.
- Public REST API under
/wp-json/appointmentsw/v1/for availability, bookings, holidays, settings, and user search. - Capability-based permissions:
appointmentsw_manage(administer) andappointmentsw_book(book a slot). - Prepared statements across every database query, plus new indexes on bookings, bookmeta and holidays for faster lookups on busy calendars.
- Hardened request dispatcher: strict capability checks, sanitized input and escaped output throughout.
- Filterable email templates via
appointmentsw/email/{event}/{audience}/{subject|body}. - Optional WooCommerce integration is now a separate companion plugin so this core stays lean.
Shortcodes
[appointmentsw_form]— booking form for visitors.[appointmentsw_myaccount]— logged-in user appointments (view and cancel).[appointmentsw_admin]— frontend admin calendar with client search and one-click client creation.[appointmentsw_vacations]— block holidays from the frontend.
Backwards compatibility
All 1.x shortcodes keep rendering, bundled Bootstrap 3 assets are still enqueued so existing theme overrides keep working, the legacy core/ classes remain loaded, and legacy options (asw-guest, asw-duration, asw-numdays, asw-maxoffset, asw-start_time_*, asw-end_time_*) are migrated transparently into the new appointmentsw_settings option the first time the new code reads them.
Screenshots

Booking form with the new confirmation modal.

Admin calendar with live client search and inline Add client button.

Settings page with arbitrary time windows.

Frontend pages section: one-click create for every shortcode.

My appointments view for logged-in users.



