Yatoon Appointment Booking for Salons & Spas

Description

Official source, copyright, and support

Yatoon Appointment Booking for Salons & Spas is an official Yatoon plugin. Official downloads, updates, licensing, and support are provided through https://yatoon.com.

Live demo: https://yatoon.com/bookingdemo/

The plugin code is distributed under the GPLv2 or later, as required for WordPress-compatible distribution. Copyright notices, author attribution, and the Yatoon brand identity must be preserved. Modified or forked versions must not claim to be the official Yatoon release, use Yatoon branding in a misleading way, or imply official support unless authorized by Yatoon.

For the safest installation, download Yatoon only from the official source and avoid unsupported redistributed copies.

Built by a salon owner who got tired of generic booking plugins.

After trying plugin after plugin designed for dentists or yoga studios, we gave up and built our own. Yatoon is the booking system we wish existed when we opened our salon – and now we’re sharing it with every beauty business owner who’s been through the same frustration.

No complicated setup. No $50/month SaaS fees. No features you’ll never use. Just a beautiful, fast booking experience your clients will love.

What makes Yatoon different

Most booking plugins were built for generic businesses. Yatoon was built for beauty. That means:

  • Clients can book multiple services in one visit – nails + pedicure + eyebrows, all in one checkout
  • Group appointments – your client books for herself and her friend, with separate services and staff for each person, in one go
  • A restaurant-style service menu with photos, pricing, and a Book button right on the page – not a separate popup or redirect
  • Staff profiles with real star ratings from verified clients – clients pick who they trust
  • A photo gallery that auto-scrolls your nail art – because your work sells itself
  • Tip / gratuity at checkout – preset percentages or custom amount, right in the booking flow

This is the stuff that actually matters in a salon. Everything else is just noise.

Booking experience your clients will love

  • Mobile-first – the entire booking flow is designed for phones first. Your clients book from the nail salon parking lot or their couch.
  • Multi-step flow with animated progress bar – clients always know where they are and what’s next
  • Real-time availability – live calendar that loads actual open slots from your schedule
  • «Any staff» option – clients who don’t have a preference get the first available technician automatically
  • Waitlist capture – when a time is fully booked, clients can join a list so you can follow up manually
  • «Text Us» button – if nothing is available, clients can reach you directly with one tap
  • Add to Calendar – Google, Apple, and Outlook with one click after booking
  • Self-service portal – clients reschedule or cancel on their own, without calling you

Everything you need to run your salon

For your clients:
* Beautiful booking form that matches your website
* Instant confirmation email with full appointment details
* Automated reminder email before their appointment
* One-tap star rating after their visit – no login required
* Secure link to reschedule or cancel anytime

For your team:
* Staff portal – technicians view their own schedule on their phone, no logins needed
* Staff profiles with photos, bios, and real star ratings
* Each staff member linked to only their services

For you:
* Dashboard with today’s bookings, monthly revenue, and no-show rate at a glance
* Client list with visit history, notes, and allergy information
* Closed dates manager – block holidays for everyone with one click
* Custom booking form fields – add questions like nail shape preference, allergy notes, or reference photos
* Fully customizable confirmation email template

Service display shortcodes

  • [yatoon_booking] – the full booking form. Put it on any page.
  • [yatoon_service_menu] – restaurant-style menu with photos, prices, and Book buttons. Clients browse and book without leaving the page.
  • [yatoon_catalog] – image card grid with category filters.
  • [yatoon_gallery] – auto-scrolling photo carousel of your work. Supports mobile swipe, lightbox, and infinite loop.
  • [yatoon_customer_portal] – client self-service: view upcoming bookings, reschedule, cancel.
  • [yatoon_staff_portal] – technician schedule viewer. Installable as a home screen app on iPhone and Android.

Optional Pro upgrade – for salons that are growing

The WordPress.org version runs in local WordPress booking mode. A separate Pro package is available outside WordPress.org for salons that need live third-party integrations and higher-volume workflows:

  • Square & Vagaro live sync – your Square Appointments or Vagaro availability syncs in real time. No double bookings, ever. Clients see exactly what’s open.
  • SMS reminders via Twilio – automated text messages before every appointment cut no-shows dramatically
  • Google Calendar two-way sync – your bookings appear in your personal calendar automatically
  • Unlimited staff members – no cap on technicians
  • Deposits & prepay – require a credit card or partial payment upfront for clients with a no-show history, or for high-value services
  • Waitlist auto-notify – email clients automatically when a matching slot opens
  • No-show tracking – automatically flag clients who miss appointments
  • Recurring bookings – clients set up weekly or bi-weekly repeats from the confirmation page
  • Service packages, memberships, coupon codes & gift cards – sell and redeem prepaid value from your site
  • Priority support – direct access to the team that built and runs this in a real salon

