{"id":390262,"date":"2026-10-28T18:04:31","date_gmt":"2026-10-28T18:04:31","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/salon-booking-by-gvw-web-studio\/"},"modified":"2026-10-28T18:03:59","modified_gmt":"2026-10-28T18:03:59","slug":"gvw-appointment-scheduler","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/gvw-appointment-scheduler\/","author":15157329,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.1","stable_tag":"1.0.1","tested":"7.1.4","requires":"6.2","requires_php":"7.4","requires_plugins":null,"header_name":"GVW Appointment Scheduler","header_author":"GVW Web Studio","header_description":"Advanced appointment booking for salons, spas, barbers and beauty studios. Services & add-ons, staff schedules, smart availability, multi-step booking wizard, admin calendar, email reminders and customer self-service.","assets_banners_color":"","last_updated":"2026-10-28 18:03:59","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/gvwwebstudio.co.uk\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":63,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.1":{"tag":"1.0.1","author":"munayem","date":"2026-10-28 18:03:59","revision":3771316}},"upgrade_notice":[],"ratings":[],"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":{"glowbook\/booking-form":{"name":"glowbook\/booking-form","title":"Salon Booking Form"}},"tagged_versions":["1.0.1"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[8132,11521,269,11523,11522],"plugin_category":[40],"plugin_contributors":[289302],"plugin_business_model":[],"class_list":["post-390262","plugin","type-plugin","status-publish","hentry","plugin_tags-appointments","plugin_tags-beauty","plugin_tags-booking","plugin_tags-salon","plugin_tags-spa","plugin_category-calendar-and-events","plugin_contributors-munayem","plugin_committers-munayem"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/gvw-appointment-scheduler.svg","icon_2x":false,"generated":true},"screenshots":[],"raw_content":"<!--section=description-->\n<p>GVW Appointment Scheduler gives your clients a fast, mobile-friendly booking wizard and gives your team a proper salon calendar.<\/p>\n\n<p><strong>For clients<\/strong><\/p>\n\n<ul>\n<li>Four-step wizard: service \u2192 add-ons &amp; specialist \u2192 date &amp; time \u2192 details<\/li>\n<li>Search and category tabs for long treatment menus<\/li>\n<li>\"No preference\" option that books the least-busy available specialist<\/li>\n<li>Live availability calendar that only shows days and times that are really free<\/li>\n<li>Running summary with total price and duration<\/li>\n<li>Confirmation screen with Google Calendar and Apple\/Outlook (.ics) buttons<\/li>\n<li>Self-service page to reschedule or cancel up to your cut-off time<\/li>\n<\/ul>\n\n<p><strong>For the salon<\/strong><\/p>\n\n<ul>\n<li>Day view with a column per stylist, and a week view<\/li>\n<li>Drag and drop to reschedule; click an empty slot to book a walk-in or phone booking<\/li>\n<li>Booking drawer: change status, reschedule, add private notes<\/li>\n<li>Admin override to book outside availability (with confirmation)<\/li>\n<li>Dashboard: today's schedule, upcoming count, revenue, no-shows, top services, staff performance<\/li>\n<li>Bookings list with filters, search, bulk status changes and CSV export<\/li>\n<li>Customer records with visit history, lifetime value and private notes (allergies, colour formulas\u2026)<\/li>\n<\/ul>\n\n<p><strong>Scheduling engine<\/strong><\/p>\n\n<ul>\n<li>Services with duration, price, colour, image, buffer time before\/after<\/li>\n<li>Add-ons that add time and price (e.g. \"Deep conditioning +15 min\")<\/li>\n<li>Staff-specific price and duration per service (e.g. senior stylist charges more)<\/li>\n<li>Weekly working hours per staff member with multiple periods per day (breaks)<\/li>\n<li>Staff time off and salon-wide closures \/ public holidays<\/li>\n<li>Minimum notice, maximum days ahead, slot step (5\u201360 min)<\/li>\n<li>Double-booking protection with a final conflict check at save time<\/li>\n<\/ul>\n\n<p><strong>Notifications<\/strong><\/p>\n\n<ul>\n<li>Branded HTML emails: confirmed, pending, rescheduled, cancelled, reminder, new-booking alert to salon and stylist<\/li>\n<li>Editable subject and body with placeholders<\/li>\n<li>.ics calendar invite attached to confirmations<\/li>\n<li>Automatic reminders (configurable hours before) and auto-completion of past appointments<\/li>\n<\/ul>\n\n<p><strong>Roles<\/strong><\/p>\n\n<ul>\n<li>Salon Manager \u2013 full access to bookings and settings<\/li>\n<li>Salon Staff \u2013 link a WordPress user to a staff member so they see only their own appointments<\/li>\n<\/ul>\n\n<h3>Shortcodes &amp; block<\/h3>\n\n<ul>\n<li><code>[glowbook]<\/code> \u2013 the booking wizard<\/li>\n<li><code>[glowbook service=\"3\"]<\/code> \u2013 skip straight to a service<\/li>\n<li><code>[glowbook staff=\"2\"]<\/code> \u2013 preselect a specialist<\/li>\n<li><code>[glowbook category=\"1\"]<\/code> \u2013 open on a category tab<\/li>\n<li><code>[glowbook_manage]<\/code> \u2013 the customer manage-booking page<\/li>\n<\/ul>\n\n<p>There is also a \"Salon Booking Form\" block in the editor.<\/p>\n\n<h3>Developers<\/h3>\n\n<p>REST namespace: <code>glowbook\/v1<\/code>.<\/p>\n\n<p>Actions: <code>glowbook_booking_created<\/code>, <code>glowbook_booking_status_changed<\/code>, <code>glowbook_booking_rescheduled<\/code>, <code>glowbook_customer_cancelled<\/code>, <code>glowbook_reminder_sent<\/code>, <code>glowbook_email_sent<\/code>.<\/p>\n\n<p>Filters: <code>glowbook_available_slots<\/code>, <code>glowbook_pre_insert_booking<\/code> (return WP_Error to block), <code>glowbook_pick_staff<\/code>, <code>glowbook_email_vars<\/code>, <code>glowbook_email_html<\/code>, <code>glowbook_rate_limit<\/code>.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>gvw-appointment-scheduler<\/code> folder to <code>\/wp-content\/plugins\/<\/code> or upload the zip via Plugins \u2192 Add New \u2192 Upload.<\/li>\n<li>Activate. Two pages are created automatically: \"Book an Appointment\" and \"Manage Your Booking\".<\/li>\n<li>Demo services and two demo staff are added so you can try it immediately. Edit or delete them under Salon Bookings.<\/li>\n<li>Go to Salon Bookings \u2192 Settings to set your business details, currency, booking rules and emails.<\/li>\n<li>Add your team under Salon Bookings \u2192 Staff, set their hours and tick the services they perform.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"emails%20aren%27t%20arriving\"><h3>Emails aren't arriving<\/h3><\/dt>\n<dd><p>WordPress uses your host's mail function by default. Install an SMTP plugin and use \"Send test email\" on the Emails settings tab.<\/p><\/dd>\n<dt id=\"reminders%20aren%27t%20sending\"><h3>Reminders aren't sending<\/h3><\/dt>\n<dd><p>Reminders use WP-Cron, which runs when your site gets visits. For exact timing, set up a real server cron that calls wp-cron.php every 5\u201315 minutes.<\/p><\/dd>\n<dt id=\"is%20data%20removed%20when%20i%20delete%20the%20plugin%3F\"><h3>Is data removed when I delete the plugin?<\/h3><\/dt>\n<dd><p>Only if you tick \"Delete all bookings, customers and settings when the plugin is uninstalled\" under Settings \u2192 General.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Renamed to GVW Appointment Scheduler.<\/li>\n<li>Code clean-up.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Advanced appointment booking for hair salons, barbers, nail bars, spas and beauty studios.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/390262","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=390262"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/munayem"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=390262"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=390262"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=390262"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=390262"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=390262"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=390262"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}