Plugin / Booking Calendar Contact Form




Booking Calendar Form main features:

» Booking form connected to PayPal
» Optional availability verification
» Visual form builder
» Responsive & mobile optimized
» Season management
» Weekly bookings supported
» Fixed days bookings supported
» Full-day bookings or partial-day bookings as used in hotels
» Built-in captcha anti-spam
» Configurable email texts
» Configurable validation messages
» Printable bookings list
» iCal link to export bookings to external calendars (ex: for exporting to Google Calendar, Airbnb, ...)
» Multiple colors for marking dates on the booking calendar 
» ... and more features (see below)

With the Booking Calendar Contact Form you can create a booking form with a reservation calendar or a payment form connected to a PayPal payment button. The reservation calendar lets the customer select the start (ex: check-in) and end (ex: checkout) dates.

The reservation calendar is an optional item, so it can be disabled to create a general purpose payment/contact form.

There are two types of bookings available in the calendar configuration: full day bookings or partial day bookings. With full day bookings the whole day is blocked / reserved while in partial day bookings the start and end dates are partially blocked as used for example in room/hotel bookings.


  • Booking form connected to PayPal: After clicking the reservation / book button on the booking form, the user is redirected to PayPal and after completing the payment three emails will be sent: the automatic PayPal notification, the booking confirmation email to the user sent from the website and the notification email to the website administrator containing the booking details. At this point the booking will be confirmed and will appear in the bookings list and calendar.
  • Reservation / booking calendar with optional availability verification: The dates are blocked in the calendar only if the “bookings overlap” option is enabled (it’s enabled by default).
  • Season management: Configuration accepts different prices for different dates (ex: low / medium / high season prices, special date’s prices, etc…)
  • Supports full-day bookings or partial day bookings as used in hotels / room reservations (details mentioned above)
  • Allows to disable/hide the booking calendar to convert the booking form in a general purpose contact form
  • The calendar an form are fully responsive and mobile optimized

Other features also present in this version:

  • Built-in captcha anti-spam protection on the booking form
  • Easy visual selection of the start and end dates
  • Configurable email texts
  • Configurable validation messages
  • Lets to assign a user to the calendar, this way a user with editor access will access his/her own booking calendar
  • List of bookings with print option
  • Supports bookings of a fixed length, example weekly bookings
  • Price structure can be defined for each number of days
  • Calendar configurable settings: date format, min/max dates, block dates, mark holidays, select working weekdays, calendar pages

What isn’t included in the free version described here?

  • The Form Builder for customizing the form is present only in the commercial versions. The free version works with the classic predefined form included on it.
  • The connection to PayPal is part of the booking process in the free version, so it cannot be disabled on it. The commercial versions have additional code to work with or without the PayPal connection.
  • Full iCal sync available in Platinum version
  • Coupons/discount codes and other minor features are present only in the commercial versions.

For information about the commercial versions check the plugin’s page:

Note: 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.

Language Support

The Booking Calendar Contact Form plugin is compatible with all charsets. The troubleshoot area contains options to change the encoding of the plugin database tables if needed.

Translations are supported through PO/MO files located in the Booking Calendar Contact Form plugin folder “languages”.

The following translations are already included in the plugin:

  • English
  • Turkish
  • 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)
  • 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 (pt_PT)
  • Russian (ru_RU)
  • Romanian (ro_RO)
  • Serbian (sr_RS)
  • Slovak (sk_SK)
  • Slovene (sl_SI)
  • Spanish (es_ES)
  • Swedish (sv_SE)
  • Turkish (tr_TR)
  • Tamil (ta)
  • Thai (th)
  • Ukrainian (uk)
  • Vietnamese (vi)

Troubleshoot Area

The “Troubleshoot Area” is located below the booking calendars list.

Important!: Use the “Troubleshoot Area” area only if you are experiencing conflicts with third party plugins, with the theme scripts or with the character encoding.

Script load method: Change the script load method if the booking form doesn’t appear in the public website. In most cases changing the booking form load method to “direct” will solve the problem, however if possible leave the default setting “classic”.

Character encoding: Update the charset if you are getting problems displaying special/non-latin characters in the booking form, reservation emails or booking list. After updated you need to edit/enter the special characters again.

