Appointment Hour Booking – WordPress Booking Plugin

Mô tả

Appointment Hour Booking is a WordPress plugin for creating booking forms for appointments with a start time and a defined duration over a schedule. The start time is visually selected by the end user from a set of start times calculated based in the “open” hours and service duration. The duration/schedule is defined in the “service” selected by the customer. Each calendar can have multiple services with different duration and prices.

This plugin is useful for different cases like booking of medical services where services with different duration and prices may be available, for personal training sessions, for booking rooms for events, for reserving language classes or other type of classes and other type of services/resources booking where start times are selected and the availability is automatically managed using the defined service duration to avoid double-booking (the booked time is blocked once the booking is completed).

Main Features:

  • Easy visual configuration of calendar data and schedules
  • Working dates, invalid/holiday dates and special dates can be defined
  • Supports restriction of default, maximum and minimimum dates
  • Open hours can be defined for each date
  • Each calendar can have multiple services defined
  • Each service can have its own price and duration
  • Start-times are calculated automatically based in the open hours and service duration
  • Available times are managed automatically to avoid double-booking
  • Multiple services can be selected on each booking
  • Services can have multiple capacity
  • Automatic price calculation
  • Customizable email notifications for administrators and users
  • Form validation and built it anti-spam captcha protection
  • Manual and automatic CSV reports
  • iCal addon with iCal export link and iCal file attached into emails
  • Calendar available in 53+ languages
  • Multiple date formats supported
  • Blocks for Elementor and Gutenberg
  • Multi-page calendars
  • Printable appointments list

Features in commercial versions:

  • Visual form builder for creating the booking form fields
  • Booking form can be connected to payment process (Ex: PayPal Standard, PayPal Pro, Stripe, Skrill,, TargetPay/iDEAL, Mollie/iDEAL, SagePay, Redsys)
  • Payments are SCA ready (Strong Customer Authentication), compatible with the new Payment services (PSD 2) – Directive (EU)
  • Addons for integration with external services: reCaptcha, MailChimp, SalesForce, WooCommerce and others
  • Addons with additional features: appointment cancellation addon, appointment reminders addon, clickatell and twilio SMS add-ons, signature fields, iCal synchronization, Google Calendar API, Zoom Meetings …

Appointment Hour Booking can be used for:

Booking services or resources: Define schedule, open hours, services, prices and durations and let the calendar plugin manage the schedule.

Sample cases: Medical services, personal training, resource allocation, booking rooms, classes, etc…

The services can have a maximum capacity (example: number of persons that can book/attend the service at the same time). The default capacity is 1. If the service capacity has been set to 1 the time-slot will be blocked for new bookings after getting one booking. If the service capacity has been set to a greater number (example: service with capacity 10) the time-slot will be blocked after filling the capacity (example: after getting bookings for a total of 10 persons). This feature is described in detail at

The Troubleshoot Area

Use the troubleshot if you are having problems with special or non-latin characters. In most cases changing the charset to UTF-8 through the option available for that in the troubleshot area will solve the problem.

You can also use this area to change the script load method if the booking calendar isn’t appearing in the public website.

The Notification Emails

The notification emails with the appointment data entered in the booking form can sent in “Plain Text” format (default) or in “HTML” format. If you select “HTML” format, be sure to use the BR or P tags for the line breaks into the text and to use the proper formatting.

Exporting Appointments to CSV / Excel Files

The appointment data can be exported to a CSV file (Excel compatible) to manage the data from other applications. That option is available from the “bookings list”, the appointments can be filtered by date and by the text into them, so you can export just the needed appointments to the CSV file.

Other Versions and Features

The free version published in this WordPress directory is a fully-functional version for accepting appointments as indicated in the plugin description. There are also commercial versions with additional features, for example:

  • Ability to process forms/appointments linked to payment process (PayPal, Stripe, Skrill, …)
  • Form builder for a visual customization of the booking form
  • Addons with multiple additional features

Payments processed through the plugin are SCA ready (Strong Customer Authentication), compatible with the new Payment services (PSD 2) – Directive (EU) that comes into full effect on 14 September, 2019.

Please note that the pro features aren’t advised as part of the free plugin in the description shown in this WordPress directory. If you are interested in more information about the commercial features go to the plugin’s page:

