{"id":351207,"date":"2026-08-11T10:01:18","date_gmt":"2026-08-11T10:01:18","guid":{"rendered":"https:\/\/en-au.wordpress.org\/plugins\/demfilz-booking-calendar-plus\/"},"modified":"2026-08-13T06:07:03","modified_gmt":"2026-08-13T06:07:03","slug":"demfilz-booking-calendar-plus","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/demfilz-booking-calendar-plus\/","author":20035799,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.1","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"Demfilz Booking Calendar Plus","header_author":"Demfilz","header_description":"Multi-staff, multi-service appointment booking with a step-by-step booking form, working hours, buffers, email notifications with calendar invites, and optional AIEIO Calendar integration (push bookings, respect busy times). Add the Pro add-on to take Stripe deposits or full payment at booking time.","assets_banners_color":"414656","last_updated":"2026-08-13 06:07:03","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/demfilz.com\/booking-calendar-plus\/","header_author_uri":"https:\/\/demfilz.com\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":41,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"demfilz","date":"2026-08-13 06:07:03"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3641671,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3641671,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3641671,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3641671,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3641671,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"dbook\/bookings":{"name":"dbook\/bookings","title":"Bookings"}},"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3641671,"resolution":"1","location":"assets","locale":"","width":1200,"height":900},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3641671,"resolution":"2","location":"assets","locale":"","width":1200,"height":900},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3641671,"resolution":"3","location":"assets","locale":"","width":1200,"height":900},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3641671,"resolution":"4","location":"assets","locale":"","width":1200,"height":900},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3641671,"resolution":"5","location":"assets","locale":"","width":1200,"height":900}},"screenshots":{"1":"Step-by-step booking form - choose a service. Drops onto any page with the <code>[dbook_bookings]<\/code> shortcode or block.","2":"Pick a date and time. Only genuinely free slots appear - working hours, buffers, time off and existing bookings are all respected.","3":"Your details, then pay. With the Pro add-on the slot is held while the customer pays a deposit or the full price on Stripe's secure checkout.","4":"Booking payments settings (Pro add-on): enter your own Stripe keys, choose a deposit or full payment, set the hold window and the receipt email.","5":"Bookings dashboard: today, awaiting-confirmation and upcoming counts, plus every appointment and its status at a glance."}},"plugin_section":[],"plugin_tags":[8132,269,416,268,11420],"plugin_category":[40],"plugin_contributors":[268125],"plugin_business_model":[],"class_list":["post-351207","plugin","type-plugin","status-publish","hentry","plugin_tags-appointments","plugin_tags-booking","plugin_tags-calendar","plugin_tags-scheduling","plugin_tags-staff","plugin_category-calendar-and-events","plugin_contributors-demfilz","plugin_committers-demfilz"],"banners":{"banner":"https:\/\/ps.w.org\/demfilz-booking-calendar-plus\/assets\/banner-772x250.png?rev=3641671","banner_2x":"https:\/\/ps.w.org\/demfilz-booking-calendar-plus\/assets\/banner-1544x500.png?rev=3641671","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/demfilz-booking-calendar-plus\/assets\/icon.svg?rev=3641671","icon":"https:\/\/ps.w.org\/demfilz-booking-calendar-plus\/assets\/icon.svg?rev=3641671","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/demfilz-booking-calendar-plus\/assets\/screenshot-1.png?rev=3641671","caption":"Step-by-step booking form - choose a service. Drops onto any page with the <code>[dbook_bookings]<\/code> shortcode or block."},{"src":"https:\/\/ps.w.org\/demfilz-booking-calendar-plus\/assets\/screenshot-2.png?rev=3641671","caption":"Pick a date and time. Only genuinely free slots appear - working hours, buffers, time off and existing bookings are all respected."},{"src":"https:\/\/ps.w.org\/demfilz-booking-calendar-plus\/assets\/screenshot-3.png?rev=3641671","caption":"Your details, then pay. With the Pro add-on the slot is held while the customer pays a deposit or the full price on Stripe's secure checkout."},{"src":"https:\/\/ps.w.org\/demfilz-booking-calendar-plus\/assets\/screenshot-4.png?rev=3641671","caption":"Booking payments settings (Pro add-on): enter your own Stripe keys, choose a deposit or full payment, set the hold window and the receipt email."},{"src":"https:\/\/ps.w.org\/demfilz-booking-calendar-plus\/assets\/screenshot-5.png?rev=3641671","caption":"Bookings dashboard: today, awaiting-confirmation and upcoming counts, plus every appointment and its status at a glance."}],"raw_content":"<!--section=description-->\n<p>Demfilz Booking Calendar Plus turns any WordPress site into a booking system for salons, clinics, trades, consultants and studios:<\/p>\n\n<ul>\n<li><strong>Services<\/strong> with duration, price, colour and before\/after buffers.<\/li>\n<li><strong>Staff members<\/strong> with their own weekly working hours (split shifts supported), time off, and the services they perform.<\/li>\n<li><strong>Step-by-step booking form<\/strong> (shortcode <code>[dbook_bookings]<\/code> or the Bookings block): service, staff member (or \"Any available\"), date and time, details. Mobile-friendly and theme-neutral.<\/li>\n<li><strong>\"Any staff\" auto-assign<\/strong> picks the least-loaded qualified staff member.<\/li>\n<li><strong>No double bookings<\/strong>: availability is checked server-side again at the moment of booking, with a transactional lock.<\/li>\n<li><strong>Emails<\/strong>: customer confirmation with a calendar invite (.ics) attached, admin and staff notifications, cancellation notices and an automatic reminder email before the appointment.<\/li>\n<li><strong>Customer self-service<\/strong>: every email includes a private manage link where the customer can reschedule or cancel (with a configurable cut-off).<\/li>\n<li><strong>Approval mode<\/strong>: choose instant confirmation or review each request.<\/li>\n<li><strong>Admin<\/strong>: dashboard, filterable bookings list with CSV export, a monthly booking calendar, and a manual add-booking form.<\/li>\n<li><strong>Privacy ready<\/strong>: personal data exporter and eraser, plus an optional clean uninstall.<\/li>\n<\/ul>\n\n<h4>Take deposits with the Pro add-on<\/h4>\n\n<p>Add <a href=\"https:\/\/demfilz.com\/booking-calendar-plus\/\">Demfilz Booking Calendar Plus Pro<\/a> to collect a <strong>deposit or the full price with Stripe<\/strong> at booking time. The slot is held while the customer pays on Stripe's secure hosted checkout and confirms automatically once payment lands - no card details ever touch your site. Set payment per service (no payment, a percentage or fixed deposit, or full price), issue refunds from the dashboard, and hold-and-release abandoned checkouts automatically.<\/p>\n\n<h4>AIEIO Calendar integration (optional)<\/h4>\n\n<p>Connect a free <a href=\"https:\/\/aieio.au\/cal\/\">AIEIO Calendar<\/a> account and:<\/p>\n\n<ul>\n<li>Confirmed bookings are pushed into each staff member's calendar (and removed when cancelled).<\/li>\n<li>Events marked busy in a staff calendar automatically block those times on the booking form - so a staff member's personal appointments prevent double booking.<\/li>\n<li>Every calendar has a private ICS feed, so bookings appear in Google Calendar, Apple Calendar and Outlook too.<\/li>\n<\/ul>\n\n<p>The plugin talks to the calendar with an API key you create in the calendar's settings. This is an optional external service: when configured, booking details (service, customer name and contact details, times) are sent to the calendar URL you configure (default https:\/\/aieio.au\/cal, operated by Directory.com.au Pty Ltd - see https:\/\/aieio.au\/cal\/ for its privacy policy). Nothing is sent unless you enter an API key.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload and activate the plugin.<\/li>\n<li>Go to <strong>Bookings \u2192 Services<\/strong> and add your services.<\/li>\n<li>Go to <strong>Bookings \u2192 Staff<\/strong>, add staff, tick the services they perform and set weekly hours.<\/li>\n<li>Put <code>[dbook_bookings]<\/code> (or the Bookings block) on a page.<\/li>\n<li>Optional: connect AIEIO Calendar under <strong>Bookings \u2192 Settings \u2192 Calendar integration<\/strong>.<\/li>\n<li>Optional: install Demfilz Booking Calendar Plus Pro to take Stripe deposits.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"where%20do%20i%20change%20the%20timezone%3F\"><h3>Where do I change the timezone?<\/h3><\/dt>\n<dd><p>The plugin uses your WordPress timezone (Settings \u2192 General). All slots and emails follow it.<\/p><\/dd>\n<dt id=\"can%20two%20staff%20work%20different%20hours%3F\"><h3>Can two staff work different hours?<\/h3><\/dt>\n<dd><p>Yes - hours, time off and services are all per staff member.<\/p><\/dd>\n<dt id=\"does%20it%20take%20payments%3F\"><h3>Does it take payments?<\/h3><\/dt>\n<dd><p>The free plugin records the price and shows it during booking; payment is taken on arrival. To collect a deposit or full payment online, add the Pro add-on, which uses your own Stripe account and hosted Stripe Checkout (no card data touches your site).<\/p><\/dd>\n<dt id=\"how%20are%20double%20bookings%20prevented%3F\"><h3>How are double bookings prevented?<\/h3><\/dt>\n<dd><p>Availability is computed from working hours, existing bookings (with buffers), time off and (optionally) busy times in the connected calendar - and re-checked server-side under a lock when the booking is submitted.<\/p><\/dd>\n<dt id=\"do%20customers%20create%20an%20account%3F\"><h3>Do customers create an account?<\/h3><\/dt>\n<dd><p>No. Booking is a simple public form; customers manage their booking through a private tokenised link, no login required.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release: services, staff, hours, time off, booking wizard, emails with ICS, reminders, reschedule, CSV export, booking calendar, approval mode, AIEIO Calendar integration, privacy tools, and payment extension points for the Pro add-on.<\/li>\n<\/ul>","raw_excerpt":"Multi-staff, multi-service appointment booking with a clean step-by-step form, buffers, reminders, ICS calendar sync - and optional Stripe deposits.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/351207","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=351207"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/demfilz"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=351207"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=351207"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=351207"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=351207"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=351207"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=351207"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}