=== Booking Calendar ===
Contributors: wpdevelop, oplugins
Donate link: https://wpbookingcalendar.com/buy/
Tags: booking calendar, appointment booking, booking form, reservations, contact form
Requires at least: 5.3
Requires PHP: 5.6
Tested up to: 7.0
Stable tag: 11.3
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

WP Booking Calendar plugin for full-day bookings, time-slot appointments, rentals & events. Accept bookings and inquiries with flexible contact forms

== Description ==

= Booking Calendar - Booking Plugin for Appointments, Reservations, Rentals, Events =
**WP Booking Calendar** is a flexible **WordPress booking plugin** for **appointments**, **reservations**, **rentals**, and **events**. Add a responsive **availability calendar** and **booking form** to your website, accept **online bookings**, and manage them from a modern admin panel.

Use Booking Calendar for **full-day bookings**, **time-slot appointments**, service scheduling, event registration, **inquiry forms**, **request forms**, or even as a simple multi-steps **contact form** with built-in request listing and email notifications.

[Features](https://wpbookingcalendar.com/features/ "Features Overview of Booking Calendar") | [See Demos](https://wpbookingcalendar.com/demo/ "Live demos of premium versions") | [FAQ](https://wpbookingcalendar.com/faq/ "Booking Calendar FAQ") | [Get Support](https://wpbookingcalendar.com/support/ "Get support for Booking Calendar plugin")

Best for appointments, service scheduling, property rentals, equipment rentals, consultations, classes, events, and availability management.

= Key Features =
- Block unavailable time intervals by resource and date range
- Create admin bookings from selected available time slots
- Configure global availability rules with live preview
- Accept **full-day** and **time-slot** bookings
- Show **calendar availability** on your website
- Create booking, contact, and inquiry forms
- Use the new **Drag & Drop Booking Form Builder**
- Build **multi-step forms** with rows and columns
- Customize form fields and email notifications
- Prevent double bookings
- Manage bookings in a clear admin panel
- Sync bookings with external services using **.ics feeds**
- Import Google Calendar events
- Works for properties, services, rentals, and events

= New Time Slots Availability & Fast Admin Booking =

Manage unavailable time intervals visually from **Booking Calendar > Availability** or directly from the bookings workflow using the new **Time Slots Availability** popup.

Administrators can choose a date range and block or unblock exact time intervals in an interactive timeline. The timeline clearly shows available, booked, unavailable, and full-day unavailable states, and full-day unavailable states, making it much easier to understand real availability at a glance.

https://www.youtube.com/watch?v=uaLVguJbMP8

Administrators can also create a new booking directly from an available time interval. Simply select an available time slot in the popup, open the booking form with the selected resource, date, start time, and end time already prefilled, and save it as a new booking.

This makes Booking Calendar especially useful for appointment scheduling, service bookings, consultations, rentals, and any workflow where administrators need to quickly review availability and create bookings from the WordPress admin panel.

= New Drag & Drop Booking Form Builder =

Create booking forms visually without manually editing complex shortcodes or form code. Simply drag fields from the sidebar, drop them into the canvas, organize them into rows and columns, edit settings in the sidebar, and preview changes instantly.

https://www.youtube.com/watch?v=_LRr15mcECE

The new builder also makes it easy to create **contact** and **inquiry forms** where the calendar is optional.

With the new interface, you can:

- drag and drop fields into the form layout,
- organize fields into sections and columns,
- create multi-step form pages,
- resize columns for better layout control,
- edit field settings in the right sidebar,
- instantly preview the form while building.

This new functionality brings a more modern, user-friendly, and flexible way to create forms in Booking Calendar, making form setup faster, clearer, and much more convenient for website owners.

= Perfect solution for any booking logic =

As the first booking system for WordPress, we have created a huge number of features to match your specific booking needs.

Easily **define available dates** and allow your visitors to **reserve** your property or service for a **full day** or **time-slot**.

For those who need more advanced functionality, our premium versions offer an extensive system with **multiple resources**, **seasonal prices**, **conditional dates** selection, **availability search**, and even a **multi-user system** where users can independently manage their own availability, much like an Airbnb portal.

= Full Day Bookings - Drag and Drop Booking Form Builder =
Easily configure Booking Calendar for full-day bookings with the new Drag and Drop Booking Form Builder. The new Booking Calendar Form Builder makes it much easier to create flexible booking forms without manually editing form code. It is a simple and visual way to build booking forms for different use cases directly inside WordPress.

https://www.youtube.com/watch?v=n_svjKULkc0

= Appointment Forms with Time Slots or Start Time + Service Duration Selection =
Create a time-slot booking form in just a few minutes with the new Booking Calendar Form Builder. Visually add the calendar, time fields, and contact fields, adjust the layout, and preview changes instantly — without manually editing form code.

https://www.youtube.com/watch?v=6hV11Cfc61Q

= Changeover Multi-Day Bookings - Setup Wizard (Pro) =
Configure multi-day bookings with specific check-in and check-out days, clearly marked with diagonal or vertical lines. Perfect for bookings that require split days. <br>**Available Pro versions**.

https://www.youtube.com/watch?v=uCQ9JmHR8w4

== Installation ==

Installing the plugin is easy. Just follow one of the following methods:

= Install Booking Calendar from within Wordpress =

1. Visit the plugins page within your dashboard and select ‘Add New’
2. Search for "Booking Calendar by oplugins"
3. Activate Booking Calendar from your Plugins page
4. You're done!


= Install Booking Calendar Manually =

1. From the dashboard of your site, navigate to Plugins --> Add New.
2. Select the Upload option and hit "Choose File."
3. When the popup appears select the booking.zip or booking-x.x.zip file from your desktop. (The 'x.x' will change depending on the current version number).
4. Follow the on-screen instructions and wait as the upload completes.
5. When it's finished, activate the plugin via the prompt. A message will show confirming activation was successful.

That's it! Just configure your settings and [insert booking form shortcode](https://wpbookingcalendar.com/faq/insert-booking-calendar-into-page/ ) into a page, and you're on your way to receive the bookings. Need help getting things started? Check out our [FAQ](https://wpbookingcalendar.com/faq/) and [video guides](https://wpbookingcalendar.com/help/) for help with settings and features.

== Frequently Asked Questions ==

Please see [FAQ](https://wpbookingcalendar.com/faq/).

= Booking Calendar is great for =

Whether you’re renting a property or you’re a sole business owner looking to automate your service bookings, Booking Calendar can help you.
- Resource scheduling (bed & breakfast, houses, apartments, etc.)
- Client scheduling (photographers, lawyers, beauty salons, spas, etc.)
- Meeting scheduling (coaching, phone advice)
- Patient scheduling (doctor, dentists, clinic, medical)
- Equipment rentals (yachts, boats, cars, bikes, technics, etc.)
- Event scheduling (conference, course, fitness center, yoga class, gym)
- Or any other service where booking for a specific time is required

= All you need to know about booking process =

**Step 1: Select your desired date(s)**
Customers can select the date(s) they would like to book. The **Booking Calendar** plugin provides an easy-to-use calendar system that displays the availability of your property or service for those dates.

**Step 2: Select a time-slot (optional)**
If you offer appointments or reservations at specific times, you can configure the booking form to allow customers to select an available time-slot. To learn how to set it up, please [watch this video](https://youtu.be/-pOTMiyp6Q8?t=28s "Video guide how to configure time slots in Booking Calendar Free version").

**Step 3: Fill in Booking Form Fields**
The form will ask for information such as your name, contact information, and other details needed to approve the booking. The booking form fields are customizable, allowing you to configure fields required for the booking.

**Step 4: Submit your booking and Receive Notification of New Booking**
After filling out the booking form, customers can submit the booking. The **Booking Calendar** plugin will notify the administrator about the new booking and send a confirmation email to customers that their booking has been received.

**Step 5: Manage Bookings**
Administrators can manage all reservations from the modern and easy-to-use admin booking panel. Easily find the required bookings, check the booking details, and modify the booking if needed, then approve or decline this reservation. Customers will receive an email confirmation about the approval or cancellation of their booking.

= Simple steps to get started =
**1. Add booking form or availability calendar to your page**
Easily insert the booking form on any page of your website using WordPress blocks or Booking Calendar widgets for sidebars or configure shortcode block in page builders like Elementor. Read more [here](https://wpbookingcalendar.com/faq/insert-booking-calendar-into-page/ "How to insert the booking form or availability calendar into the page?").

**2. Set initial unavailable days with just few clicks**
You can **define days availability** in just a 3 mouse clicks at Booking > Availability page. Simply select a range of days on the calendar, choose 'available' or 'unavailable' status, and apply. It’s that simple!

**3. Configure booking form, email templates and other settings**
Easily **customize** your **booking form** fields and add **[time slots](https://youtu.be/-pOTMiyp6Q8?t=28s "Video guide how to configure time slots in Booking Calendar Free version")** if needed. Configure **email** notifications and other settings such as the **calendar** appearance, booking admin panel functionality, and more...

**4. Receive notifications and manage bookings**
Get notified about a **new appointments** and manage them in a modern admin panel. **Approve**, **decline**, or **edit** specific bookings. Plus, you can get a complete picture of your schedule with the **calendar overview** in **day**, **week**, or **month** view mode.

**5. Configure syncing of bookings with other services**
Import your **Google Calendar** events or make **2 ways sync** of your events by using **.ics feeds** with various services such as Airbnb, Booking.com, VRBO, HomeAway, TripAdvisor, FlipKey, and more... Thanks to native integration with [Booking Manager](https://wordpress.org/plugins/booking-manager/) plugin.

= Awesome features: =

**Setup Wizard!**
- Easy Time Appointments Configuration for your Bookings
- Set up **appointment booking system** in less than 2.5 minutes. Designed with a user-friendly flow, the wizard takes you step-by-step through key settings, including booking type selection, calendar appearance, availability preferences, and more. This step-by-step setup helps you get your booking system ready for your business quickly and easily.

https://www.youtube.com/watch?v=GYJWZJBFwXw

**Set Days Availability**
- Super **easy set available/unavailable dates** in calendar with just three mouse clicks.
- In Booking Calendar you can define days as available or unavailable in just a few clicks. Simply select a range of days on the calendar, choose 'available' or 'unavailable' status, and apply. It's that simple!

**General**
- **Modern** and **easy to use** interface.
- The plugin is designed to be a suitable for a vast array of businesses.
- 100% mobile-friendly and looks amazing on any device.
- All booking data is stored in your DB. You don't need other accounts.
- **Multi language** support. Check all available languages at [this page](https://wordpress.org/plugins/booking/#support%20languages%20%28local%29 "Translations").

**Easy to start using**
- Booking Calendar is an easy solution to start receiving bookings.
- You can quickly [add the booking calendar](https://wpbookingcalendar.com/faq/insert-booking-calendar-into-page/) to your posts or pages using WordPress blocks or shortcodes. Additionally, you can add the booking calendar as a widget to your site's sidebar.
- Most of the settings come with predefined values and descriptions.

**Bookings**
- **Prevention of double bookings** - one booking per day or time slot.
- Alternatively, you can allow **unlimited bookings for the same date** and time within the same calendar.
- You can enable **pending bookings as available** in the calendar, which lets you receive multiple bookings for the same date until you manually approve one of them. You can receive as many bookings as you need to and stop receiving bookings on specific dates once you have approved a booking.

**Timeslots bookings**
- [Time slot bookings](https://youtu.be/-pOTMiyp6Q8?t=28s "Video guide how to configure time slots in Booking Calendar Free version")** are available in the Booking Calendar Free version, which allows you to receive bookings for available time-slots during a selected day. Customers can select time slots either in a time picker or from a dropdown list, depending on your settings at Settings General page in "Time Slots" section.

**Calendar**
 Select a **calendar skin** that matches your website design.<br>
 Or customize the calendar colors by [editing the CSS](https://wpbookingcalendar.com/faq/change-skin-and-colors/) styles.<br>
 Choose to display [one or several months](https://wpbookingcalendar.com/faq/shortcode-booking-form/#booking-options) in the calendar view.<br>
 Easily set the width of the calendar and the number of months in a row, such as [3x2 months](https://wpbookingcalendar.com/faq/shortcode-booking-form/#booking-options).<br>
 Choose between **single** day or **multiple days** selection mode.<br>
 Set the number of unavailable days in the calendar, starting from today.<br>
 Specify particular weekdays as unavailable.<br>
 Show a legend on the calendar to help visitors understand the status of each day.<br>

**Booking Form**
Easily customize your booking form fields to capture all the necessary information for each booking. Choose which fields are required and which are optional, and customize field labels as needed. Plus, the booking form includes **CAPTCHA** support to prevent spam submissions.

**Timeline**
[Timeline view](https://wpbookingcalendar.com/faq/shortcode-timeline/) allows you to display all your bookings in a yearly, monthly, or daily view on the front-end of your website, giving your visitors a quick and comprehensive overview of your schedule.

**Booking Admin Panel**
- Easily manage your bookings with a modern and clear [Booking Listing](https://ps.w.org/booking/assets/screenshot-03.gif?rev=2870020) panel or with the intuitive [Calendar Overview](https://ps.w.org/booking/assets/screenshot-04.png?rev=2870020) mode.
- The [Booking Listing](https://ps.w.org/booking/assets/screenshot-03.gif?rev=2870020) makes it very simple to find the required reservations. It provides searching by different criteria and immediate results based on keywords.
- Get a complete picture of your schedule with the [Calendar Overview](https://ps.w.org/booking/assets/screenshot-04.png?rev=2870020) in **day**, **week**, or **month** view mode.
- **Approve**, **decline**, or **edit details** in required bookings.
- **Print** a list of your bookings.
- Get the number of new bookings on the **booking dashboard section**.

**Google Calendar Integration**
- [Import events](https://wpbookingcalendar.com/faq/import-gc-events/) from your **Google Calendar** to the Booking Calendar plugin.
- With just one click, **add bookings to Google Calendar** from the Booking Listing page using export button near each booking(s).

**Sync bookings**
- Easily **import and export** events using .ics feeds or files with native integration with our [Booking Manager](https://wordpress.org/plugins/booking-manager/) plugin.
- **[Import events](https://wpbookingcalendar.com/faq/#sync)** from various sources, such as Airbnb, Booking.com, HomeAway, TripAdvisor, VRBO, FlipKey, and any other calendar that uses the .ics format.
- Customize parameters such as date conditions and maximum number of items to import in the import [shortcodes](https://oplugins.com/plugins/wp-booking-manager/booking-manager-help/#events-import).
- **[Export bookings](https://wpbookingcalendar.com/faq/#sync)** by configuring custom URL for your.ics feed. This feed can then be imported into services that use the .ics (iCal) format, such as Google Calendar or Airbnb, etc...

**Email Notifications**
Configure email confirmation to be sent to the site administrator and visitors for specific booking actions, such as new booking creation, approval or decline of bookings. You can customize the content and format of the emails, and also change the administrator email address to receive notifications.

**Other settings**
 Customizable **date format** for your bookings.<br>
 **Restriction of access** to plugin menus for standard WordPress user roles.<br>
<br>
And **much more**... Check ton of features in [premium versions](https://wpbookingcalendar.com/features/ "Booking Calendar Features list") of plugin.


= Premium Features in paid versions =

**Booking Calendar Personal (or higher versions)**
- [Multiple booking resources (calendars)](https://wpbookingcalendar.com/features/#booking-resources) - create an unlimited number of booking resources (calendars), which can be your services, properties, or any other items that can be booked by visitors in separate unique calendars.
- [Advanced configuration of booking form and emails](https://wpbookingcalendar.com/features/#booking-form) - fully customize the appearance of your booking form and email templates.
- [Manage bookings](https://wpbookingcalendar.com/features/#manage-bookings) - perform various actions such as CSV export, adding notes, editing, duplicating, changing resources, and much more...

**Booking Calendar Business Small (or higher versions)**
- [Online Payments](https://wpbookingcalendar.com/features/#payments) - accept online payments for your bookings, with support for various payment gateways like **Stripe, PayPal, Authorize.Net, Redsys**, and more.
- [Changeover Days](https://wpbookingcalendar.com/features/#change-over-days) - enable **split bookings** marked by vertical or diagonal lines, allowing visitors to check out and check in on the same date.
- [Range days selection](https://wpbookingcalendar.com/features/#range-days-selection) - easily enable week(s) or any specific number of days selection with 1 or 2 mouse clicks, and configure minimum and maximum number of days, as well as specific start weekdays for selections.
- [Auto Approval / Cancellation](https://wpbookingcalendar.com/features/#auto-cancellation) - set up automatic cancellation of unpaid pending bookings after a specific time, or enable auto-approval for incoming bookings.
- [Advanced Hourly Bookings](https://wpbookingcalendar.com/features/#times) - increase the flexibility of your Booking Calendar by allowing visitors to book specific start and end times or duration of time, ensuring precise scheduling for your services.

**Booking Calendar Business Medium (or higher versions)**
- [Seasonal Prices](https://wpbookingcalendar.com/features/#rates) - customize the daily cost (rates) for different seasons or week days with fixed costs per day or as a percentage from original daily cost.
- [Multi-Day Pricing](https://wpbookingcalendar.com/features/#valuation-days) - set different cost of booking based on the number of selected days, and the ability to apply these costs only if the "Check In" day falls within a specific season.
- [Last Minute Booking Discount](https://wpbookingcalendar.com/features/#early-late-discounts) - offer a discount for bookings, if the difference between the booking date and the check-in date is less than a specified number of days.
- [Early Booking Discounts](https://wpbookingcalendar.com/features/#early-late-discounts) - set a discount for bookings made in advance, if the difference between the booking date and the check-in date is greater than a specified number of days.
- [Advanced cost](https://wpbookingcalendar.com/features/#additional-cost) - configure the booking cost based on the options selected in the form, by adding extra charges such as taxes, additional services, or by adjusting the cost based on the number of visitors.
- [Deposit payments](https://wpbookingcalendar.com/features/#deposit) - allows visitors to pay a part of the booking cost such as a fixed deposit value or percentage of the original booking cost after creating a booking.
- [Multiple Custom Forms](https://wpbookingcalendar.com/features/#custom-forms) - create multiple form configurations, allowing you to use different forms with different form fields for each of your booking resources.
- [Advanced days selection](https://wpbookingcalendar.com/features/#advanced-days-selection) - customize the specific number of days that can be selected on specific weekdays or during certain seasons or allow specific start week days on certain season.
- [Different time-slots on different days](https://wpbookingcalendar.com/features/#times-week-days) - configure different time slots for different week days or seasons.
- [Advanced Season Availability](https://wpbookingcalendar.com/features/#availability) - set unavailable days for specific seasons, such as holidays or weekends during summer, using conditional season filters.
- [Availability from Today](https://wpbookingcalendar.com/features/#availability-from-today) - limit or define the number of available/unavailable days starting from today.
- [Unavailable time before or after a booking](https://wpbookingcalendar.com/features/#unavailable-time-after-before-booking) - setting the number of minutes, hours, or days needed for cleaning or other services, applicable to bookings with time slots or change-over days feature.

**Booking Calendar Business Large (or higher versions)**
- [Capacity and Availability](https://wpbookingcalendar.com/features/#capacity) - set the  the maximum number of bookings that can be made per full day or time slots  in calendar, and ensure that dates in the calendar are only available until the capacity is reached.
- [Search Availability](https://wpbookingcalendar.com/features/#search) - allows your website visitors to quickly search for available booking resources such as properties or services by entering check-in/out dates and other criteria like the number of guests or specific amenities.
- [Coupons for Discounts](https://wpbookingcalendar.com/features/#coupons) - offer discounts to your visitors by creating coupon codes that can be entered in the booking form.
- [Auto-Cancel Pending Bookings](https://wpbookingcalendar.com/features/#pending-available) - enable automatic cancellation of pending bookings for specific dates when you approve booking for the same resource.

**Booking Calendar MultiUser version**
- [MultiUser Booking Admin Panels](https://wpbookingcalendar.com/features/#multiuser) - enable each registered WordPress user to have their own individual booking admin panel, where they can see and manage only their own bookings, resources, and settings. This includes the ability to configure their own booking form, receive notifications to own separate emails, and activate payment gateways for their own payment accounts.

= Privacy Notices =

* Please note, Booking Calendar plugin saving all booking details at your WordPress database at your server. Its does not transfer your booking details to our servers and does not store such info about booking details at our server(s). Please check more detail about this [here](https://wpbookingcalendar.com/faq/where-is-saving-booking-data-gdpr/)
* Additionally please note, you can add the "required checkbox" to your booking form at the Booking > Settings > Form page, to accept your terms and conditions.

= Support Languages (local) =

- English
- French (France)              97.06% [ 3635 / 3745 ], fuzzy 66, not translated 44
- Danish                       68.12% [ 2551 / 3745 ], fuzzy 552, not translated 642
- Dutch                        60.77% [ 2276 / 3745 ], fuzzy 828, not translated 641
- Norwegian (Bokmål)           56.32% [ 2109 / 3745 ], fuzzy 586, not translated 1050
- German                       56.32% [ 2109 / 3745 ], fuzzy 935, not translated 701
- Hungarian                    52.02% [ 1948 / 3745 ], fuzzy 1011, not translated 786
- Korean                       51.99% [ 1947 / 3745 ], fuzzy 1008, not translated 790
- Spanish (Spain)              47.85% [ 1792 / 3745 ], fuzzy 1025, not translated 928
- Portuguese (Brazil)          45.13% [ 1690 / 3745 ], fuzzy 1133, not translated 922
- Greek                        44.83% [ 1679 / 3745 ], fuzzy 1142, not translated 924
- Turkish                      44.25% [ 1657 / 3745 ], fuzzy 1157, not translated 931
- Italian                      43.12% [ 1615 / 3745 ], fuzzy 1059, not translated 1071
- Spanish (Mexico)             41.44% [ 1552 / 3745 ], fuzzy 1209, not translated 984
- Finnish                      41.20% [ 1543 / 3745 ], fuzzy 1218, not translated 984
- Polish                       41.15% [ 1541 / 3745 ], fuzzy 1205, not translated 999
- Romanian                     40.80% [ 1528 / 3745 ], fuzzy 1219, not translated 998
- Swedish                      40.59% [ 1520 / 3745 ], fuzzy 1227, not translated 998
- Arabic                       40.19% [ 1505 / 3745 ], fuzzy 1245, not translated 995
- Russian                      40.13% [ 1503 / 3745 ], fuzzy 1474, not translated 768
- Bulgarian                    38.93% [ 1458 / 3745 ], fuzzy 1260, not translated 1027
- Slovenian                    38.83% [ 1454 / 3745 ], fuzzy 1263, not translated 1028
- Chinese (Taiwan)             37.78% [ 1415 / 3745 ], fuzzy 1303, not translated 1027
- Portuguese (Portugal)        37.49% [ 1404 / 3745 ], fuzzy 1288, not translated 1053
- Japanese                     36.98% [ 1385 / 3745 ], fuzzy 772, not translated 1588
- Chinese (China)              36.26% [ 1358 / 3745 ], fuzzy 1288, not translated 1099
- Ukrainian                    35.99% [ 1348 / 3745 ], fuzzy 1298, not translated 1099
- Catalan                      35.41% [ 1326 / 3745 ], fuzzy 1224, not translated 1195
- Thai                         35.33% [ 1323 / 3745 ], fuzzy 1334, not translated 1088
- Hebrew                       35.11% [ 1315 / 3745 ], fuzzy 1322, not translated 1108
- Galician                     34.21% [ 1281 / 3745 ], fuzzy 1374, not translated 1090
- Slovak                       31.80% [ 1191 / 3745 ], fuzzy 1287, not translated 1267
- Croatian                     30.79% [ 1153 / 3745 ], fuzzy 1303, not translated 1289
- Czech                        30.68% [ 1149 / 3745 ], fuzzy 1253, not translated 1343
- Chinese (Hong Kong)          18.16% [ 680 / 3745 ], fuzzy 545, not translated 2520

Please recheck the status of each translation, before using plugin.
We open for your help in new translations or correcting existing ones. You can translate to new language or update exist one, using this [tutorial of translation](https://wpbookingcalendar.com/faq/make-translation-of-wp-plugin/)
= Tech support =

If you have some questions, which you haven't found at [FAQ](https://wpbookingcalendar.com/faq/) you can post them at [technical help board](https://wpbookingcalendar.com/support/)

== Screenshots ==
1. **Drag & Drop Booking Form Builder**: Create booking forms visually without manually editing complex shortcodes or form codes.
2. **Full-Day Bookings**: In this screenshot, you can see the front-end booking form. It enables users to select and **book multiple days in the calendar** without time fields.
3. **Time-Slot Appointment Bookings**: This screenshot displays the front-end booking form. It allows users to select **single day** in the calendar and **times** (time-slots or start time and duration of service) in the booking form.
4. **Time Slots Availability**: Block or unblock unavailable time intervals by resource and date range using an interactive timeline with booked and unavailable states.
5. **Booking Listing**: You can easily manage all your bookings in one place by searching bookings by keyword, dates, status, and other parameters.
6. **Booking Listing** panel provides a smooth user experience by working instantly without page refresh.
7. **Timeline View**: Get a clear overview of all your bookings.
8. **Calendar Availability**: Super easily set available or unavailable dates in the calendar with just 3 mouse clicks.
9. **Publish Booking Form into a page**. Alternatively you can easily publish a booking form or availability calendar from the WP Booking Calendar > Publish menu page into existing or new pages.
10. **Contact Form**. Easy to create **contact form**, **request forms**, **inquiry forms** ... where the calendar is optional.

== Changelog ==
= 11.3 =
- Changes in **all** versions:
	* **New**: Added a dedicated **Appearance / Theme** settings page with a live calendar and booking form preview. Users can select the calendar skin, booking form light/dark theme, time picker skin, preview mode, booking resource, number of months, and custom booking form from one visual interface before saving the final design.
	* **New**: Added a new **Calendar** settings page with a live calendar preview and right-side settings panels. Administrators can configure days selection, changeover days, calendar legend, date tooltips, mobile month behavior, and other calendar options while immediately seeing how the calendar reacts.
	* **New**: Added a dedicated **Resources > Capacity Rules** submenu for capacity-related settings, including booking quantity control, quantity field selection, pending days as available, and auto-cancel rules. These settings were moved from the general Settings area to the Resources section where they better match the resource workflow.
	* **Improvement**: Reworked Setup Wizard navigation so the Color Theme and Days Selection steps open the new Appearance / Theme and Calendar settings pages instead of the old settings screens.
	* **Improvement**: Improved the new Calendar settings preview so days selection, range selection hints, changeover days, calendar legend, and tooltip options are refreshed in real time using the same calendar behavior as the front-end booking form and Add Booking workflows.
	* **Improvement**: Improved Calendar and Theme settings preview performance by delaying preview reloads while typing in text fields, avoiding unnecessary repeated AJAX requests.
	* **Improvement**: Added submenu links for sections of the new Calendar settings page, allowing administrators to open the Calendar page directly to Days Selection, Changeover and Times, Calendar Legend, Calendar Dates Tooltips, or Calendar General sections.
	* **Improvement**: Added a shared top path/status line across Booking Calendar admin pages, showing clear navigation such as Booking Calendar > Settings > Calendar > Days Selection.
	* **Improvement**: Improved admin layout persistence. The left sidebar view mode and full-screen mode are now saved per user, while special workflows such as the Form Builder and Setup Wizard can still force their required layout.
	* **Improvement**: Updated predefined booking form templates so the standard form uses the default days selection behavior instead of forcing single-day selection.
	* **Removed**: Removed the advanced "Show partially booked days with the same background as the legend item" setting to keep the new Appearance / Theme page simpler. Sites that still need the old visual behavior can add the `wpbc_timeslot_day_bg_as_available` CSS class to an outer wrapper around the booking form or calendar. The compatibility CSS remains in these direct calendar skin files: `24_9__light.css`, `black.css`, `black-2.css`, `green-01.css`, `light-01.css`, `multidays.css`, `premium-black.css`, `premium-light.css`, `premium-light-noborder.css`, `premium-marine.css`, `premium-steel.css`, `premium-steel-noborder.css`, `standard.css`, `traditional.css`, `traditional-light.css`, and `traditional-times.css`.
	* **Removed**: Removed the old **Settings > Calendar > Calendar Settings** submenu because its options are now available in the new Calendar settings page, and capacity options were moved to Resources > Capacity Rules.
	* **Fix**: Resolved an issue where incorrect text colors were appearing in the booking form on certain themes.
	* **Fix**: Fixed a Setup Bar lifecycle issue where the wizard could keep running on the wrong admin pages after setup navigation.
	* **Fix**: Fixed early translation loading notices caused by Setup Wizard startup checks being initialized too early on some WordPress installations.
	* **Fix**: Fixed Calendar settings saving and preview handling for dynamic weekdays used by range days selection.
	* **Fix**: Fixed changeover day preview rendering in the new Calendar settings page, including calendar date cells and legend items for diagonal or vertical changeover styles.
	* **Fix**: Fixed the historical "Disable times in tooltips" option by presenting it as a clearer "Enable times in tooltips" setting while preserving the existing stored option behavior.
	* **Fix**: Fixed the Booking Listing "Emails sending" toggle so the saved user choice is shown correctly after reloading the page.

= 11.2.1 =
- Changes in **all** versions:
	* **Fix**: Fixed a fatal error during plugin activation/update by loading the Booking Form Builder settings helper before Setup Wizard route initialization. E.g.: Uncaught Error: Class "WPBC_Frontend_Settings" not found ...

= 11.2 =
- Changes in **all** versions:
	* **New**: Redesigned the Setup Wizard flow with a floating Setup Bar that guides users through configuration on the relevant Booking Calendar admin pages.
	* **New**: Reused existing settings pages for post-booking-type configuration, including form setup, date selection, availability, working time, color theme, and publishing.
	* **New**: Added step-aware progress, Back/Continue/Finish controls, save-required detection, contextual guidance, and automatic section scrolling/highlighting.
	* **New**: Improved Setup Bar behavior with draggable positioning, smart sidebar avoidance, collapse/reset controls, fullscreen setup mode, and reliable completion handling.
	* **New**: Added front-end popup support for booking forms via shortcode parameters.
	* **New**: Use [booking resource_id=1 popup=1] to display a button that opens the booking form in a modal window.
	* **New**: Added popup customization parameters: popup_button_title, popup_title, popup_button_class, popup_modal_class, and popup_size.
	* **New**: Added dedicated [booking_popup] shortcode as an alias for [booking popup=1].
	* **Improvement**: Popup booking forms now load the required modal JavaScript and CSS automatically on front-end pages.
	* **Improvement**: Popup functionality is front-end only and does not affect booking edit pages or admin panel modal windows.
	* **Fix**: Fixed Time Slots Availability popup console warnings caused by deprecated jQuery patterns. The popup now avoids jQuery Migrate notices when rendering the time axis, parsing dates, and showing selected time ranges.
	* **Improvement**: Improved the “Create Booking for Selection” flow in the Time Slots Availability popup. The Add Booking popup is now validated before closing the Time Slots popup, and the handoff waits for the first popup to close before opening the booking form, preventing cases where no popup appears after clicking create booking.
	* **Improvement**: Improved Add Booking creation from Time Slots Availability for multi-date dragged selections. Admin-selected time intervals are now treated as explicit time overrides during backend availability validation, so dates are checked against the real booked intervals instead of being rejected only because all normal booking-form-generated time slots are unavailable. Real full-day bookings and day-level unavailable rules still block booking creation.
	* **Fix**: Fixed PHP 8+ fatal error on the Form Builder page when malformed legacy custom forms data caused count() to receive a string instead of an array. Previously  error could look like this: Technical Issue (wp_php_error_message) Uncaught TypeError: count(): Argument #1 ($value) must be of type Countable|array, string given in ../booking/includes/page-form-builder/bfb-ui-elements.php:224
	* **New**: Added the “Append extra day after imported checkout day” option to the .ics import Sync Options. This option can be used together with “Append check out day” to block one additional day after the checkout date from imported .ics feeds.
- Changes in **Personal / Business Small / Business Medium / Business Large / MultiUser** versions:
	* **Fix**: Fixed Form Options Costs parsing for selectbox fields with quoted defaults, e.g. [selectbox visitors default="1" "1" "2" "3" "4"] (BM+)
	* **Fix**: Add Booking page/popup now correctly loads the default custom booking form assigned to the selected booking resource, including when creating bookings from Time Slots Availability. (BM+)
	* **Fix**: Resolved an issue where fixed costs from Form Options Costs could be reduced to 0 when an Early / Late Booking discount, such as Last Minute discount, was applied. Fixed by applying the Early / Late discount before adding form option costs.
	* **Fix**: Resolved contact form submissions without a calendar failing change-over day validation.

= 11.1 =
- Changes in **all** versions:
	* **New**: Added Working Time availability rules for time-based booking forms on the WP Booking Calendar > Availability > General Availability page . Administrators can now define allowed working hours for bookings that use time fields, including rangetime, start/end time, and start/duration time.
	* **New**: Working Time restrictions affect only time-based bookings and do not mark dates as partially booked unless all selectable time slots for that date become unavailable.
	* **New**: Improved Time Slots Availability to display time outside configured Working Time as read-only unavailable intervals, with direct links back to General Availability settings.
	* **Improvement**: Improved the Add Booking popup so administrators can create bookings for past dates when needed, and can edit existing bookings that already contain past dates.
	* **Improvement**: Added the ability to create a new booking directly from a selected interval in the Time Slots Availability interface. The Add Booking popup now shows the selected start/end time fields and includes a toggle to use or ignore the selected timeline interval for the new booking.
	* **New**: Add new dark  calendar  skin 26_5__dark_1.css
	* **Fix**: Fixed an issue where bookings with selected start/end times from the Time Slots Availability popup could still be rejected as unavailable when booking in the past was allowed.
	* **Fix**: Fixed editing of existing bookings with past dates and times, including forms using range time, start/end time, or start time with duration fields.
	* **Fix**: Fixed an issue where an invalid “specific number of days” value in dynamic range date selection could generate malformed JavaScript and prevent Booking Calendar front-end variables. Error could look  like this: [WPBC][GLOBAL-ERROR] can't access property 0, _wpbc.get_other_param(...) is undefined TypeError: can't access property 0.
- Changes in **Personal / Business Small / Business Medium / Business Large / MultiUser** versions:
	* **New**: Added support for default Working Time rules and per-booking-resource overrides. Each resource can inherit the default schedule, use its own custom working hours, or be excluded from Working Time restrictions.

= 11.0 =
- Changes in **all** versions:
	* **New**: Added Time Slots Availability page under Booking Calendar > Availability, allowing administrators to define unavailable time intervals for specific booking resources and date ranges.
	* **New**: Added a reusable Set Times Availability popup to the Booking Listing page, so unavailable time intervals can be managed without leaving the bookings workflow.
	* **New**: Added the ability to create a new booking directly from a selected time interval in the Time Slots Availability popup.
	* **New**: Added interactive timeline selection for blocking or unblocking time intervals, including multi-day selection, adjustable time ranges, and visible booked/unavailable states.
	* **New**: Added support for showing unavailable days in the Time Slots Availability timeline, including days blocked by Days Availability, Season Availability, unavailable weekdays, unavailable time from current time, and limit available days from today settings.
	* **New**: Added quick links from unavailable full-day timeline bars to the related availability settings page, helping administrators identify and adjust the rule that made a date unavailable.
	* **Improvement**: Added Add Booking popup integration, with selected booking resource, date, and start/end time prefilled from the selected timeline interval.
	* **Improvement**: Improved Time Slots Availability controls with date range navigation arrows, visible time range controls, slot step selection down to 5 minutes, and sticky timeline headers for easier work with long date ranges.
	* **Improvement**: Added progress indicators while loading, blocking, unblocking, and saving time availability changes.
	* **New**: Added a faster Add Booking popup to the Booking Listing and Timeline pages. Users can now create bookings without leaving the current view, choose the booking resource and custom form inside the popup, edit existing bookings in the same popup, and jump directly to edit the selected booking form.
	* **Improvement**: Improved booking navigation: the Add Booking page is now available under the Bookings section, while Booking Listing and Timeline include a clearer “New booking” quick-action button for opening the popup without leaving the current view.
	* **New**: Added a new General Availability settings page for defining global front-end availability rules across all calendars and booking resources. The page includes a live calendar preview, unavailable weekday toggles, availability limits from the current date, booking buffer controls where supported, AJAX saving, reset-to-default preview controls, and a shared right-side palette layout consistent with the Availability and setup wizard interfaces.
	* **Fix**: Fixed calendar booking status detection.  Fix improves how the front-end calendar reads approved and pending booking statuses for capacity-based resources, including parent/child resources and change-over dates. This should make the front-end booking form calendar reflect the real availability more clearly.
	* **Fix**: Fixed availability calculation for Booking Form Builder forms with time-slot fields. This ensures dates are marked as fully unavailable when all booking form time slots are already booked, instead of incorrectly appearing as partially available. (10.15.8.2)
	* **Fix**: Fixed a fatal error on some hosts by reading the local PRO meta.json file directly instead of using WordPress FTP filesystem access.
- Changes in **Personal / Business Small / Business Medium / Business Large / MultiUser** versions:
	* **Improvement**: Added resource-level exceptions for changeover days, so selected booking resources can use their own same-day times instead of global check-in/check-out times across front-end, admin, and edit flows.

= 10.15.7 =
- Changes in **all** versions:
	* **New**: Added Calendar Skin selection to the Calendar field inspector in the Booking Form Builder, including live Canvas preview, Preview iframe support for unsaved changes, manual saving, and automatic saving when the booking form is saved. (10.15.7.2)
	* **New**: Added Calendar Legend configuration to the Calendar field inspector in the Booking Form Builder. The inspector now supports enabling the legend, activating individual legend items, editing item titles, showing date numbers, and switching legend layout between row and column display. These settings are saved as global calendar options. (10.15.7.2)
	* **Improvement**: Added a flexible global option autosave workflow in the Booking Form Builder, allowing inspector-based global options to be automatically saved when the booking form is saved. (10.15.7.2)
	* **Improvement**: Added automatic global saving support for the “Show as time picker” option in time field packs. (10.15.7.2)
	* **Improvement**: Updated the Calendar field Canvas preview to start from the next month, improving the visual preview near the end of the current month. (10.15.7.2)
	* **Improvement**: Added validation in the Booking Form Builder to prevent using the standard rangetime field and conditional weekday time slots field in the same booking form, because both fields use the same rangetime booking form value.
	* **Improvement**: Refactored global option saving into an extensible option save policy system, keeping the generic save/load option handler cleaner and easier to extend. (10.15.7.2)
	* **Compatibility**: Restricted Calendar Skin, Calendar Legend, and time-slot global option controls for regular users in the Booking Calendar MultiUser version, because these users do not have access to global options. (10.15.7.2)
- Changes in **Personal / Business Small / Business Medium / Business Large / MultiUser** versions:
	* **New**: Added a new Weekday Time Slots field pack in the Booking Form Builder for configuring different rangetime selections for specific weekdays, such as separate time slots for weekdays, weekends, or individual weekday groups. (10.15.7.1)
	* **New**: Added a new Season Time Slots field pack in the Booking Form Builder for configuring different rangetime selections for selected season filters. The field pack lists available season filters and generates conditional booking form shortcodes for season-based time-slot availability. (10.15.7.1)

= 10.15.6 =
- Changes in **all** versions:
	* **New**: Added Free version support for live booking form hint shortcodes: [check_in_date_hint], [check_out_date_hint], [selected_dates_hint], [days_number_hint], [start_time_hint], and [end_time_hint]. These hints now update after date/time selection using the existing Booking Calendar AJAX flow. (10.15.6.2)
	* **New**: Created 4 default pages with different forms: Full-Day bookings, 20-minute time-slot bookings, service appointment bookings, and a simple contact form.
	* **Improvement**: Updated the Booking Calendar top menu to show direct links to all 4 default booking pages created during plugin activation, instead of only one generic booking form page.
	* **New**: Added a new Full-Day / Advanced / 3 Steps Review with Hints booking form template. This template provides a guided three-step booking flow: date selection with live booking, availability, nights, and cost hints; customer and guest details; and a final review step with booking summary, terms acceptance, and submit action. (10.15.6.1)
	* **New**: Added a new three-step 20-minute time-slot booking wizard with date and time selection, live date/time hints, customer details, and a final review step before sending.
	* **New**: Added a new three-step service appointment booking wizard with service duration, date and start time selection, live date/time hints, customer details, and a final review step before sending.
	* **New**: Added a new calendar skin, 26_4_green_1.css, for full-day bookings.
	* **Fix**: Fixed section appearance selection in dark mode.

= 10.15.5 =
- Changes in **all** versions:
	* **New**: Added the new **Accept Terms and Conditions** field to the **Drag & Drop Booking Form Builder**. Create a required consent checkbox and define one or multiple custom links to your Terms, Conditions, Privacy Policy, or other related pages.
	* **Fix**: Prevent showing error message,  if no email  fields,  and emails because of that  is not sending. (10.15.5.1.)
	* **Fix**: Support PHP 8.4 - Resolved isue: TypeError: Unsupported operand types: string * int (10.15.5.3.)
	* **Fix**: Improved compatibility with older PHP versions by fixing a PHP parse error in the Form Builder AJAX controller. (E_PARSE error on line 222 in ../page-form-builder/ajax/bfb-ajax.php.) (10.15.5.6.)
- Changes in **Personal / Business Small / Business Medium / Business Large / MultiUser** versions:
	* **New**: Added new hint field packs to the **Drag & Drop Booking Form Builder**, including selected dates/times, check-in/check-out dates, start/end time, number of days/nights, cancellation/pre-check-in dates, booking resource info, capacity, and cost-related hints. These fields make it easier to insert supported hint shortcodes directly from the builder palette.
	* **Improvement**: Prevents start  day selection on check in date of existed another booking, if activated change-over days feature. (10.15.5.8.)

= 10.15.4 =
- Changes in **all** versions:
	* **Fix**: Showing options for the "Booking Quantity Control" field,  regarding custom booking forms in the new Forms Builder. This fix related to  the  Booking Calendar Business Large or higher version. (10.15.4.1)

= 10.15.3 =
- Changes in **all** versions:
	* **Fix**: Exclude the Preview page from nav menus (10.15.3.1)

= 10.15.2 =
- Changes in **all** versions:
	* **Fix**: Force a safe template for the BFB Preview page. (10.15.2.1)

= 10.15.1 =
- Changes in **all** versions:
	* **New**: 3 new shortcodes for email  templates on the WP Booking Calendar > Settings > Emails page:  [days_count], [nights_count], [days_count_plus1day] for showing number of booked dates/nights. (10.15.1.3.)
	* **Fix**: Responsive columns for rows section in booking form for mobile devices. (10.15.1.1.)
	* **Support**: Improved CSS for compatibility with  latest  WordPress 7.0 release. (10.15.1.7.)

= 10.15 =
- **NEW / BETA** Introduced the new **Drag & Drop Booking Form Builder** for visually creating booking forms without manually editing form code.
	* Build forms by dragging fields directly into the canvas.
	* Edit layouts visually with instant live preview.
	* Create modern booking forms faster and more easily.
- **NEW** Added support for **Contact Forms / Inquiry Forms / Request Forms** — the calendar is now optional.
	* Create forms without booking dates when you only need contact, inquiry, or request submissions.
	* Use Booking Calendar as a flexible alternative to traditional contact form plugins.
	* Keep all submissions managed inside Booking Calendar with a powerful request listing and admin workflow.
- **NEW** Booking Calendar now supports **multiple custom booking form configurations** in all versions, including the Free version.
	* Create and use different forms for different pages, services, or booking scenarios.
	* Manage multiple form layouts from one place more easily.
- **NEW** Added **ready-to-use form templates** for faster form creation.
	* Start with predefined templates for booking, contact, and inquiry forms.
	* Or begin with a blank canvas for full flexibility.
- **NEW** Added support for **importing existing legacy booking forms** into the new Form Builder.
	* Helps you move existing form setups into the new visual editing workflow more easily.
- **NEW** Added **preview page / live front-end preview** for testing forms before publishing.
	* Check how the form looks and works on the front end before using it on your website.
- **NEW** Booking Form Builder supports both **Builder mode** and **Advanced Form mode (Pro)**.
	* Work visually in the Builder, or use manual form configuration when needed.
	* Gives more flexibility for different workflows and advanced customizations.
- **NEW** The **Drag & Drop Booking Form Builder** includes powerful layout and editing tools:
	* **Drag & drop fields from the Fields palette** directly into the form canvas.
	* **Live visual preview** while building and editing the form.
	* **Multi-page forms** for creating **step-by-step wizard-style** booking forms.
	* **Rows and columns layout** for clean and structured form designs.
	* **Nested sections** (up to 5 levels) for advanced multi-row and multi-column layouts.
	* **Ready section layouts** with 1, 2, 3, or 4 columns.
	* **Column resizing with visual resizers** for precise control of field and layout widths.
	* **Drag & drop sorting of sections** to quickly reorder the form layout.
	* **Move Up / Move Down controls** for easier section management.
	* **Field usage limits** that automatically prevent adding one-time fields, such as the Calendar field, more than once.
	* **Right sidebar inspector** for easy editing of field and section settings.
	* **Responsive-friendly column width control** with layout protection for better form structure.
	* Improved **visual editing controls** for easier field, section, and layout management directly inside the canvas.
- **NEW** Added flexible **form configuration management** tools.
	* Save and restore complete form layouts, including pages, sections, columns, and fields.
	* Load previously saved form structures with full layout restoration.
	* Duplicate existing form configurations to create similar forms faster.
	* Use **Save As** to create a new form based on an existing layout and settings.
	* Organize and preview custom form setups more easily.
- **NEW** Added support for **form details management**.
	* Set a custom form title, slug, description, and image.
	* Use **media library integration** to select a custom image for each form configuration.
- **NEW** Added support for **blank form creation in Builder mode**.
	* New forms can now start immediately in the visual Builder workflow.
- **NEW** Added **section presets** for faster layout building.
	* Quickly insert commonly used layout structures into the form.
- **NEW** Added support for a modern **visual form editing workflow** instead of manual shortcode-based configuration.
- **IMPROVED** Easier creation of complex booking forms with a more user-friendly and modern builder interface.
- **IMPROVED** Faster form setup and editing thanks to visual drag & drop controls and instant preview updates.
- **NOTE** This **beta feature** can still be disabled at any time in this update. You can return to the previous legacy booking form configuration via **Form Builder > Settings** in the right sidebar by disabling the **“Drag & Drop Form Builder”** option.

- Find more at [this page](https://wpbookingcalendar.com/changelog/)

== Upgrade Notice ==
= 11.3 =
Added new visual Settings > Calendar and Settings > Appearance / Theme pages with live previews, moved capacity rules to Resources, and improved admin navigation, setup flow, and preview behavior.

= 11.2 =
Redesigned Setup Wizard with a floating Setup Bar that guides configuration across the relevant admin pages. Adds front-end popup booking forms via [booking resource_id=1 popup=1] and [booking_popup], and other improvements...

= 11.1 =
Added Working Time settings to Availability > General Availability, allowing administrators to restrict time-based bookings to specific working hours.

= 11.0 =
Added Time Slots Availability and General Availability tools for more precise availability management. Administrators can block or unblock exact time intervals from the Availability page or bookings workflow, review booked and unavailable states in an interactive timeline, and create new bookings from selected available intervals with resource, date, and time prefilled. Also includes a faster Add Booking popup and availability accuracy fixes.

= 10.15 =
New **Drag & Drop Booking Form Builder** for visually creating booking, contact, and inquiry forms. Build forms faster with live preview, templates, multi-page layouts, and flexible visual editing — without manually editing form code.