Get started in 5 minutes

  1. Install and activate the plugin
  2. The Setup Wizard launches automatically – follow 5 simple steps to configure your business info, hours, and booking page
  3. Add [yatoon_booking] to your booking page
  4. Add [yatoon_service_menu] to your services page
  5. Upload photos to your services and add [yatoon_gallery] to your homepage
  6. Preview the client booking experience at https://yatoon.com/bookingdemo/

That’s it. Your clients can start booking.

External Services and Privacy

The free booking flow runs locally in WordPress and does not require Square, Vagaro, Stripe, Twilio, or Google Calendar.

The plugin bundles the Freemius SDK to provide optional account, upgrade, and licensing screens. Freemius is only used when a site administrator chooses to connect, opt in, or use upgrade/licensing features. Freemius may receive site, user, and license information needed to provide those optional services.

  • Freemius: https://freemius.com – Terms: https://freemius.com/terms/
  • Freemius Privacy Policy: https://freemius.com/privacy/

Screenshots

  • Multi-step booking form with animated progress bar and service summary
  • Group appointment booking – services for Me and Guest side by side
  • Restaurant-style service menu with category filter tabs
  • Auto-scrolling photo gallery with dot navigation and lightbox
  • Staff profile cards with star ratings and Popular/Experienced badges
  • Admin dashboard with KPI cards, trend chart, and today’s timeline
  • Booking confirmation with Add to Calendar and rebooking nudge
  • Customer self-service portal – view, reschedule, or cancel

FAQ

Does this work with Square or Vagaro?

Real-time Square and Vagaro calendar sync is available in Yatoon Pro. The free version supports local availability management through the built-in calendar.

Can clients book for a group?

Yes. Yatoon supports group appointments – your client can book services for themselves and a guest in a single checkout, with separate service and staff selection for each person.

Can I add multiple services to one appointment?

Yes. Clients can add as many services as needed. The booking form shows a running total of time and price, and the calendar finds a start time that fits the full combined duration.

Is it mobile-friendly?

Yatoon is designed mobile-first. The booking form, service menu, and photo gallery all work smoothly on phones and tablets.

Does it send confirmation emails?

Yes. Automated confirmation emails go out immediately after booking, with a full appointment summary and a link to manage or reschedule.

Can clients leave a star rating without creating an account?

Yes. After their appointment, clients receive an email with a one-tap star rating link. No login or account required.

How do I display my service photos?

Upload photos to each service (Services > Edit > Gallery Images), then add [yatoon_gallery] to any page. The carousel auto-scrolls and supports swipe on mobile.

What languages is Yatoon available in?

Yatoon is translation-ready and compatible with WPML and Polylang. All strings are localized.

Reviews

Read all 1 review

Contributors & Developers

“Yatoon Appointment Booking for Salons & Spas” is open source software. The following people have contributed to this plugin.

Contributors

Changelog

2.9.0

  • New: Beauty-focused booking templates: Clean, Beauty, and Luxury.
  • New: Launch Center preview action and setup readiness checks.
  • New: Admin-only Test Booking Mode for local booking flow validation.
  • Improved: Slimmer default admin menu with optional advanced tools.
  • Improved: Mobile booking flow polish and refreshed starter salon data.
  • Improved: Front-end style templates now apply consistently across booking views.
  • Improved: Local booking race protection and cached next-opening lookups.
  • Improved: Added official live demo links for easier customer evaluation.

2.8.5

  • New: Services now include category management for renaming and deleting service categories.
  • New: Service category selection now supports existing-category dropdowns plus quick creation of new categories.
  • Improved: Add-on copying is now available directly from each service row.
  • Fix: Service-row Add Add-on can now create manual local add-ons even when no Square-backed source options exist.

2.8.4

  • Fix: Square and Vagaro no-slot responses now use a safer message that explains the business may be closed or fully booked.
  • Fix: Square mode can read Square location hours when available, while keeping Square as the source of bookable time slots.

2.8.3

  • Change: Removed separate plugin timezone controls; admin booking and calendar times now follow the WordPress site timezone.
  • Fix: Customer self-service cancellation now cancels the full multi-service appointment group and immediately removes it from staff calendars and availability.
  • Fix: Sidebar Confirm Booking button now performs the same checkout action as the main form button.
  • Fix: Sidebar Confirm Booking button now shows the same confirming state as the main form button after it is clicked.
  • Fix: Local multi-service bookings now normalize the whole group to the same auto-confirm status after creation.
  • Fix: Local business hours now calculate weekdays in the WordPress site timezone, preventing Sunday/Monday open and closed days from shifting.
  • Fix: Local-mode multi-service booking creation now uses the same staff-assignment search as availability display, preventing shown slots from failing at checkout due to a greedy Any staff assignment.
  • Fix: Removed old admin placeholder cancel handlers so cancelling a booking shows only the plugin’s cancellation dialog.

