Qaiyo Smart Appointment

Description

Qaiyo Smart Appointment is a clean, fast scheduling plugin for service businesses — salons, clinics, coaches, consultants, studios and freelancers.

Its standout feature is fluid slot allocation. Most booking plugins slice the day into a fixed grid for one chosen duration. Qaiyo instead works on the open gaps around existing appointments and fits each requested service into whatever space is left. Book a 2-hour service, then a 1-hour one, and the remaining time stays fully bookable for any mix of shorter or longer services that still fit — packed dynamically, never wasted.

Free features

  • Fluid, gap-based slot engine (mixed durations in the same day)
  • Unlimited services, staff members and bookings — no caps of any kind
  • Step-by-step booking wizard (shortcode [qsab_booking] + Gutenberg block)
  • “Anyone available” or specific staff selection
  • Per-service duration, price, colour and buffer times
  • Fixed mode too — classic back-to-back time bands, if you prefer them, set globally or per service
  • Quote requests — a booking mode that reserves no time at all: the customer names a preferred day and part of day and asks for a price, so an enquiry never takes a slot away from a real booking and two enquiries never clash
  • Online payments — require payment before confirming a service, and the customer pays on a hosted checkout before the booking is confirmed. WooCommerce is the built-in provider, so you keep whatever gateways your shop already has (card, PayPal, bank transfer, cash on arrival)
  • Working hours per staff member, with split shifts (e.g. a lunch break), falling back to your global opening hours
  • Days off / vacation blocking
  • Soft hold — a request can leave the time open until you approve it, so an enquiry never locks a resource; first approval wins
  • One-click Approve / Decline buttons right inside the admin notification email
  • Editable emails — five messages (request received, confirmed, cancelled, completed, reminder) plus the admin alert, each with its own on/off switch and its own wording, written with merge tags like {customer_name} and {when}
  • Appointment reminders — an automatic email a set number of hours before a confirmed booking, sent once and only once
  • Public availability calendar — [qsab_availability] shortcode and block showing free and fully-booked days at a glance, with no customer details on the page
  • Spam trap on the booking form, so bots cannot fill your calendar with junk requests
  • One-click confirm / cancel / complete in the admin, and permanent delete (single or in bulk) for clearing out test data
  • Customer self-cancellation links
  • Settings export / import (JSON)
  • FluentCRM integration — add booking customers to your lists & tags automatically
  • 11 built-in languages (EN, HU, DE, FR, ES, JA, PT, IT, RU, TR, PL)

Pro features

  • Multiple locations, each with its own services, staff and hours
  • Customer booking portal — a page where customers look up and cancel all their upcoming bookings, with no account to create
  • Stripe and PayPal connected directly, for sites with no WooCommerce
  • Deposits — collect a percentage or a fixed amount up front instead of the full price
  • Two-way Google / Outlook / iCloud calendar sync
  • SMS & WhatsApp notifications
  • Five more booking modes: group sessions for classes and workshops, hourly and multi-day rentals where the customer picks the length, an arrival-order queue, and recurring series booked in one go
  • Waiting list with automatic notify-on-free
  • Per-staff date-specific days off and a staff login dashboard
  • Custom branding (colour, font, logo) on the booking form
  • Three more booking form layouts on top of the free wizard
  • Zoom / Google Meet links, Zapier / webhooks, reporting and coupons

Learn more at qaiyo-plugins.com.

External services

This plugin makes one outbound request, and only from the WordPress admin.

WordPress.org plugin directory API — used by the “Discover Qaiyo” screen
(Smart Booking Discover Qaiyo) to list the plugin author’s other free plugins so
you can install one without leaving your site.

  • What it is used for: fetching the public plugin listings (name, description,
    icon, ratings, install count) for author “qaiyo”.
  • When the request happens: only when a logged-in administrator opens that screen,
    and at most once every 12 hours — the response is cached in a transient.
  • What is sent: the query itself (the author name and the fields requested). This
    goes through WordPress’s own plugins_api() function, which is the same call the
    built-in Plugins Add New screen makes. No personal data, no site data and
    nothing about your visitors or bookings is transmitted.
  • Endpoint: https://api.wordpress.org/plugins/info/1.2/

This service is provided by WordPress.org: terms of service,
privacy policy.

The booking form itself makes no external requests. Booking data stays in your
database, and notification emails are sent with wp_mail() through whatever your
site is already configured to use.

Blocks

This plugin provides 2 blocks.

  • Qaiyo Smart Appointment
  • Qaiyo Availability Calendar

Installation

  1. Upload the plugin to /wp-content/plugins/ and activate it.
  2. Go to Smart Booking Services and add your services.
  3. (Optional) Add staff under Smart Booking Staff.
  4. Set your opening hours under Smart Booking Settings.
  5. Add the booking form to any page with the [qsab_booking] shortcode or the block.

FAQ

What makes the slot engine “fluid”?

It computes availability from the real free gaps around existing bookings, then fits the chosen service duration into them on a configurable step grid — instead of pre-dividing the day into fixed equal slots. Mixed-length services share the same day efficiently.

Does it work without staff?

Yes. With no staff defined, bookings run on the global working hours automatically.

Does it require WooCommerce?

No, the plugin works standalone without it. A payment provider is only needed if you turn on “Require payment” for a service, and WooCommerce is the one this plugin ships with — activate it and the option appears. (Pro adds Stripe and PayPal as direct alternatives, for sites that do not want a shop.) Nothing changes for services that don’t require payment.

