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
PricingFree downloadThe WordPress.org download is free. Pro versions, add-ons or external services may cost extra.
CompatibilityRequires WordPress 6.2 and PHP 7.4.
SourceWordPress plugins · Oct 28, 2026
01 / Source details
Aboutthistool.
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, placed with a shortcode [qsab_booking] , a Gutenberg block, or a native widget in Elementor, Bricks, Breakdance or Oxygen — the same settings in every one
“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 — each range can carry a name (“Vacation”, “Public holiday”) that your visitors see
Opening hours widget — [qsab_hours] shortcode, block and page-builder widget: your weekly hours with today highlighted, whether you are open right now and until when, and a notice for coming days off. It stays correct on cached pages
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
Add to calendar — the confirmation and the reminder carry a calendar file (.ics) for Apple Calendar, Outlook and the rest, plus an “Add to Google Calendar” link; the booking form offers both the moment a booking is confirmed. The entry shows the service and its time, never the customer
Public availability calendar — [qsab_availability] shortcode and block showing free and fully-booked days at a glance, with no customer details on the page
“Upcoming” agenda card — [qsab_upcoming] shortcode and page-builder widget: today’s date, how many bookings today has, and the next few bookings with their service colour and time. It shows what runs and when, never who booked, so it is safe on a public page; it can also be kept to logged-in users for a team page
Two customers cannot take the same time — a booking is re-checked the moment it is stored, so simultaneous submissions for one slot never both succeed
Customers always see the time their service starts, not the buffer reserved around it
Personal data tools — bookings appear in WordPress’s own Export / Erase Personal Data screens, and the suggested privacy-policy text lists what is stored
Spam trap and a per-connection limit 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
Qaiyo ecosystem dashboard card — if you also run Qaiyo Admin Booster, a “Today’s appointments” card on your WordPress dashboard shows today’s booking count and the next appointment’s time
Live status in your email signature — a small image (“Open now · until 17:00”) for an HTML signature, drawn at the moment the email is opened. Off until you switch it on
Accessible to WCAG 2.2 AA (keyboard, screen readers, focus, contrast, reduced motion) and ready for right-to-left languages
Translated into Hungarian, German, French, Spanish, Japanese, Portuguese, Italian, Russian, Turkish and Polish
Pro features
The Pro add-on is a separate plugin. Everything above keeps working without it.
Stripe and PayPal connected directly, for sites with no shop — the customer pays on the provider’s own hosted page, and the booking confirms from the webhook, from the customer’s return, or from an hourly check, whichever comes first
Deposits — collect a percentage or a fixed amount up front instead of the full price
Five more booking modes: group sessions for classes, hourly and multi-day rentals where the customer picks the length, an arrival-order queue, and recurring series booked (and paid for) in one go
Customer booking portal — customers look up and cancel their upcoming bookings through a short-lived emailed link, with no account to create
Waiting list — customers join a full day and are emailed, one at a time, when a slot frees up
Multiple locations, each with its own opening hours; the customer picks one on the form
Staff days off — take one person out for a holiday or a sick day while the rest of the team stays bookable
Daily breaks and per-service booking windows
Custom branding (colour, font, logo) and three more booking-form layouts
A richer “Today’s appointments” dashboard card (with Admin Booster)
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.
This service is provided by WordPress.org: terms of service , privacy policy .
Google Calendar — a link, not a connection. With “Add to calendar” on (Settings → Emails, on by default), confirmation and reminder emails and the booking form’s success screen contain an “Add to Google Calendar” link. The plugin itself never contacts Google.
What it is used for: letting a customer add their own booking to their own Google Calendar.
When anything is sent: only if the customer follows the link. Their browser then opens Google Calendar’s new-event page.
What is sent: what the link itself holds — the service name, your site’s name, the staff member’s name, the start and end time and, with the Pro add-on, the location. Nothing about the customer is in it.
This service is provided by Google: terms of service , privacy policy .
The calendar file (.ics) involves no service at all: it is attached to the email and generated in the booking response.
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.
02 / Source details
Gettingstarted.
01Upload the plugin to /wp-content/plugins/ and activate it.
02Go to Smart Booking → Services and add your services.
03(Optional) Add staff under Smart Booking → Staff .
04Set your opening hours under Smart Booking → Settings .
05Add the booking form to any page with the [qsab_booking] shortcode or the block.
03 / Source details
Frequently asked questions.
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 customers get a booking into their calendar?
Two ways, both automatic once a booking is confirmed. The confirmation and reminder emails have a calendar file attached ( appointment.ics ) — opening it adds the appointment to Apple Calendar, Outlook or any other calendar app — and an “Add to Google Calendar” link. The booking form shows the same two options on its success screen when a booking is confirmed on the spot.
The calendar entry holds the service, its time and the staff member. It never names the customer and never contains the cancel link, because calendar entries get shared and synced. A request that is still waiting for your approval gets neither, and nor does a quote request. If you rewrote an email, add the {calendar_link} tag where the link should go; the file is attached either way. Switch the whole thing off under Settings → Emails → Add to calendar.
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).
Can I show today’s schedule on a page, like a reception screen?
Yes, with the [qsab_upcoming] shortcode or the “Qaiyo Upcoming” widget in your page builder. It shows today’s date and how many bookings today has, then the next confirmed bookings — the service, its colour and its time. It never shows who booked, so it is safe on a public page.
Attributes: title (defaults to “Upcoming” in the visitor’s language), count (1–10, default 3), service and staff (ids, to show one of them only), show_date ( 0 hides the date tile), theme ( auto , light or dark ) and audience ( logged_in shows it to logged-in users only).
Can I show my opening hours and whether I am open right now?
Yes, with the [qsab_hours] shortcode or the “Qaiyo Opening Hours” widget. It shows your weekly hours (from Settings → Working hours, lunch breaks included) with today highlighted, a line saying whether you are open at this moment and when you open next, and a notice for any day off coming up — give a range a name under Settings → Days off, such as “Vacation”, and that is what your visitors read.
Pages are often cached, and “open now” is only true for a moment, so the widget carries the next two weeks with it and keeps itself current in the visitor’s browser.
Attributes: title , show_title ( 0 hides the heading), staff (one person’s hours), layout ( box , the default, or full for the full width of the column — in a page builder the width you give the element wins), show_status , show_week ( 0 hides either part), notice_days (how many days ahead to announce a day off, default 14; 0 only while it lasts) and theme ( auto , light or dark ).
Can my email signature show whether I am available?
Yes. Switch on the status image under Smart Booking → Email signature and copy the HTML it gives you into your signature. It is a small image — “Open now · until 17:00”, “Vacation · Opens Monday at 09:00” — that your site draws at the moment a reader’s mail program loads it, from the same hours and days off as the opening hours widget, and it links to the page you choose.
Gmail, Outlook and most mail programs load it every time the email is opened. Apple Mail with Mail Privacy Protection loads images in advance, so there it can show the status of when the message arrived; and some programs only show images after the reader allows them. The address is public (anyone who receives your email can open it) and shows nothing your opening hours do not already show. Drawing it needs PHP’s GD extension with FreeType, which most hosts have; the settings card tells you if yours does not.
Can I change “Open now” on the status image?
Yes: under Email signature, Text while open and Text while closed — “Available” and “Away”, say. The time after it stays, and a day off still shows its own name.
Can I call the break “Lunch break”?
With the Pro add-on, yes: each weekday’s daily break under Availability has a name field, and the opening hours widget shows “Lunch break: 12:00 – 13:00”. Without a name it reads “Break”.
Does the plugin put a link to Qaiyo on my site?
Not unless you ask it to. A small “Booking by Qaiyo” line under the booking form is off by default; you can switch it on under Settings → Booking rules.
Can I use this with my page builder?
Yes. The booking form, the availability calendar, the “Upcoming” card and the opening hours are available as native widgets in Gutenberg, Elementor, Bricks, Breakdance and Oxygen, alongside the shortcodes. Each one offers the same settings, and each renders exactly what the front end renders — no separate preview to drift out of date.
What is the “Today’s appointments” card on my dashboard?
If you also run the free Qaiyo Admin Booster plugin, it collects a summary card from every installed Qaiyo plugin into one “Qaiyo ecosystem” widget on your WordPress dashboard. This plugin’s card shows today’s booking count and the time of the next one. It costs nothing extra and needs no setup — it simply appears once Admin Booster is active. Without Admin Booster, nothing changes; this plugin does not add a card of its own to the dashboard.
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.
How does the plugin handle personal data?
A booking stores the name, email address and phone number the customer gives, the service and time, and any note. Nothing is sent anywhere else. Bookings are included in WordPress’s own Tools → Export Personal Data and Erase Personal Data screens — erasing anonymises a booking rather than deleting it, so the calendar still knows the time was taken — and a suggested paragraph for your privacy policy is added under Settings → Privacy.
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.
Website LLMs.txt and LLMs-Full.txt Generator is an LLMs.txt generator and llms-full.txt generator for WordPress. It helps site owners generate, manage, preview, validate, and serve AI discovery files from published public content. Use it to create structured /llms.txt and optional /llms-full.txt end
EngageDock AI is a customizable floating contact widget for WordPress websites that want more leads and faster visitor communication. It helps small businesses turn website traffic into calls, texts, emails, and callback requests from one clean contact panel. Key Features: Click-to-Call – One tap ca
Altify AI is an auto ALT text and AI ALT text plugin for WordPress images. It helps generate descriptive image ALT text for accessibility and image SEO. Use bulk image ALT text tools for your Media Library, generate featured image ALT text automatically, and scale WooCommerce image ALT updates with
The Accepted Payment Methods plugin is a straightforward, lightweight solution that enhances your website by displaying visually appealing icons of the payment methods you accept. This plugin is ideal for a variety of websites, including e-commerce platforms, service-oriented websites, and informati