Ảnh màn hình

  • Appointment booking form.
  • Inserting an appointment hour booking calendar into a page.
  • Managing the appointment hour booking calendar.
  • Appointment Hour Booking calendar settings.
  • Integration with the new Gutenberg Editor


This plugin provides 1 block.

  • Appointment Hour Booking

Cài đặt

To install Appointment Hour Booking, follow these steps:

  1. Download and unzip the Appointment Hour Booking calendar plugin
  2. Upload the entire appointment-hour-booking/ directory to the /wp-content/plugins/ directory
  3. Activate the Appointment Hour Booking plugin through the Plugins menu in WordPress
  4. Configure the settings at the administration menu >> Settings >> Appointment Hour Booking.
  5. To insert the appointment hour booking calendar form into some content or post use the icon that will appear when editing contents

Hỏi đáp

Q: What means each field in the appointment hour booking calendar settings area?

A: The product’s page contains detailed information about each appointment calendar field and customization:

Q: Where can I publish a appointment booking form?

A: You can publish appointment booking forms on pages and posts. The shortcode can be also placed into the template. The commercial versions of the plugin also allow publishing it as a widget.

Q: How can I apply CSS styles to the form fields?

A: Please check complete instructions in the following page:

Q: How can I align the form using various columns?

A: Into the form editor click a field and into its settings there is one field named “Additional CSS Class“. Into that field you can put the name of a CSS class that will be applied to the field.

There are some pre-defined CSS classes to use align two, three or four fields into the same line. The CSS classes are named:


For example if you want to put two fields into the same line then specify for both fields the class name “column2“.

Q: How to hide the fields on forms?

A: You should use a custom class name. All fields include the attribute “Additional CSS Class”, you only should enter through this attribute a custom class name (the class name you prefer), for example myclass, and then define the new class in a css file of your website, or add the needed styles into the “Customization area >> Add Custom Styles” (at the bottom of the page that contains the list of calendars):

.myclass{ display:none; }

If you are using the latest version of the plugin, please enter in the “Additional CSS Class” attribute, the class name: hide, included in the plugin’s distribution.

Q: How to edit or remove the form title / header?

A: Into the form builder in the administration area, click the “Form Settings” tab. That area is for editing the form title and header text.

It can be used also for different alignment of the field labels.

Q: Can the emails be customized?

A: In addition to the possibility of editing the email contents you can use the following tags:

%INFO%: Replaced with all the information posted from the form
%itemnumber%: Request ID.
%formid%: ID of the booking form.
%referrer%: Referrer URL if reported.
%additional%: IP address, server time.
%final_price%: Total cost.
%fieldname1%, %fieldname2%, …: Data entered on each field

Q: Can I add a reference to the item number (submission number) into the email?

A: Use the tag %itemnumber% into the email content. That tag will be replaced by the submission item number.

Q: How to insert an image in the notification emails?

A: If you want send an image in the notification emails, like a header, you should insert an IMG tag in the “Email notification to admin” and/or “Email confirmation to user” textareas of form settings, with an absolute URL in the SRC attribute of IMG tag:

Q: How to insert changes of lines in the notification emails, when the HTML format is selected?

A: If you are using the HTML format in the notification emails, you should insert the BR tags for the changes of lines in the emails content:

Q: The form doesn’t appear. Solution?

A: If the form doesn’t appear in the public website (in some cases only the captcha appear) then change the script load method to direct, this is the solution in most cases.

That can be changed in the “troubleshoot area” located below the list of calendars/items.

Q: I’m not receiving the emails with the appointment data.

A: Try first using a “from” email address that belongs to your website domain, this is the most common restriction applied in most hosting services.

If that doesn’t work please check if your hosting service requires some specific configuration to send emails from PHP/WordPress websites. The plugin uses the settings specified into the WordPress website to deliver the emails, if your hosting has some specific requirements like a fixed “from” address or a custom “SMTP” server those settings must be configured into the WordPress website.

Q: Non-latin characters aren’t being displayed in the form. There is a workaround?

A: Use the “throubleshoot area” to change the character encoding.

Q: Can I display a list with the appointments?

A: A list with the appointments set on the calendar can be displayed by using this shortcode in the page where you want to display the list:


… it can be also customized with some parameters if needed, example:

CP_APP_HOUR_BOOKING_LIST from=”today” to=”today +30 days” fields=”DATE,TIME,email” calendar=”1″]