2.8.2

  • Fix: Local-mode multi-service availability now validates the entire cart before showing a time slot, including Me/guest timing, Any staff assignment, named staff, and existing bookings.

2.8.1

  • Fix: Local-mode Bookings admin list now displays local WordPress timezone correctly instead of converting local records as UTC.
  • Fix: Frontend appointment summary no longer appends the slot check text («Yes») to selected time labels.
  • Fix: Local-mode multi-service cart submission keeps one visible appointment as one booking request, preventing partial «appointment 2 failed» results.
  • Fix: Local-mode Any staff assignment now chooses a truly available eligible staff member at submit time.

2.8.0

This release brings the local-mode booking engine to full production quality. Salons that do not use Square or Vagaro now have a complete, reliable booking system 鈥?multi-service, multi-guest, conflict-safe 鈥?running entirely within WordPress with no external dependencies.

Local mode 鈥?now fully production-ready

  • New: Local mode now supports multi-service bookings. Clients can add Acrylic Fill, Pedicure, and Gel Manicure in a single checkout, and the engine calculates a start time that fits the entire combined duration.
  • New: Local mode now supports group / guest bookings. A client can book services for herself and a guest simultaneously; each guest’s services run in parallel from the same start time, and each person can have a different staff member.
  • New: Double-booking prevention in local mode. Before saving, the booking engine checks both the existing appointments database and the in-progress bookings within the same group submission, so no two services can be assigned to the same staff member at the same time 鈥?even in the same checkout session.
  • New: «Any staff» assignment in local mode. When a client selects Any Staff, the engine finds the first available technician for each service, respecting the service-staff assignment matrix and skipping staff who are already booked in that window.
  • New: Parallel vs. sequential timing in local mode. Services for the same guest are scheduled back-to-back (sequential); services for different guests in a group start at the same time (parallel) 鈥?matching the logic customers expect.
  • Fix: Confirmation emails now send correctly in local mode for both single and multi-service bookings, with all booked services listed in the email body.
  • Fix: Local mode bookings now trigger the admin notification and scheduled reminder / review-request emails correctly.
  • Fix: Booking start and end times are stored in the correct local WordPress timezone, so the admin list, staff portal, and confirmation emails all show the right time without UTC offset issues.

Booking confirmation page

  • Fix: «Manage Appointment» links on the confirmation page now show the correct service name for each button when multiple services are booked by the same person. Previously, all buttons showed «Manage appointment for Me» regardless of which appointment they linked to 鈥?making it impossible to tell them apart.
  • Fix: The AJAX response for local single-service and multi-service bookings now includes the service name, so the confirmation page can label each manage link correctly.
  • Fix: Manage booking URLs are now generated server-side for a more reliable confirmation experience.

Settings

  • New: Auto-Confirm Bookings toggle in Settings 鈫?Hours. When ON (default), new bookings are immediately set to Confirmed 鈥?the existing behavior. When OFF, bookings start as Pending and must be manually approved in the Bookings list. Useful for salons that review requests before committing.

2.7.8

  • New: Display Timezone setting under Business Identity 鈥?choose which timezone is used when showing appointment times in the admin booking list.

2.7.7

  • Fix: Bookings now complete successfully. In 2.7.6 the phone validation helpers (validateUSPhone, showPhoneError) were defined inside a jQuery document-ready handler, which placed them outside the class’s lexical scope. When the booking submit handler tried to call validateUSPhone, it threw a ReferenceError before the AJAX request was sent, leaving the button stuck on «Confirming your booking…». Helpers are now hoisted to the IIFE scope.

2.7.6

  • Improved: Refined the mobile booking flow with shorter step labels, cleaner sticky cart actions, and full service descriptions restored in the service detail view.
  • Improved: Pick Time now lets customers switch staff from the appointment summary and refreshes available times immediately.
  • Improved: Service detail images now display fully on mobile instead of cropping important content.
  • Tweak: Review & Book now shows selected staff as read-only so customers use Edit for appointment changes.

2.7.5

  • Tweak: Align Freemius initialization with the Menu & Online Ordering plugin so the pricing screen can render the Free and Pro plans consistently.

2.7.4

  • Fix: Send the plugin-list Upgrade to Pro link directly to Freemius checkout to avoid confusing free users with the internal pricing table.
  • Tweak: Align the Freemius SDK initialization with the WordPress.org compliant setup used by the menu plugin.

2.7.3

  • Fix: Added the missing Upgrade to Pro action link on the WordPress Plugins screen.