Min and max number of nights to be booked

There are two new settings in the booking calendar administration area:

Minimum number of nights to be booked: If set to a number greater than zero, the booking form won’t accept bookings of less than the indicated nights.

Maximum number of nights to be booked: The booking form won’t accept booking of more than the indicated nights in this field.

Supplement for specific bookings

You can apply supplements for bookings under some specific number of nights, or over a specified number of nights, or both.

The field “Supplement for bookings between X and Y nights” makes the booking form add the specified supplement once for bookings between the indicated number of nights.

Settings for both admin and public calendars

  • Calendar Pages: Number of calendar months to display at the same time
  • Calendar Language: Language used for the calendar. The default is auto-detect that works in most cases. If the auto-detect doesn’t get the expected language then select it manually.
  • Start Weekday: Start weekday, usually Sunday or Monday.
  • Date format: Select dd/mm/yyyy or mm/dd/yyyy
  • Accept overlapped reservations: Indicate if more than one reservation will be allowed in the same days. Default is “no overlapped” for an active availability verification.
  • Reservation mode: Select Complete day means that the first and the last days booked are charged as full days; Partial Day means that they are charged as half-days only.

Settings for public calendar only

  • Minimum available date: The minimum selectable date in the calendar. Examples: 2012-10-25, today, today + 3 days
  • Maximum available date: The maximum selectable date in the calendar.
  • Minimum number of nights to be booked: The booking form won’t accept less than the indicated nights on this field.
  • Maximum number of nights to be booked: The booking form won’t accept more than the indicated nights on this field.
  • Working dates: Working dates are the dates that accept bookings. Use this for example to disable the weekends or other specific weekdays.
  • Disabled and special dates: Click a date to mark it as disabled, for example for disabling holidays or other dates where reservations aren’t allowed.
  • Enable Fixed Reservation Length?: Use this for allowing only bookings of a specific number of days. More details in the next section

Fixed Reservation Length

If you enable the option “Fixed Reservation Length” for the calendar that means that you want to accept only bookings of the specified length (number of days), for example for accepting only 7 days bookings.

The settings fields for this option are:

  • Fixed reservation length (days): The number of days that must have the booking.
  • Start Reservation Date: Use this for allowing specific weekdays as start of the reservation, for example if you want to indicate that all the bookings must start on a Monday.
  • Disabled and special dates: When the “Fixed Reservation Length” is enabled you can use the calendar for indicating specific starting days for the bookings. This is useful if you are offering packages that start only on specific dates.

When this mode is enabled, the customer only has to select the start day for the booking and the end date is calculated automatically.

Form Builder

The form builder is fully available only in the commercial versions. If allows to fully customizing the form: add, edit and remove fields.

Submit Button

There is an area to indicate the label used for the submit button. The class=”pbSubmit” can be used to modify the button styles. The styles can be added into the “Customization area >> Add Custom Styles” (at the bottom of the page that contains the list of calendars): For further modifications the submit button is located at the end of the file “”. For general CSS styles modifications to the form and samples check this FAQ:

Validation Texts

Use this area for translating of setting custom validation messages for the form fields.

Price Configuration

This administration section allows setup most of the price structure for the bookings. The following settings fields are available:

  • Currency: The currency used at PayPal. Example currency codes: USD, EUR, GBP, CAD, AUD, NZD, CHF, MXN, CZK, DKK, NOK, SEK, HKD, SGD, HUF, ILS, JPY, PLN
  • Default request cost (per day): The default request cost for each day. This amount is the fee per day, for example if the value specified here is us$25 and the reservation is for 4 days then the payment amount will be us$100.
  • Total request cost for specific # of days, # of days to setup: The “total” request cost for bookings of a specific number of days. This has precedence over the default cost.
  • Supplement for bookings between X and Y nights: Supplement (or discount if negative) can be applied to bookings which length is into the specified range of days.
  • Seasons configuration: Allows to apply different prices on different seasons (configured with start and end dates). The season prices will overwrite the default request cost and the total request cost for specific days if that option is used.

PayPal Payment Configuration