… the “from” and “to” are used to display only the appointments / bookings on the specified period. That can be either indicated as relative days to “today” or as fixed dates.

The styles for the list are located at the end of the file “css/stylepublic.css”:

.cpabc_field_0, .cpabc_field_1, .cpabc_field_2, …

Clear the browser cache if the list isn’t displayed in a correct way (to be sure it loads the updated styles).

You can also add the needed styles into the “Customization area >> Add Custom Styles” (at the bottom of the page that contains the list of calendars):

Q: Can I track the conversion referral?

A: Yes, for this purpose you can use the plugin CP Referrer and Conversion Tracking that already includes the automatic integration with this plugin.

Q: Are the forms GDPR compliant?

A: In all plugin versions you can turn off IP tracking to avoid saving that user info. Full GDPR compliant forms can be built using the commercial versions of the plugin.

Đánh giá

17 Tháng Hai, 2024 1 reply
I don't do reviews. Almost never, but I'll make an exception here because the product is exceptional and very flexible, especially if you have some knowlege of HTML and CSS. The support was not only timely but helpful in guiding us to a solution that will work for us. We ultimately requested a customization and found that it was unbelievably inexpensive, and the changes were made within a few days. After reviewing the changes, which were implemented exactly to our specification, we requested another small change that we expected to pay for but they made the change gratis and provided the new version the next day. Thanks to Karen, the Codepeople support/technical agent who helped us through.
7 Tháng Hai, 2024 1 reply
Excellent plugin for time-based bookings on Wordpress. Its flexibility allows seamless customization of language and appearance. Perfect for businesses needing versatile scheduling solutions. Highly recommended!
21 Tháng Một, 2024 1 reply
I would like to congratulate the developers for creating an incredible plugin, for providing this basic version full of important functions. I've already decided to buy the annual subscription just because the basic version is so good. I'm starting my career as a nutritionist and every inch of my website is important to me. I am very grateful to have been able to make all the adjustments that the plugin offers. It will be very important for my career. Congratulations to the developers.
Đọc tất cả 483 đánh giá

Người đóng góp & Lập trình viên

“Appointment Hour Booking – WordPress Booking Plugin” là mã nguồn mở. Những người sau đã đóng góp vào plugin này.

Những người đóng góp

“Appointment Hour Booking – WordPress Booking Plugin” đã được dịch qua 5 ngôn ngữ. Cảm ơn những người tham gia dịch vì đóng góp của họ.

Dịch “Appointment Hour Booking – WordPress Booking Plugin” sang ngôn ngữ của bạn.

Muốn tham gia phát triển?

Duyệt code, check out SVN repository, hoặc theo dõi nhật ký phát triển qua RSS.

