{"id":350292,"date":"2026-08-30T13:23:19","date_gmt":"2026-08-30T13:23:19","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/bookasalon-online-booking-for-hair-salons-barbers-beauty-studios\/"},"modified":"2026-08-30T13:23:09","modified_gmt":"2026-08-30T13:23:09","slug":"bookasalon","status":"publish","type":"plugin","link":"https:\/\/pan.wordpress.org\/plugins\/bookasalon\/","author":23543858,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.5.1","stable_tag":"1.5.1","tested":"7.1","requires":"6.2","requires_php":"7.4","requires_plugins":null,"header_name":"BookaSalon \u2013 Online Booking for Hair Salons, Barbers & Beauty Studios","header_author":"BookaSalon","header_description":"Light, fast online appointment booking for hair salons, barbers, beauty studios and any business with staff, services and time slots. Per-staff calendar booking, multiple locations, service categories, working hours, closing days, time-limited offers and automatic emails \u2014 no bloat, and no paid tier. Danish and English built in.","assets_banners_color":"74ac95","last_updated":"2026-08-30 13:23:09","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/bookasalon.dk","header_plugin_uri":"https:\/\/bookasalon.dk","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":29,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.5.1":{"tag":"1.5.1","author":"bookasalon","date":"2026-08-30 13:23:09","revision":3672578}},"upgrade_notice":{"1.5.1":"<p>First public release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3672578,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3672578,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3672578,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3672578,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.5.1"],"block_files":[],"assets_screenshots":{"screenshot-1.jpg":{"filename":"screenshot-1.jpg","revision":3672578,"resolution":"1","location":"assets","locale":"","width":1449,"height":840},"screenshot-2.jpg":{"filename":"screenshot-2.jpg","revision":3672578,"resolution":"2","location":"assets","locale":"","width":1449,"height":840},"screenshot-3.jpg":{"filename":"screenshot-3.jpg","revision":3672578,"resolution":"3","location":"assets","locale":"","width":1449,"height":840},"screenshot-4.jpg":{"filename":"screenshot-4.jpg","revision":3672578,"resolution":"4","location":"assets","locale":"","width":1449,"height":840},"screenshot-5.jpg":{"filename":"screenshot-5.jpg","revision":3672581,"resolution":"5","location":"assets","locale":"","width":1449,"height":840},"screenshot-6.jpg":{"filename":"screenshot-6.jpg","revision":3672578,"resolution":"6","location":"assets","locale":"","width":1449,"height":840},"screenshot-7.jpg":{"filename":"screenshot-7.jpg","revision":3672578,"resolution":"7","location":"assets","locale":"","width":1449,"height":840},"screenshot-8.jpg":{"filename":"screenshot-8.jpg","revision":3672578,"resolution":"8","location":"assets","locale":"","width":1449,"height":840}},"screenshots":{"1":"The customer-facing booking widget \u2014 pick more than one service and the duration and price add up as you go.","2":"Admin overview \u2014 your fixed booking link, ready to paste into Google Business Profile, plus today's numbers.","3":"Month calendar \u2014 every booking colour-coded per staff member, with a staff filter.","4":"Bookings \u2014 filter by status, date range or staff member; change status, edit or export to CSV.","5":"Customers \u2014 built automatically from your bookings, with revenue and last visit per person.","6":"Revenue &amp; payments \u2014 mark what has actually been paid, and see the total for the period.","7":"Economy \u2014 revenue by month and year, year-on-year comparison, and which services are chosen most.","8":"Services \u2014 name, duration, price and image, grouped into categories."}},"plugin_section":[],"plugin_tags":[276,252613,269,11523,268],"plugin_category":[40],"plugin_contributors":[278324],"plugin_business_model":[],"class_list":["post-350292","plugin","type-plugin","status-publish","hentry","plugin_tags-appointment","plugin_tags-barber","plugin_tags-booking","plugin_tags-salon","plugin_tags-scheduling","plugin_category-calendar-and-events","plugin_contributors-bookasalon","plugin_committers-bookasalon"],"banners":{"banner":"https:\/\/ps.w.org\/bookasalon\/assets\/banner-772x250.png?rev=3672578","banner_2x":"https:\/\/ps.w.org\/bookasalon\/assets\/banner-1544x500.png?rev=3672578","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/bookasalon\/assets\/icon-128x128.png?rev=3672578","icon_2x":"https:\/\/ps.w.org\/bookasalon\/assets\/icon-256x256.png?rev=3672578","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/bookasalon\/assets\/screenshot-1.jpg?rev=3672578","caption":"The customer-facing booking widget \u2014 pick more than one service and the duration and price add up as you go."},{"src":"https:\/\/ps.w.org\/bookasalon\/assets\/screenshot-2.jpg?rev=3672578","caption":"Admin overview \u2014 your fixed booking link, ready to paste into Google Business Profile, plus today's numbers."},{"src":"https:\/\/ps.w.org\/bookasalon\/assets\/screenshot-3.jpg?rev=3672578","caption":"Month calendar \u2014 every booking colour-coded per staff member, with a staff filter."},{"src":"https:\/\/ps.w.org\/bookasalon\/assets\/screenshot-4.jpg?rev=3672578","caption":"Bookings \u2014 filter by status, date range or staff member; change status, edit or export to CSV."},{"src":"https:\/\/ps.w.org\/bookasalon\/assets\/screenshot-5.jpg?rev=3672581","caption":"Customers \u2014 built automatically from your bookings, with revenue and last visit per person."},{"src":"https:\/\/ps.w.org\/bookasalon\/assets\/screenshot-6.jpg?rev=3672578","caption":"Revenue &amp; payments \u2014 mark what has actually been paid, and see the total for the period."},{"src":"https:\/\/ps.w.org\/bookasalon\/assets\/screenshot-7.jpg?rev=3672578","caption":"Economy \u2014 revenue by month and year, year-on-year comparison, and which services are chosen most."},{"src":"https:\/\/ps.w.org\/bookasalon\/assets\/screenshot-8.jpg?rev=3672578","caption":"Services \u2014 name, duration, price and image, grouped into categories."}],"raw_content":"<!--section=description-->\n<p><strong>Try it before you install:<\/strong> a live demo salon runs at https:\/\/demo.bookasalon.dk \u2014 real plugin, real calendar, nothing is saved and no emails are sent.<\/p>\n\n<p>BookaSalon is a WordPress booking plugin built specifically for hairdressers, barbers, beauty salons and similar appointment-based businesses \u2014 not a general-purpose scheduler with a salon skin on top.<\/p>\n\n<h4>Everything is free. Not \"free to start\"<\/h4>\n\n<p>Every feature below works the moment you activate the plugin. There is no locked feature, no nag notice, no \"upgrade\" link, and no licence key field anywhere in the admin. There is no paid tier, and there is no licensing code in the plugin at all.<\/p>\n\n<h4>Nothing leaves your server<\/h4>\n\n<p>BookaSalon makes no outbound requests of its own. Ten typefaces ship inside the plugin and are served from your own domain: no font CDN, no third-party analytics, no update check, no phoning home. The statistics you see in the admin are counted and stored in your own database, never sent anywhere. Your visitors' IP addresses are not handed to anyone just for opening your booking page \u2014 which matters if you are the data controller under GDPR.<\/p>\n\n<p>Two features can reach outside, and only if you switch them on yourself: Gmail sending, and the \"add to calendar\" links your customer clicks in their own browser. Both are documented under \"External services\" below.<\/p>\n\n<h4>You can see whether your emails actually arrived<\/h4>\n\n<p>Every automatic email is written to a delivery log with its result and, when something fails, the reason why. \"Did the customer get the confirmation?\" is the question a salon gets asked most, and you can answer it without guessing. The log keeps the last 90 days \u2014 it is a troubleshooting tool, not an archive.<\/p>\n\n<h4>Key features<\/h4>\n\n<ul>\n<li><strong>Per-staff calendar booking<\/strong> \u2014 customers pick a service, a preferred staff member (or \"no preference\"), and see only real, live availability.<\/li>\n<li><strong>Multi-service bookings<\/strong> \u2014 customers can select more than one service per visit (e.g. haircut + beard trim); durations and prices combine automatically.<\/li>\n<li><strong>Full admin control<\/strong> \u2014 services (name, price, duration, image), staff (photo, bio, working hours, time off), multiple locations, bookings list with status tracking.<\/li>\n<li><strong>Individual time and price per staff member<\/strong> \u2014 an experienced stylist works faster than an apprentice, so duration and price can be overridden per staff member. The calendar books exactly that much time, and the customer sees exactly that price.<\/li>\n<li><strong>Time-limited offers\/discounts<\/strong> \u2014 percentage, fixed amount, or a fixed sale price, restricted to a date range and optionally specific weekdays\/hours, handy for filling quiet periods.<\/li>\n<li><strong>Automatic emails<\/strong> \u2014 confirmation, reminder, and an optional follow-up\/review email, each with \"add to calendar\" links (Google Calendar, Outlook, .ics).<\/li>\n<li><strong>Self-service cancellation &amp; rescheduling<\/strong> \u2014 customers can cancel or move their own appointment via a secure link in their email, no phone call needed.<\/li>\n<li><strong>Branding<\/strong> \u2014 accent color, font, and logo upload, so the widget matches your site.<\/li>\n<li><strong>Two shortcodes<\/strong> \u2014 <code>[bookasalon]<\/code> for the full widget, <code>[bookasalon_button]<\/code> for a customizable button that opens the widget in a modal.<\/li>\n<li><strong>A dedicated booking page<\/strong> \u2014 a clean, fixed URL (e.g. <code>\/bookasalon\/<\/code>) ideal for pasting into your Google Business Profile booking link.<\/li>\n<li><strong>Statistics &amp; revenue overview<\/strong> \u2014 clicks per booking button, completed bookings, estimated conversion rate, and a revenue dashboard with year-over-year comparisons and service trends.<\/li>\n<li><strong>Custom SMTP support<\/strong> \u2014 connect Gmail\/Google Workspace, SendGrid, Mailgun and others for reliable email delivery.<\/li>\n<li><strong>CSV import<\/strong> \u2014 bring services, staff and bookings over from other booking plugins.<\/li>\n<li><strong>CSV export<\/strong> \u2014 export bookings and payments.<\/li>\n<li><strong>Multi-language<\/strong> \u2014 Danish and English built in, independently configurable for admin and the customer-facing widget.<\/li>\n<\/ul>\n\n<h3>External services<\/h3>\n\n<p>BookaSalon does not contact any third party on its own. Fonts, scripts and\nstyles are all served from your own server, so simply having the plugin\nactive sends no visitor data anywhere.<\/p>\n\n<p>Two optional features do talk to outside services, and only after you turn\nthem on yourself:<\/p>\n\n<p><strong>1. Gmail \/ Google Workspace sending (optional)<\/strong>\nIf you choose \"Gmail\" under Settings &gt; Email sending and connect your\naccount, the plugin talks to Google to obtain and refresh an access token,\nand to send mail on your behalf:<\/p>\n\n<ul>\n<li>https:\/\/accounts.google.com\/o\/oauth2\/v2\/auth \u2014 the consent screen you are\nredirected to when connecting.<\/li>\n<li>https:\/\/oauth2.googleapis.com\/token \u2014 exchanging and refreshing the token.<\/li>\n<li>https:\/\/www.googleapis.com\/oauth2\/v3\/userinfo \u2014 reading the address of the\nconnected account so it can be shown in the admin.<\/li>\n<li>https:\/\/www.googleapis.com\/ (gmail.send scope) \u2014 sending each email.<\/li>\n<\/ul>\n\n<p>What is sent: your authorisation code\/token and the content of the emails\nthe plugin sends (booking confirmations, reminders and so on). No visitor or\ncustomer data is sent to Google outside of the emails themselves.\nGoogle's terms: https:\/\/policies.google.com\/terms\nGoogle's privacy policy: https:\/\/policies.google.com\/privacy<\/p>\n\n<p>If you use a normal SMTP server instead, nothing goes to Google.<\/p>\n\n<p><strong>2. \"Add to calendar\" links in emails and on the confirmation screen<\/strong>\nThe confirmation email and screen contain links to Google Calendar and\nOutlook that pre-fill the appointment. These are ordinary links \u2014 nothing is\ntransmitted until the customer clicks one, and it is then the customer's own\nbrowser that opens the calendar service.<\/p>\n\n<ul>\n<li>https:\/\/calendar.google.com\/calendar\/render \u2014 Google Calendar.\nhttps:\/\/policies.google.com\/privacy<\/li>\n<li>https:\/\/outlook.live.com\/calendar\/0\/deeplink\/compose \u2014 Outlook.\nhttps:\/\/privacy.microsoft.com\/privacystatement<\/li>\n<\/ul>\n\n<p>The .ics download is generated by the plugin itself and involves no third\nparty.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin files to <code>\/wp-content\/plugins\/bookasalon<\/code>, or install directly through the WordPress plugin screen.<\/li>\n<li>Activate the plugin through the \"Plugins\" screen in WordPress.<\/li>\n<li>Go to <strong>BookaSalon \u2192 Services<\/strong> and <strong>BookaSalon \u2192 Staff<\/strong> to set up your business.<\/li>\n<li>Add the <code>[bookasalon]<\/code> shortcode to a page, or use <code>[bookasalon_button]<\/code> to add a booking button anywhere on your site.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20to%20know%20how%20to%20code%3F\"><h3>Do I need to know how to code?<\/h3><\/dt>\n<dd><p>No. Install the plugin like any other WordPress plugin, fill in your services and staff in the admin area, and add a shortcode to a page. No PHP or CSS required unless you want to fine-tune the design yourself.<\/p><\/dd>\n<dt id=\"will%20it%20work%20with%20my%20theme%3F\"><h3>Will it work with my theme?<\/h3><\/dt>\n<dd><p>Yes. The widget's layout and colours are set by the plugin, not by your theme, so a theme's CSS cannot break it.<\/p>\n\n<p>Typography is your choice. Pick \"match my website\" and the widget simply inherits your theme's font \u2014 which covers any font, including ones you have bought. Or choose the system font, or one of the ten typefaces bundled with the plugin. Accent colour and logo are yours to set either way.<\/p><\/dd>\n<dt id=\"can%20i%20import%20data%20from%20another%20booking%20plugin%3F\"><h3>Can I import data from another booking plugin?<\/h3><\/dt>\n<dd><p>Yes, via CSV export from your current system and BookaSalon's built-in import tool, which suggests how columns should map to services, staff and bookings.<\/p><\/dd>\n<dt id=\"is%20it%20really%20free%2C%20with%20no%20artificial%20limits%3F\"><h3>Is it really free, with no artificial limits?<\/h3><\/dt>\n<dd><p>Yes. Per-staff booking, multiple locations, email reminders and follow-ups, self-service cancellation\/rescheduling, closed days, time-limited offers\/discounts, statistics, CSV export and full branding (color\/font\/logo) are all included \u2014 there is no paid tier.<\/p><\/dd>\n<dt id=\"does%20bookasalon%20send%20any%20of%20my%20customers%27%20data%20to%20your%20servers%3F\"><h3>Does BookaSalon send any of my customers' data to your servers?<\/h3><\/dt>\n<dd><p>No. BookaSalon runs entirely on your own WordPress installation. Booking data (customer name, email, phone) stays in your own database and is emailed only through your own configured mail method \u2014 nothing is sent to us.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.5.1<\/h4>\n\n<ul>\n<li>First public release.<\/li>\n<li>Booking widget with per-staff calendars, working hours, lunch breaks and closed days.<\/li>\n<li>Multiple locations, multi-service bookings and time-limited offers.<\/li>\n<li>Automatic emails: confirmation, reminder, follow-up, birthday \u2014 with a delivery log.<\/li>\n<li>Self-service cancellation and rescheduling via signed links in the email.<\/li>\n<li>Statistics, revenue overview, CSV import\/export.<\/li>\n<li>Danish and English, custom SMTP, branding (colour, font, logo).<\/li>\n<li>Font options: match your website's own font, use the system font, or pick\none of ten bundled typefaces. All font files are served from the plugin\nfolder \u2014 no requests to Google or any other third party, so no visitor\ndata leaves the salon's server. Bundled fonts are SIL Open Font License.<\/li>\n<li>Optional \"delete all data on uninstall\" setting for GDPR requests.<\/li>\n<\/ul>","raw_excerpt":"A light, fast online booking widget for hairdressers, barbers and beauty salons \u2014 per-staff calendars, services, working hours and automatic emails.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/pan.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/350292","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pan.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/pan.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/pan.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=350292"}],"author":[{"embeddable":true,"href":"https:\/\/pan.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/bookasalon"}],"wp:attachment":[{"href":"https:\/\/pan.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=350292"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/pan.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=350292"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/pan.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=350292"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/pan.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=350292"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/pan.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=350292"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/pan.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=350292"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}