Settings related to the PayPal payment processing. The settings fields are:

  • Enable PayPal Payments?: The free version supports only PayPal enabled. The commercial versions support other two options: Don’t use PayPal or “Optional” to let the customer select PayPal or just submit the booking for a payment later. If “Optional” is selected (commercial versions), a radio-button field will be added to let the customer select “Pay with PayPal.” or “Pay later”.
  • PayPal email: The email of the PayPal that will receive the payments.
  • PayPal product name: The name that will appear to the customer at PayPal.
  • URL to return after successful payment: After the PayPal payment the user may go back to a page into your website (usually a “thank you” page). Paste here the complete address of that page. Important note: This field is used as the “acknowledgment / thank you message” even if the PayPal feature isn’t used (commercial versions).
  • URL to return after an incomplete or cancelled payment: After a canceled/incomplete PayPal payment the user may go back to a page into your website, usually a page with more instructions or requesting feedback. Paste here the complete address of that page.
  • PayPal language: The language that will be used for the PayPal payment. It’s any PayPal supported language.
  • Taxes (applied at PayPal): Specify a number (percent) for adding taxes at PayPal (example: enter 10 for a 10%, don’t include the % symbol).
  • Discount Codes: Available only in commercial versions. Adds a field for entering discount codes and apply them to the price.

Optional Services/Items Field

This feature is available only in the commercial versions. These area optional fields that appear only if some option is specified. Useful for selecting additional items with prices for the booking, example: optional services like “Internet” or “Parking” in a hotel booking.

Notification Settings to Administrator(s)

Setup area for the notifications sent to the administrator(s) after the booking is completed. Settings fields:

  • Notification “from” email: The email used as from in the notifications.
  • Send notification to email: The email address where the notification will be sent to (ex: your email address).
  • Email subject notification to admin: Subject of the notification email that you will receive.
  • Email notification to admin: Content of the notification email that you will receive. Keep the tag %INFORMATION% that will be replaced automatically by the booking information.

Email Copy to User (auto-reply):

Setup area for the auto-reply email sent to the customer after the completing the booking. Settings fields:

  • Email field on the form: Select which of the form field will contain the user’s email address to send the auto-reply.
  • Email subject confirmation to user: Subject of the thank you/confirmation email sent to the user (customer) after completing the payment.
  • Email confirmation to user: Content of the thank you/confirmation email sent to the user (customer) after completing the payment. Keep the tag %INFORMATION% that will be replaced automatically by the booking information.

Catpcha Verification

Setup area for the built-in antispam captcha verification. Settings fields:

  • Use Captcha Verification?: Select if the captcha image will be used.
  • Width: Width of the captcha image.
  • Height: Height of the captcha image.
  • Chars: How many characters will appear in the captcha image.
  • Min font size: Minimum size used for the font (randomized).
  • Max font size: Maximum size used for the font (randomized).
  • Preview: Preview for checking how the captcha image will look.
  • Noise: Amount of noise to make it stronger.
  • Noise Length: Length of the noise to modify its look.
  • Background: Background color.
  • Border: Border color.
  • Font: Base font used to render the text. Four options already included.


29 reviews

Rating breakdown

Details Information



First Released

05 Feb, 2013

Total Downloads


Wordpress Version

3.0.5 or higher

Tested up to:


Require PHP Version:





The plugin hasn't been transalated in any language other than English.


The information provided in this THEME/PLUGIN DIRECTORY is made available for information purposes only, and intended to serve as a resource to enable visitors to select a relevant theme or plugin. wpSocket gives no warranty of any kind, express or implied with regard to the information, including without limitation any warranty that the particular theme or plugin that you select is qualified on your situation.

The information in the individual theme or plugin displayed in the Directory is provided by the owners and contributors themselves. wpSocket gives no warranty as to the accuracy of the information and will not be liable to you for any loss or damage suffered by you as a consequence of your reliance on the information.

Links to respective sites are offered to assist in accessing additional information. The links may be outdated or broken. Connect to outside sites at your own risk. The Theme/Plugin Directory does not endorse the content or accuracy of any listing or external website.

While information is made available, no guarantee is given that the details provided are correct, complete or up-to-date.

wpSocket is not related to the theme or plugin, and also not responsible and expressly disclaims all liability for, damages of any kind, arising out of the use, reference to, or reliance on, any information or business listed throughout our site.

Keep Leading Your Followers!
Share it for them.