Nhật ký thay đổi


  • First version published


  • Bug fixes (notices with WP_DEBUG enabled)


  • Fixed bug when adding new form


  • New banners and icons


  • Fixed bug in insert query


  • Added CSS and JavaScript customization panel


  • New iCal export option
  • New iCal attachment for emails option
  • Supports multi-page (multi-month) calendars/items
  • Support for multiple languages
  • Support for multiple date formats
  • Feature for limiting the number of appointments allowed on a single booking action
  • Bugs corrections and fixes


  • Fixed bug in availability management


  • Docs and interface updates


  • Improved interface and descrciption


  • Fixed problem with the invalid dates in the public site


  • Fixed problem with the invalid dates in the dashboard area


  • Fixed admin menu links and website services


  • Fixed bug in invalid dates feature


  • Fix in description, tags and author links


  • Fixed help texts in admin interface


  • New improved admin interface


  • New support and documentation options


  • Fixed bug in visual form builder


  • Fixed bug with more than one form in the booking form


  • New feature for indepedent time-slot intervals


  • Improved CSS customization section


  • Fixed conflict with autoptimize plugin


  • Fixed bug in form builder


  • Fixed captcha reloading issue


  • Fixed bug in date restrictions


  • Increased max app length


  • Bug fixes on iCal attachments


  • Added GDPR acceptance field in the form builder


  • Code memory and speed optimizations


  • Updates to support links, documentation and scheduling


  • Easier activation process


  • Optional deactivation feedback


  • Fixed bug in activation process


  • Database creating encoding fix


  • Improved default format of submitted data


  • Added service name to selection


  • Fixed issue in activation process


  • Avoided conflict with bootstrap datepicker implementations


  • Compatible with Gutenberg


  • New support and demo links


  • Fix to Gutenberg integration


  • Conflict avoided with Gutenberg editor


  • Added installation wizard
  • Calendar availability edition fixed
  • iCal export format correction


  • Fixed magic quotes issue


  • Major update. Full redesign and improvements.


  • Text field added to the form builder


  • Improved CSS customization settings


  • Blink effect to submit button


  • Fixed bug in current date availability


  • Added end-time display. Thank you to @andreastypo for the feedback and code.


  • Improved availability verification


  • Fixed conflict with third party plugins


  • Added plugin translations


  • Gutenberg compatibility updates


  • Fix to plugin translations


  • iCal export improvements


  • AM/PM calendar fix and form builder fixes


  • Fixed visualization issue in calendars list


  • New features in available slots rendering


  • Fixed display issue in form builder


  • Feature for adding bookings from admin


  • Fix to character encoding in CSV exports. New feature for showing booked slots.


  • Set order to selected times


  • Fixed bug in time calculation


  • New Gutenberg Block


  • Redirect / confirmation page supports now boking parameters


  • Fixed bug in form edition


  • Better CSS customization options


  • Fixed submission processing bugs


  • Clone calender feature


  • Removed use of CURL


  • Better date format management


  • Timezone conversion updates


  • Integration with Elementor
  • New visual calendar to view the schedule


  • Fixed bug in invalid dates


  • Now accepts services with multiple capacity


  • Fixed bug in dates selection on date change
  • Skip current day if no available slots for it
  • Min/max date restriction removed from admin bookings


  • Fixed urlencode issue


  • Fixed bug in services selection


  • Fixed bug in submission redirection


  • Fixed bug in services availability


  • Appointment padding time feature


  • Fixed compatibility with Visual Composer


  • Fixed bug in time slot availability


  • Fixed bug in “only” booking dates


  • New CSV export feature and improved bookings list


  • Improvements to the iCal settings


  • New feature for making required selecting service


  • Fixed backward compatibility of new features


  • Fixed bug rendering 0:00 hours


  • Fixed bug availability calculation


  • Improved backward compatibility


  • Fixed bug in special dates


  • New feature for excluding fields from CSV exports
  • Fixed bug in date format


  • Fixed bug in date pre-selection


  • New feature for hidding app end time


  • Fixed bug in optional services selection


  • Improved overbooking verification
  • Improved “show used slots” feature


  • New tags supported for the email customization
  • Time slot price validation and improved formatting


  • Fixed conflict of captcha image with Jetpack Lazy Loading feature


  • Fixed conflict with javascript minifier


  • Improvements to date formatting


  • Better calendar responsive design


  • Added missing translations
  • Improvements to schedule list view


  • Fixed conflict with Yoast SEO


  • Min data supports hours limits. Ex: +1h


  • Fixed bug in current date slots limits


  • Fixed conflict between min and default date


  • Improved support for military and AM/PM time format


  • Fixed conflict with the Yoast SEO plugin


  • Fixed bug in min date config


  • Fixed bug in available dates


  • Fixed Gutenberg editor error


  • Fixed captcha bug


  • Minor bugs update


  • Fixed bug in min date settings (dashboard)


  • Fixed bug in form builder and character encoding


  • Added new case of use to padding time


  • New dashboard widget add-on for displaying upcoming bookings


  • Fixed bug in schedule calendar data loading


  • Compatible with WordPress 5.2


  • New calendar formatting options


  • New feature for multiple calendars in booking lists


  • Fixed issue with iconv text encoding function not present


  • Added new translations and texts with supported translations


  • Compatible with Google Translate


  • Update for compatibility with WordPress 5.2


  • Added option onlycurrentuser=”yes” for the lists shortcode.


  • Added option to store the ID of user making the booking


  • Added new CA-French translation
  • More CSS customization options


  • Better way for linking the plugin scripts and code improvements


  • Updated feature for marking used slots


  • Improved iCal link and code optimizations


  • Multiple code improvements


  • New nonces and improvements


  • Fix to table encoding


  • Additional sanitization and improvements


  • Fix to deal with page cache issues


  • Fixed bug in min/max date rules


  • Fixed bug in terms acceptance field


  • Improved compatiblity with 3rd party plugins


  • Improved user features


  • Fix bug in click event


  • Fixed language issue with autoptimize


  • New feature for blocking times