Sniza Appointment Scheduler

Description

Sniza Appointment Scheduler is a self-hosted booking system for sites that sell instructor time in prepaid blocks. Students draw down minutes from packages assigned by an admin or purchased through WooCommerce, and book appointments against per-instructor availability.

Features:

  • Per-instructor weekly availability (timeblocks) and ad-hoc time off
  • Configurable package definitions in 30 minute increments up to 4 hours
  • Admin-assigned prepaid packages with optional expiration date and notes
  • Optional WooCommerce integration: mark packages as purchasable and auto-grant minutes when an order completes
  • Frontend month calendar with day-level availability indicators
  • Weekly time-slot view with status colours (available, booked, time off, blocked by another user, too soon, current)
  • Mobile single-day scheduler with mini calendar
  • Per-user appointment booking and cancellation, with a configurable cancellation cutoff
  • “My Lessons” view with AJAX-powered Future / Past filter and in-place cancellation
  • Admin Appointments screen with instructor and date-range filters (defaults to the next 3 days, hides cancelled lessons)
  • Configurable maximum appointment length (admin setting)
  • Sample-data tool for seeding and wiping a fixed demo dataset
  • Timezone-aware: each instructor has their own timezone, and end users see times in the site timezone

Available shortcodes:

  • [sniza_scheduler] — booking UI (month calendar + week grid)
  • [sniza_packages] — store front for purchasable packages (requires WooCommerce)
  • [sniza_my_lessons] — logged-in user’s upcoming and past lessons with cancel controls

Screenshots

  • Admin area where users can select multiple themes and even custom coloring of how appointment scheduler look on frontend
  • Monthly availability calendar with the weekly slot grid in color theme 1
  • Monthly availability calendar with the weekly slot grid in color theme 2
  • Monthly availability calendar with the weekly slot grid in color theme 3
  • Packages purchase page with one package available for purchase for now
  • Confirmation before scheduling an appointment
  • My Lessons page with AJAX-powered Future / Past filter.
  • Admin creating packages and assigning woocommerce products to the packages
  • Admin screen for managing instructors, timeblocks, packages and assignments.

Installation

  1. Upload the sniza-scheduler folder to /wp-content/plugins/.
  2. Activate the plugin through the Plugins screen in WordPress.
  3. Open Sniza Appointment Scheduler in the admin sidebar and add at least one instructor, one weekly timeblock, and one package definition.
  4. Either assign a package to a logged-in user from Assign Packages, or — with WooCommerce active — mark a package as purchasable, link it to a product, and let users buy it via [sniza_packages].
  5. Place the [sniza_scheduler] shortcode on any page to render the booking UI, and [sniza_my_lessons] on another page so users can see and cancel their lessons.

FAQ

Does the plugin send data to any external service?

No. All data stays in your WordPress database. The plugin makes no outbound HTTP calls.

What happens when I delete the plugin?

The plugin’s tables and options are removed via uninstall.php. Deactivation alone leaves the data in place.

Can guests book appointments?

No. Booking requires a logged-in WordPress user with an active package assignment.

Is WooCommerce required?

No. WooCommerce is optional. Without it, admins assign packages manually via Assign Packages. With WooCommerce active, packages flagged as purchasable can be sold through a linked product and minutes are granted automatically when the order completes.

Can users cancel their own lessons?

Yes, from the [sniza_my_lessons] page, as long as the start time is at least the configured cancellation cutoff in the future (8 hours by default). Cancelling restores the unused minutes to the source package.

Reviews

There are no reviews for this plugin.

Contributors & Developers

“Sniza Appointment Scheduler” is open source software. The following people have contributed to this plugin.

Contributors