Title: Qaiyo Smart Appointment
Author: qaiyo
Published: <strong>Август 17, 2026-ж.</strong>
Last modified: Сентябрь 28, 2026-ж.

---

Плагиндерди издөө

![](https://ps.w.org/qaiyo-smart-appointment/assets/icon-256x256.png?rev=3656630)

# Qaiyo Smart Appointment

 Автору [qaiyo](https://profiles.wordpress.org/qaiyo/)

[Жүктөө](https://downloads.wordpress.org/plugin/qaiyo-smart-appointment.1.3.0.zip)

 * [Кенен маалымат](https://ky.wordpress.org/plugins/qaiyo-smart-appointment/#description)
 * [Сын-пикирлер](https://ky.wordpress.org/plugins/qaiyo-smart-appointment/#reviews)
 *  [Орнотуу](https://ky.wordpress.org/plugins/qaiyo-smart-appointment/#installation)
 * [Development](https://ky.wordpress.org/plugins/qaiyo-smart-appointment/#developers)

 [Колдоо](https://wordpress.org/support/plugin/qaiyo-smart-appointment/)

## Сүрөттөө

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
 * 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
 * “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
 * 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](https://qaiyo-plugins.com/qaiyo-smart-appointment/).

### 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](https://wordpress.org/about/privacy/),

[privacy policy](https://wordpress.org/about/privacy/).

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.

## Орнотуу

 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.KG

### 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).

### 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 use this with my page builder?

Yes. The booking form, the availability calendar and the “Upcoming” card 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](https://qaiyo-plugins.com/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.

## Сын-пикирлер

There are no reviews for this plugin.

## Contributors & Developers

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

Мүчөлөрү

 *   [ qaiyo ](https://profiles.wordpress.org/qaiyo/)

“Qaiyo Smart Appointment” has been translated into 2 locales. Thank you to [the translators](https://translate.wordpress.org/projects/wp-plugins/qaiyo-smart-appointment/contributors)
for their contributions.

[Translate “Qaiyo Smart Appointment” into your language.](https://translate.wordpress.org/projects/wp-plugins/qaiyo-smart-appointment)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/qaiyo-smart-appointment/),
check out the [SVN repository](https://plugins.svn.wordpress.org/qaiyo-smart-appointment/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/qaiyo-smart-appointment/)
by [RSS](https://plugins.trac.wordpress.org/log/qaiyo-smart-appointment/?limit=100&mode=stop_on_copy&format=rss).

## Өзгөртүүлөр

#### 1.3.0

 * New: the “Upcoming” agenda card — `[qsab_upcoming]` shortcode and a widget in
   Gutenberg, Elementor, Bricks, Breakdance and Oxygen. Today’s date and booking
   count, then the next bookings with their service colour and time; never who booked.
 * Fixed: two customers submitting the same slot at the same moment could both get
   it. A booking is now re-checked the moment it is stored, and approvals, status
   changes and reminders are all compare-and-set, so a double click or two overlapping
   requests act exactly once.
 * Fixed: following an Approve or Decline link from the admin email acted on the
   booking straight away — mail scanners that open every link could approve and 
   then decline a request before anyone read it. The link now shows a confirmation
   screen, like the customer cancel link.
 * Fixed: saving one Settings form (booking rules, say) switched off the options
   of the others, such as FluentCRM sync. Each form now only changes its own settings.
 * Fixed: emails, the admin list and the customer screens showed the buffer around
   a booking as part of its time. They now show when the service itself runs.
 * Fixed: an unpaid WooCommerce order held its time slot forever. It is now cancelled
   by the store’s own “hold stock” timeout, which releases the slot; and a paid 
   booking is re-checked against the calendar before it is confirmed.
 * Fixed: FluentCRM re-subscribed customers who had unsubscribed when they booked
   again. An existing contact keeps its status.
 * Fixed: the appointments list stopped at 200 bookings. It is now paged.
 * Fixed: the availability calendar showed a day off as “Fully booked”; it now reads“
   Closed”.
 * Changed: the widgets sit in their own “Qaiyo Smart Appointment” group in Gutenberg,
   Elementor, Bricks, Breakdance and Oxygen (it used to read just “Qaiyo”, and the
   blocks sat under Widgets).
 * New: a per-connection limit on the booking form, on top of the spam trap.
 * New: bookings are included in WordPress’s Export / Erase Personal Data tools,
   with suggested privacy-policy text.
 * Security: stricter output filtering for everything the page-builder widgets print,
   and error messages are no longer passed through the URL.
 * Requires WordPress 6.2 or later.

#### 1.2.0

#### 1.2.0

 * New: a “Today’s appointments” card for the Qaiyo ecosystem dashboard widget, 
   shown when the free Qaiyo Admin Booster plugin is also active. Shows today’s 
   booking count and the time of the next one; nothing appears if Admin Booster 
   is not installed.
 * New extension point: `qsab_ecosystem_card_body`, which the Pro add-on uses to
   replace that card’s body with the next three bookings and a link to the calendar—
   see the Pro changelog.

#### 1.1.0

 * Native page-builder widgets: the booking form and the availability calendar are
   now available as widgets in Elementor, Bricks, Breakdance and Oxygen (6.x), on
   top of the existing shortcodes. One shared definition feeds every builder, so
   a setting behaves identically everywhere and an add-on can contribute a control
   to all of them at once through the new `qsab_widget_fields` filter.
 * Fixed: the Gutenberg block never actually worked — it was registered on the PHP
   side only, with no editor script, so it never appeared in the block inserter 
   despite being documented. It now registers properly, with real inspector controls(
   built from the same shared definition as the other builders) and a live preview.
 * A booking form can now be given its own layout per placement, overriding the 
   site-wide default set in Settings.
 * Hardened CSS output: branding values (accent colour, font) and per-service colour
   swatches are now validated for the CSS context specifically, rather than relying
   on HTML escaping, which cannot stop a value from breaking out of a stylesheet
   declaration.
 * Tested up to WordPress 7.1.

#### 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.
 * Native page-builder widgets: the booking form and the availability calendar are
   available as Gutenberg blocks and as native widgets in Elementor, Bricks, Breakdance
   and Oxygen, each with the same settings — which service to preselect, which staff
   member, how many days to show. One shared definition feeds every builder, so 
   they cannot drift apart, and an add-on can contribute a setting to all of them
   at once through the `qsab_widget_fields` filter.
 * A booking form can be given its own layout per placement rather than following
   the site-wide setting.
 * 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.

## Мета

 *  Нуска **1.3.0**
 *  Акыркы жаңыртуу **7 күн мурун**
 *  Активдүү орнотуулар **Fewer than 10**
 *  WordPress нускасы ** 6.2 же андан жогору **
 *  Tested up to **7.1.2**
 *  PHP нускасы ** 7.4 же андан жогору **
 *  Тилдер
 * [English (US)](https://wordpress.org/plugins/qaiyo-smart-appointment/), [Russian](https://ru.wordpress.org/plugins/qaiyo-smart-appointment/)
   жана [Spanish (Spain)](https://es.wordpress.org/plugins/qaiyo-smart-appointment/).
 *  [Translate into your language](https://translate.wordpress.org/projects/wp-plugins/qaiyo-smart-appointment)
 * Тег:
 * [appointments](https://ky.wordpress.org/plugins/tags/appointments/)[booking](https://ky.wordpress.org/plugins/tags/booking/)
   [calendar](https://ky.wordpress.org/plugins/tags/calendar/)[fluentcrm](https://ky.wordpress.org/plugins/tags/fluentcrm/)
   [scheduling](https://ky.wordpress.org/plugins/tags/scheduling/)
 *  [Advanced View](https://ky.wordpress.org/plugins/qaiyo-smart-appointment/advanced/)

## Рейтинг

Азырынча эч кандай сын-пикир жок.

[Your review](https://wordpress.org/support/plugin/qaiyo-smart-appointment/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/qaiyo-smart-appointment/reviews/)

## Мүчөлөрү

 *   [ qaiyo ](https://profiles.wordpress.org/qaiyo/)

## Колдоо

Комментарийлер барбы? Жардам керекпи?

 [Колдоо форумун көрүү](https://wordpress.org/support/plugin/qaiyo-smart-appointment/)