Booking Calendar Contact Form
Booking Calendar Contact Form
Description
The Booking Calendar Contact Form plugin allows you to create a powerful and flexible booking form for your WordPress website. Easily create a reservation form with a booking calendar where users can select start and end dates (like check-in/check-out) or single dates.
It’s the perfect solution for hotels, property rentals, service providers, and anyone needing to accept bookings and payments. The built-in PayPal integration (which is SCA-ready) allows you to securely process payments for reservations.
The reservation calendar is completely optional, so you can also use the plugin to create a general-purpose contact form or payment form.
🌟 Key Features of the Free Version
- PayPal Integration: Securely accept payments for your bookings. Fully compatible with SCA (Strong Customer Authentication) / PSD 2.
- Reservation Calendar: Allow users to select:
- Start and end dates (e.g., check-in / check-out)
- A single date
- Flexible Booking Types: Supports full-day (the entire day is blocked) or partial-day (hotel-style, where check-out and check-in can happen on the same day).
- Availability Management: Optional date verification prevents double-booking by blocking dates as they are reserved.
- Seasonal Pricing: Configure different prices for different date ranges (e.g., high season, low season, holidays).
- Flexible Pricing Rules: Define prices based on the number of days selected (e.g., weekly rates, 3-day specials).
- Fixed-Length Bookings: Enforce specific booking lengths (e.g., weekly-only bookings).
- Responsive & Mobile-Optimized: The form and calendar look and work great on all devices.
- Admin Management: View, manage, and print a list of all bookings from your WordPress dashboard.
- iCal Export Link: Easily export your bookings to external calendars like Google Calendar, Airbnb, etc.
- Configurable Emails: Customize the notification emails sent to the administrator and the user.
- Customizable Messages: Configure all validation messages and date format settings.
- Block Dates: Mark holidays or other specific dates as “not available.”
- Built-in Anti-Spam: Includes a built-in CAPTCHA to protect your form.
- Multi-User Support: Assign a calendar to a specific WordPress user (e.g., an editor) to let them manage their own bookings.
- Calendar Styling: Includes multiple colors for marking dates on the calendar.
### A Flexible Solution for Any Website
- Hotel & Room Booking: Use the partial-day booking type to manage hotel or B&B reservations.
- House & Apartment Rentals: Use the full-day booking type for property rentals.
- Service Bookings: Allow clients to book appointments, classes, or services.
- General Payment Form: Hide the calendar to create a simple contact or payment form connected directly to PayPal.
Note: Payments processed through the plugin are SCA ready (Strong Customer Authentication), compatible with the new Payment services (PSD 2) – Directive (EU).
### Looking for More Features?
This free version is powerful, but our Commercial Versions unlock even more functionality:
- Visual Form Builder: A drag-and-drop builder to completely customize your form fields.
- Full iCal Sync: Two-way synchronization with external calendars (Google Calendar, Airbnb, etc.) to import and export availability.
- Coupons & Discount Codes: Offer special promotions and discounts.
- …and many other advanced features.
For more details on the commercial versions, please visit the plugin’s website.
Language Support
The Booking Calendar Contact Form plugin is compatible with all charsets and supports translation through standard PO/MO files located in the /languages/ folder.
The following translations are already included:
- Afrikaans (af)
- Albanian (sq)
- Arabic (ar)
- Armenian (hy_AM)
- Azerbaijani (az)
- Basque (eu)
- Belarusian (be_BY)
- Bosnian
- Bulgarian
- Catalan (ca)
- Central Kurdish (ckb)
- Chinese (China) (zh_CN)
- Chinese (Taiwan) (zh_TW)
- Croatian (hr)
- Czech (cs_CZ)
- Danish (da_DK)
- Dutch (nl_NL)
- English
- Esperanto (eo_EO)
- Estonian (et)
- Finnish (fi)
- French (fr_FR)
- Galician (gl_ES)
- Georgian (ka_GE)
- German (de_DE)
- Greek (el)
- Hebrew (he_IL)
- Hindi (hi_IN)
- Hungarian (hu_HU)
- Indonesian (id_ID)
- Italian (it_IT)
- Japanese (ja)
- Korean (ko_KR)
- Latvian (lv)
- Lithuanian (lt_LT)
- Macedonian (mk_MK)
- Malay (ms_MY)
- Malayalam (ml_IN)
- Norwegian (nb_NO)
- Persian (fa_IR)
- Polish (pl_PL)
- Portuguese (Brazil) (pt_BR)
- Portuguese (Portugal) (pt_PT)
- Romanian (ro_RO)
- Russian (ru_RU)
- Serbian (sr_RS)
- Slovak (sk_SK)
- Slovene (sl_SI)
- Spanish (es_ES)
- Swedish (sv_SE)
- Tamil (ta)
- Thai (th)
- Turkish (tr_TR)
- Ukrainian (uk)
- Vietnamese (vi)= Troubleshoot Area =
Located below the booking calendars list.
Important: Only use this section if you experience conflicts with third-party plugins, themes, or character encoding.
- Script load method: Switch to “Direct” if the booking form does not appear on the frontend. Otherwise, keep the default “Classic” setting.
- Character encoding: Update the charset if special or non-Latin characters display incorrectly in forms or emails. Note: You must re-enter special characters after updating this setting.
Booking Duration Limits (Global)
- Minimum nights: Bookings must be equal to or longer than this value.
- Maximum nights: Bookings cannot exceed this value.
Price Supplements
Apply automatic price adjustments based on the length of the stay.
- Supplement for bookings between X and Y nights: Adds a one-time fee (or discount) for bookings falling within the specified range.
General Calendar Settings
Settings applicable to both admin and public views:
- Calendar Pages: Number of months to display simultaneously.
- Calendar Language: Auto-detects the browser language. Select manually if auto-detect fails.
- Start Weekday: Sets the first day of the week (e.g., Monday or Sunday).
- Date format: Choose between dd/mm/yyyy or mm/dd/yyyy.
- Accept overlapped reservations: “No overlapped” prevents double-booking (recommended).
- Reservation mode: “Complete Day” charges for both the first and last day. “Partial Day” charges them as half-days.
Public Calendar Settings
Settings specific to the customer-facing calendar:
- Min/Max available date: Limits the selectable date range (e.g.,
2025-12-31,today, ortoday + 3 days). - Working dates: Define which days accept bookings (useful for disabling weekends).
- Disabled and special dates: Click specific dates to block them (e.g., holidays).
- Fixed Reservation Length: Restrict bookings to a specific duration (details below).
Fixed Reservation Length
Enable this to force bookings to span a specific number of days (e.g., strictly 7-day rentals).
- Fixed length (days): The required duration of the booking.
- Start Reservation Date: Restrict check-ins to specific weekdays (e.g., every Monday).
- Disabled and special dates: When this mode is active, use the calendar to mark valid start dates (useful for package tours).
Note: Customers only select the start date; the end date is calculated automatically.
Form Builder
Available in commercial versions. Allows full customization of the form, including adding, editing, or removing fields.
Submit Button
Customize the button label here.
- Styling: Use the CSS class
.pbSubmit. Add custom CSS in the “Customization area” at the bottom of the calendar list page. - Advanced: Modify
dex_scheduler.inc.phpfor structural changes. See the FAQ for CSS samples: https://bccf.dwbooster.com/faq#q82
Validation Texts
Translate or customize the error messages shown when form validation fails.
Price Configuration
Define the pricing structure.
- Currency: PayPal currency code (e.g., USD, EUR, GBP, JPY).
- Default request cost (per day): The standard daily rate.
- Total cost for specific # of days: Overrides the daily rate with a fixed total price for specific durations.
- Supplement for range: Adds a fee (or discount if negative) for bookings within a specific day range.
- Seasons configuration: Define date ranges with custom pricing. Season prices override default costs.
PayPal Payment Configuration
- Enable PayPal: Free version supports On/Off. Commercial versions allow “Optional” (User chooses “Pay Now” or “Pay Later”).
- PayPal Email: The address receiving payments.
- Product Name: The item name shown on the PayPal checkout page.
- Return URL (Success): The full URL customers are redirected to after a successful payment.
- Return URL (Cancel): The full URL customers are redirected to if they cancel payment.
- PayPal Language: Sets the language of the PayPal interface.
- Taxes: Enter a percentage to apply tax at PayPal (e.g., enter
10for 10%). - Discount Codes: (Commercial only) Create codes to apply price reductions.
Optional Services/Items Field
Available in commercial versions. Create selectable extras with associated costs (e.g., Breakfast, Parking, WiFi).
Notification Settings to Administrator(s)
Configure the email sent to you when a booking is made.
- Notification “from” email: The sender address appearing in the notification.
- Send notification to email: The address receiving the notification.
- Subject/Content: Customize the email text. Keep the
%INFORMATION%tag to automatically insert booking details.
Email Copy to User (auto-reply)
Configure the confirmation email sent to the customer.
- Email field on the form: Select the form field where the user enters their email.
- Subject/Content: Customize the confirmation message. Keep the
%INFORMATION%tag to insert booking details.
Captcha Verification
Configure built-in spam protection.
- Use Captcha Verification?: Enable/Disable.
- Dimensions: Set the width and height of the image.
- Chars: Number of characters to display.
- Font Size: Set the min/max randomization size.
- Styling: Customize noise level, background color, border color, and font style.
- Preview: Test the current captcha appearance.
Installation
To install Booking Calendar Contact Form, follow these steps:
- Download and unzip the booking plugin
- Upload the entire booking-calendar-contact-form/ directory to the /wp-content/plugins/ directory
- Activate the Booking Calendar Contact Form plugin through the Plugins menu in WordPress
- Configure the booking form settings at the administration menu >> Settings >> Booking Calendar Contact Form.
- To insert the booking form into some content or post use the icon that will appear when editing contents
Screenshots
Faq
A: The product’s page contains detailed information about each field and customization:
https://bccf.dwbooster.com/documentation
A: This and other questions are already answered in the product’s FAQ at this page:
https://bccf.dwbooster.com/faq
A: In the booking calendar administration area, set the field “Accept overlapped reservations?” to “No”, this way the accommodation availability verification will be disabled. Note that the calendar will disappear from the admin area when you select this setting since its purpose is to define the available days for booking.
A: After clicking the submit / booking button the customer is redirected to a PayPal payment page to submit the payment to confirm it. After completed the payment the reservation is saved into the database and calendar, the dates become un-available it the booking availability verification is enabled and the emails are sent with the booking information and the information entered by the customer on the booking form. At that point the booking information will appear also in the printable bookings list.
A: Into the Booking Calendar Contact Form settings >> PayPal payment form configuration >> PayPal email, be sure to put your own PayPal email address instead the email placeholder put there as default.
A: If you don’t want to edit the MO/PO files then just edit the texts that are at the beginning of the file “dex_scheduler.inc.php” (the booking page). The booking form validation texts can be edited from the administration area.
A: Yes, use the settings fields “Minimum number of nights to be booked” and “Maximum number of nights to be booked” for that purpose. You can also specify a fixed reservation length if you want to allow only bookings of a specific number of days.
A: If the booking calendar 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 booking calendars/items.
A: In addition to the possibility of editing the email contents you can use the following tags:
- <%itemnumber%>: Request ID.
- <%startdate%>: Start date for the booking.
- <%enddate%%>: End date for the booking.
- <%totalcost%%>: Total cost.
- <%email%%>, <%subject%%>, <%message%%>, <%fieldname1%%>, <%fieldname2%>, …: Data entered on each field.
Reviews
best!!!
By lotfreeman on May 25, 2023
Best
Nice
By zodrag on February 21, 2022
This is NOT a free version!
By sparks12345 on March 21, 2021
Absurdistan
By MarkoNovak on October 27, 2020
Fantastic plugin
By 4misty on September 3, 2020
Very good plugin
By gayasa35 on July 1, 2020
Excellent plugin
By ivorphotography on September 6, 2019
Feel Happy to use it
By Mehedi Hasan (wwwmehedi) on August 29, 2019
A plugin with a lot of potential and amazing support.
By filipporezzadore on December 15, 2018
Fantastic Plugin with great features
By clkdigital on December 13, 2018
Changelog
1.0.1
- Interface modifications
- Fix for iCal format bug (the events weren’t marked as all day events)
- Compatible the latest WP and jQuery versions
- Replaced YUI calendar with a jQuery calendar
- Added support for weekly bookings
- New language translations
- Several bug fixes and new features for deposit payments
- Fixed encoding issues at PayPal
- Fixed bug in the address of the corner images for partial days mode.
- CSS styles updates to avoid conflicts with theme styles
- New options for customizing the emails
- New feature for applying taxes
1.0.2
- Compatible with the latest WordPress versions
- New language translations
- Fixed bugs in the language traslations
- Interface updates
- Fixed warning that appeared with PHP safe mode restrictions
- Sanitized GET parameters used in queries
- Fixed issue with the site home URL in WP with folders in non-default locations
- Fixed bug in the url generated for the IPN under HTTPS connections
1.0.3
- Fixed bug in the function that generates the url for the ipn notification
- Update for SQL issues – sanitized values
- Update to make the IPN work over SSL connections
- Fixed bug in email processing
- Updates to minimize conflicts with third party themes and plugins
1.0.4
- New feature to show/hide the calculated cost below the calendar
- CSS update to avoid conflicts with the new WP default theme
- Compatible with the latest WordPress 4.2.2 version
1.0.5
- Fixed notice warning in not active feature
- Fixed bug in date calculation
- Fixed IPN address under SSL connections
- CSS update to fix the floating dialog height
- Fixed conflict of captcha image with zLib library
- Fixed bug in the path calculated for the admin area
- Translations updated
- Improved security
- Compatible with the latest WordPress 4.2.3
1.0.6
- Modification to prevent conflicts with ZLib
- Update to the heading tags for the new WP version
- Fixed bug in IE 11
- Update to translations
- Implemented better submission process
- Compatible with the latest WordPress 4.3
1.0.7
- Value of POST parameter has been corrected
- Update to Dutch language file
- Code sanitization
1.0.8
- Fixed bug in admin area
1.0.9
- Added support for new charsets
1.0.10
- Added access for subscribers to manage their calendars
1.0.11
- Updated menu slug
1.0.12
- Interface updates
1.0.13
- Tested and compatible with WordPress 4.4
1.0.14
- Fixed style in the new WP 4.4 theme
1.0.15
- Fixed captcha issue
1.0.16
- Fixed null value issue in query
1.0.17
- CSS styles updated
1.0.18
- DB structure update
1.0.19
- Fixed captcha issue in Windows servers
1.0.20
- Improved captcha security
1.0.21
- Updates to admin interface
1.0.22
- Translation opdates
- Captcha code updates
- Fixed Polish language ID
1.0.23
- Fixed PHP session issues
1.0.24
- Fixed XSS and SQL injection issues
1.0.25
- Updated API URLs
1.0.26
- Added nonces to delete actions
1.0.27
- Added price formatting
1.0.28
- Fixed bug in admin settings
1.0.29
- Fixed POST parameter in booking form
1.0.30
- Multiple language updates
1.0.31
- Compatible with WP 4.5
1.0.32
- Fixed posted data encoding
1.0.33
- Script load updates for WP 4.5
1.0.34
- Multiple destination emails supported
1.0.35
- Moved old changelogs to external file
1.0.36
- Changed init hook to avoid plugin conflicts
1.0.37
- New reply-to feature for admins
1.0.38
- Removed old versions of Booking Calendar Contact Form
1.0.39
- Fix in throubleshoot area
1.0.40
- Fix in email delivery
1.0.41
- New plugin doc and website
1.0.42
- Updates and docs
1.0.43
- Params sanitization
1.0.44
- Modified from email format
1.0.45
- Update about new versions
1.0.46
- Settings link fixed
1.0.47
- Added fr_CA language
1.0.48
- Compatible with WP 4.6
1.0.49
- New custom mod form
1.0.50
- Changed placeholder from email to avoid PHPMailer errors
1.0.51
- Removed stripslashes function
1.0.52
- Added additional security verification
1.0.53
- Improved magic quotes detection
1.0.54
- Instructions update
1.0.55
- Language update
1.0.56
- Interface update
1.0.57
- Corrections to French language
1.0.58
- Fixed lang identifiers
1.0.59
- Support link tracking
1.0.60
- DB structure updates
1.0.61
- PayPal IPN update
1.0.62
- Improvements to support docs and service
1.0.63
- Compatible with WP 4.7
1.0.64
- PayPal button update
1.0.65
- Instructions update
1.0.66
- DB updated
1.0.67
- New support area
1.0.68
- Captcha update
1.0.69
- Database improvements
1.0.70
- Additional config field
1.0.71
- Fixed bug in bookings list
1.0.72
- Product name update
1.0.73
- Admin intf update
1.0.74
- Dashboard updates
1.0.75
- Old update queries removed
1.0.76
- Security improvement
1.0.77
- Code improvements
1.0.78
- Compatible with WP 4.7.3
1.0.79
- Update related to the parameters in the PayPal IPN notification
1.0.80
- Decreased params number in PayPal IPN
1.0.81
- Tags updated to max 12
1.0.82
- Added email validation in admin
1.0.83
- Type email for email input fields in booking form
1.0.84
- Added more field validation to settings form
1.0.85
- Better captcha code for loading speed and security verificatins
- Better SQL sanitization
1.0.86
- Optional review box
1.0.88
- Replaced link tags by wp_enqueue_style
- Removed notices from admin area when WP_DEBUG enabled
1.0.89
- PayPal email sanitization
1.0.90
- Removed multiple CSS style references replaced by wp_enqueue_style
1.0.91
- Tested and compatible with WordPress 4.8
1.0.92
- Removed deprecated PayPal parameters
1.0.93
- Cleanup for PayPal parameters
1.0.94
- Accessibility updates
1.0.95
- New feature for exporting bookings through iCal link/file
1.0.96
- Moved plugin website and links to SSL
1.0.97
- Removed use of deprecated MySQL functions
1.0.98
- Validation updates
1.0.99
- PayPal return address santized
1.1.05
- Fixed number validation issue in Google Chrome
1.1.06
- Improved print option for bookings list
1.1.07
- Fixes in admin area
1.1.08
- Better PayPal currency selection
1.1.09
- Price number formatting
1.1.10
- Fixed bug in validation translations
1.1.11
- Added general default values
1.1.12
- Admin settings validation improvements
1.1.15
- Security improvement for queries sanitization
1.1.16
- Improved file extension verification
1.1.17
- Encoding fix un public booking form
1.1.18
- Compatible with WordPress 4.9
1.1.19
- Optimized code. Removed blocks not longer needed.
1.1.21
- Improvements to the captcha settings area
1.1.22
- Fixed bug in review panel
1.1.23
- Added CSS and JavaScript customization panel
1.1.24
- Improved submission to prevent duplicated bookings
1.1.25
- Fixes to language settings
1.1.26
- Default script loading changed to classic
1.1.27
- Better currency auto-detection
1.1.28
- Fixes captcha settings issue
1.1.30
- Database structure update
1.1.31
- New feature for backup and restore forms
1.1.33
- Label updates to fix layout issues
1.1.34
- Improved CSS edition area
1.1.35
- Fixed conflict with autoptimize plugin
1.1.36
- Fixed captcha reloading issue
1.1.37
- Better captcha notification messages
1.1.38
- Improvements to bookings list to match GPDR requirements
1.1.39
- Added min and max date validations
1.1.40
- Code speed optimizations and POST data sanitization
1.1.41
- Easier activation process
1.1.42
- Fixed initialization issue and added opt-in feedback
1.1.43
- Fixed bug in activation process
1.1.44
- Added support for INR – Indian Rupee and ARS – Argentine peso currencies
1.1.45
- Database creating encoding fix
1.1.46
- New fix to activation issue
1.1.47
- Fixed conflict with bootstrap calendar
1.1.49
- Compatible with Gutenberg
1.1.50
- Fix to Gutenberg integration
1.1.51
- Fixed conflict with Gutenberg editor
1.1.52
- Fixed magic quotes issue
1.1.53
- Interface icons updated
1.1.54
- Improved custom CSS and JS edition area
1.1.55
- Improved CSS customization
1.1.56
- Fixed jQuery slim conflict
1.1.57
- Currency setting clarifications
1.1.58
- Fixed conflict with third party plugins
1.1.59
- Major update: new visual form builder, publishing wizard, improved interface
1.1.60
- Gutenberg copatibility updates
1.1.61
- Fixed conflict with loading page plugins
1.1.62
- Interface updates and jQuery calendar fixes
1.1.63
- New option for adding bookings in the admin
1.1.64
- Major update: Fully responsive mobile optimized calendar
1.1.65
- Fixed visualization issue.
1.1.66
- Improved calendar rendering
1.1.67
- Improved interface and admin calendar
1.1.68
- New settings for calendar width and height
1.1.69
- New Gutemberg block. Optimized plugin size.
1.1.70
- Fixed data processing issue
1.1.71
- Improved data management
1.1.72
- Removed use of CURL
1.1.73
- Fixed bug in dates selection
1.1.74
- Fixed bug in Gutemberg integration
1.1.75
- Improved language translations and interface styles
1.1.76
- Better email auto-config and compatible with latest WP version
1.1.77
- Fixed bug in email settings
1.1.78
- Fixed bug in saving data process
1.1.79
- Fixed conflict with lazy loading feature of Jetpack
1.1.80
- Fixed conflict with Yoast SEO
1.1.81
- Fixed calender CSS styles issue
1.1.82
- Review link update
1.1.83
- Compatible with WordPress 5.2
1.1.84
- Added onchange event to date fields
1.1.85
- Compatible with Google Translate
1.1.86
- Update for compatibility with WordPress 5.2
1.1.87
- Code improvements
1.1.88
- Misc code improvements
1.1.89
- Fix to database encoding
1.1.90
- Updates to publish section
1.1.91
- Excluded captcha image from smush optimization
1.1.92
- Better support for single day bookings
1.1.93
- PSD 2 complaint – SCA Ready
1.1.94
- Bug fixes and code improvements
1.1.95
- Compatible with WordPress 5.3
1.1.96
- Fixed bug in email delivery
1.1.97
- Fixed conflict with bootstrap date-picker
1.1.98
- Interface improvements
1.1.99
- Rendering speed improvements
1.2.07
- New hooks for conversion tracking
1.2.08
- Compatible with WordPress 5.4
1.2.09
- Fixed conflict with third party optimization plugin
1.2.10
- Update for WordPress Editor
1.2.11
- Fastest form load speed
1.2.12
- Minimized scripts file size
1.2.14
- Fixed availability rendering bug
1.2.15
- Improved import/export area
1.2.16
- Compatible with WordPress 5.5
1.2.17
- Replaces jQuery deprecated code
1.2.18
- Compatible with WordPress 5.6
1.2.19
- New feature to locate the calendar into the form builder
1.2.20
- Script updates
- Compatible with WordPress 5.7
1.2.21
- Added feature for processing bookings without payment process involved
1.2.22
- Add-ons update. Improvements.
1.2.23
- CSS updates
1.2.24
- Database structure update
1.2.25
- PHP 8 compatibility updates
- CSS improvements
1.2.26
- Language support improvements
1.2.27
- Compatible with WordPress 5.8
1.2.28
- Improved price calculation
1.2.29
- Compatible with WordPress 5.9
1.2.30
- jQuery compatibility update
1.2.31
- Compatible with WordPress 6.0
1.2.32
- Validation fix
1.2.33
- Price calculation fix
1.2.34
- New price calculation fix
1.2.35
- Feedback panel update
1.2.36
- Compatible with WP 6.1
1.2.37
- Translation fixes
1.2.38
- Script fix
1.2.39
- PHP 8 fixes
1.2.40
- Javascript and settings fixes
1.2.41
- Output encoding fix
1.2.42
- Output encoding fix
1.2.43
- PHP 8 update
1.2.44
- Compatible with WP 6.2
1.2.45
- WP 6.2 update
1.2.46
- Compatible with WP 6.3
1.2.47
- Duplicate email fix
1.2.48
- Compatible with WP 6.4
1.2.49
- iCal Export fix
1.2.50
- Compatible with WP 6.5
- Removed tags: calendar,payment form,paypal form,reservation calendar,calendar form,paypal booking,paypal calendar,paypal form
1.2.51
- Fixed activation issue
1.2.52
- Compatible with WP 6.6
1.2.54
- Improved bookings list
1.2.55
- Old WP compatibility
1.2.56
- Form builder fixes
1.2.57
- Compatible with WP 6.8
1.2.58
- WP 6.8 pre-fetch
1.2.59
- Code improvements
1.2.60
- Improvements
1.2.61
- More complete PayPal IPN
1.2.62
- Compatible with WP 6.8