2.7.2

  • Fix: Removed placeholder image file from assets
  • Fix: Staff limit now shown in admin UI before hitting the cap (disabled button + upgrade notice)

2.7.1

  • Fix: Resolved Plugin Check warnings in class-yatoon-staff-portal.php (sanitization and unslash)
  • Updated: Plugin description

2.7.0

  • New: Setup Wizard – guided 5-step onboarding for new installs
  • Fix: Appointment reminder and review request emails now actually send (cron was not registered)
  • Fix: Confirmation email now lists all services when multiple services are booked
  • Fix: Timezone now reads from WordPress site settings instead of a hardcoded fallback
  • Fix: Added database columns for reminder/review tracking on existing installs

2.6.2

  • Improved: «Make Another Booking» button now clearly separated from action buttons with a divider line

2.6.1

  • Fix: Business phone number now correctly appears in confirmation emails

2.6.0

  • Fix: Booking confirmation no longer hangs – extended server timeout for booking submission
  • Fix: Business phone number now appears correctly in confirmation emails
  • Fix: «Make Another Booking» button now has proper spacing below the action buttons

2.5.4

  • Fix: {business_phone} variable now correctly shows the phone number in confirmation emails

2.5.3

  • Improved: «Make Another Booking» button spacing increased for a cleaner separation from the action buttons above

2.5.2

  • Fix: Booking confirmation no longer hangs indefinitely – PHP execution time limit extended to prevent silent timeouts during booking submission
  • Fix: «Make Another Booking» button now appears on its own line below the action buttons for a cleaner layout

2.5.1

  • Fix: Customer self-service cancel/reschedule (Manage Booking) now works in Square mode – token is generated for all booking platforms
  • Fix: Multi-service bookings now show correct service names in Staff Portal (booking_options populated on Square sync)
  • Fix: Appointment times display correctly across all browsers including Safari (Unix timestamp format)
  • Fix: Staff Portal day tabs now show text in correct color on all backgrounds
  • Fix: ZIP package folder name corrected to yatoon-booking-system for proper WordPress installation

2.5.0

  • New: Staff Portal PWA – technicians can view their weekly schedule and manage appointment status from their phone. Add [yatoon_staff_portal] to any page, set a 4-digit PIN per staff member under Settings > Staff, and share the link. Installable as a home screen app on iOS and Android.
  • New: Set PIN button in Staff admin table – securely hashed, with brute-force rate limiting (10 attempts per 5 minutes per IP)

2.4.0

  • New: Checkout Options – Gift Card and Coupon Code fields can now be individually toggled on/off in Settings > Checkout Options
  • New: Coupon Code now has an Apply button with real-time validation and discount preview at checkout
  • New: Multi-Location support – add unlimited locations under Yatoon Booking > Locations, each with its own address, description, phone, email, timezone, and accent color. Use [yatoon_booking location=»2″] or [yatoon_booking location=»downtown»] to scope a booking form to a specific location
  • Improved: Location banner shown on booking form when a specific location is selected via shortcode
  • Note: Pro users can assign a separate Square Location ID per location for independent live availability sync

2.3.6

  • Fix: Removed «Checking availability…» indicator on service cards – availability is shown at the time selection step instead

2.3.5

  • New: Multi-person booking gets a cleaner, more intuitive interface – each person’s services are clearly grouped and easier to manage
  • Improved: No-availability message now shows the specific service name (single service) or total appointment count (multiple services) for clearer feedback
  • Improved: Service menu category tabs now sit closer to the first section heading for a tighter, more polished layout
  • Removed: «Checking availability…» indicator on service cards – availability is shown at the time selection step instead
  • Fix: Duplicate service modal – «Dismiss» button now closes the popup and keeps the client on the service menu instead of jumping to the time selection step
  • Fix: UP/DOWN reorder buttons now only appear when the same person has 2 or more services

2.2.0

  • New: Apple-style service cards with hero image, rounded corners, soft shadow, and Book pill button
  • New: Star rating and review count on each service card
  • New: «Next Available» hint on service cards with green pulsing dot
  • New: Week/Month calendar in local mode replaces native date picker
  • Improved: Service card typography, padding, and selected-state ring

2.1.2

  • New: International phone number support with country flag picker
  • New: Email OTP and SMS OTP verification before booking confirmation
  • New: Phone number optional toggle

2.1.0

  • New: [yatoon_gallery] infinite-loop auto-scrolling photo carousel
  • New: [yatoon_catalog] service image card grid with popup booking
  • New: Custom booking form fields with drag-and-drop builder
  • New: Tip / gratuity at checkout
  • New: Star rating collection and Reviews admin page
  • New: Recurring appointments
  • New: Closed Dates manager
  • New: Redesigned dashboard with KPI cards and trend chart

2.0.0

  • Initial public release