Can customers ask for a price without booking a time?

Yes. Set the service’s booking mode to quote request. The customer picks a day and whether morning, afternoon or evening suits them, and nothing is reserved — the enquiry never blocks a real booking, and two enquiries for the same morning never clash. Answer it, then book the agreed time normally.

Can I change what the emails say, or switch some of them off?

Yes. Under Smart Booking Settings Emails every message has its own on/off switch and its own editable subject and wording. Write them with merge tags — {customer_name}, {service}, {when}, {price}, {cancel_link} and more — and clear a field to go back to the built-in text.

How do reminders work?

Turn the reminder email on under Settings Emails and set how many hours before the booking it should go out. A background sweep runs hourly and sends the reminder to every confirmed booking that has entered the window, marking each one so it can never be sent twice. Pending bookings are skipped, because there is nothing confirmed to remind anyone about yet.

Can I show my availability on a page without the booking form?

Yes, with the [qsab_availability] shortcode or the matching block. It shows which days and times are still open and which are fully booked or closed. It never shows who booked what — only free and busy, exactly what the booking form itself would reveal.

Attributes: service (a service id, defaults to your first active service), staff (a staff id, defaults to anyone) and days (how many days to show, default 7).

Someone is spamming my booking form. What can I do?

Two things, both built in. The form already carries a hidden spam trap that silently refuses automated submissions. And under Settings Booking rules, turning off auto-confirm and turning on Requests do not reserve the time (soft hold) means a pending request no longer blocks the slot for anyone else — so even a flood of junk requests cannot take your calendar out of action. You approve the real ones, and the first approval wins.

What happens to my data if I delete the plugin?

Nothing is removed by default. Deactivating never touches your data, and deleting the plugin from the Plugins screen keeps every service, staff member, booking and setting in place — so reinstalling, moving hosts or troubleshooting costs you nothing.

If you would rather leave no trace, tick Delete all plugin data when the plugin is deleted under Smart Booking Settings Data on uninstall. With that armed, deleting the plugin drops its database tables and options for good. There is no undo, so export your settings and back up the database first.

Can customers rent something by the hour or by the day, or book a class?

Those are Pro booking modes. Hourly and multi-day rentals let the customer choose the length; group sessions let several people share one fixed time.

Reviews

There are no reviews for this plugin.

Contributors & Developers

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

Contributors

“Qaiyo Smart Appointment” has been translated into 1 locale. Thank you to the translators for their contributions.

Translate “Qaiyo Smart Appointment” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.

Changelog

1.0.0

  • Initial release.
  • Fluid, gap-based slot engine, plus a fixed mode with classic back-to-back bands.
  • Booking wizard (shortcode [qsab_booking] + block), with unlimited services, staff members and bookings.
  • Working hours per staff member, including split shifts — a second block on a day makes the gap between them unbookable. Anyone without their own hours works the site-wide default.
  • Soft hold: pending requests can leave the time slot open for everyone else until you approve one — first approval wins. Built for rental and enquiry-style bookings.
  • One-click Approve / Decline buttons in the admin notification email, signed so no login is needed and nobody else can use them.
  • Quote requests: a booking mode that reserves nothing. The customer names a preferred day and part of day, so an enquiry never blocks a real booking and two enquiries never collide.
  • Per-service booking mode: any service can override the site-wide fluid/fixed setting, so a consultation and an enquiry can behave differently on the same site.
  • Editable emails: six messages (request received, confirmed, cancelled, completed, reminder, plus the admin alert), each with its own on/off switch and its own subject and wording, written with merge tags. Blank fields fall back to the built-in text, so clearing a field restores it rather than sending an empty email.
  • Appointment reminders: an hourly sweep emails every confirmed booking a configurable number of hours before it starts, flagging each row so a reminder can never go out twice however often WP-Cron fires.
  • Public availability calendar: the [qsab_availability] shortcode and matching block show free, fully-booked and closed days without putting any customer detail on the page.
  • Spam trap on the booking form — an off-screen field that only an automated submission would fill in.
  • Customer cancellation links ask before they act: following one shows the booking and a confirm button, so a mail client or scanner prefetching the URL cannot cancel anything.
  • Permanent delete for bookings, one at a time or in bulk, for clearing test data out before handing a site over.
  • Online payments: a service can require payment before it is confirmed. The built-in provider is WooCommerce, which creates an order for the price and sends the customer to your checkout; paying it confirms the booking, and a cancelled or failed order releases the time slot.
  • Uninstall keeps your data by default. Deleting the plugin only drops its tables and options when “Delete all plugin data” has been ticked under Settings first.
  • Configurable currency symbol and position for displayed prices.
  • Days off / vacation blocking, and settings export / import.
  • FluentCRM sync, and 11 built-in languages.
  • Values reaching a stylesheet are validated for the CSS context rather than HTML-escaped, so a branding token from the qsab_branding filter cannot inject CSS.
  • Extension points for add-ons: qsab_booking_modes / qsab_mode_slots register a booking mode, qsab_service_form_fields / qsab_service_save_data add its per-service settings, qsab_booking_slot finishes the booking off, qsab_payment_providers / qsab_payment_url register a payment provider, qsab_email_types registers a notification, and qsab_appointment_deleted lets an add-on clean up after a deletion. The booking form dispatches qsab:slots-rendered, qsab:slot-selected, qsab:summary and qsab:collect so an add-on can extend it without replacing any markup.