=== Calendarista™ ===

Contributors: 	   Alessandro Zifiglio
Donate link: 	   https://www.calendarista.com
Requires at least: 6.3
Tested up to:      6.4
Requires PHP:      7.0
Stable tag: 	   15.6.8
License: 		   Codecanyon Regular license
License URI: 	   https://codecanyon.net/licenses/standard
Tags: 			   booking, appointment, reservation

CALENDARISTA: PREPARE FOR GREATNESS

== Description ==

Whether you want to book an appointment with a dentist, a hair dresser, 
rent out a room or you simply want to run a transport service, the booking options 
will vary from business to business. 

Calendarista™ can mix and match from a multitude of options to fit your individual booking requirements!

== Installation == 

1. Just click update, the plugin will do the rest. Your data and settings will be maintained.

== Changelog ==
= 16.0.6 =
* Posted on 22/10/2024
* Fixed: changeover days regression bug (check-in and check-out dates allowed a second booking).
* Fixed: saving changes in the places page bugged out. a regression bug.

= 16.0.5 =
* Posted on 06/07/2024
* Fixed: settings in the availability repeat dialog were not saved (regression bug).
* Fixed: round trip with time disabled end time when same day booking was enabled.

= 16.0.4 =
* Posted on 16/05/2024
* Fixed: regression bug - export to csv broken.
* Fixed: description field in availability html support was broken.

= 16.0.2 =
* Posted on 06/05/2024
* Fixed: regression bug - service modes that support time range broke the page when certain conditions were met.

= 16.0.1 =
* Posted on 03/05/2024
* Fixed: regression bug - optional extra description field did not allow html.
* Fixed: regression bug - saving an availability, ignored sync option.
* Fixed: regression bug - holidays feature broken.

= 15.6.9 =
* Posted on 01/05/2024
* Fixed: security improvements and adherence to wordpress plugin-check standards.
* Fixed: optional extras quantity now limits when using woocommerce and adding multiple appointments to cart.
* Fixed: multi date and time range group booking issue.
* Fixed: service modes with timeslots now no longer take into account slots count but just number of seats for full day.
* Fixed: changeover days and group booking issue.
* Fixed: optional extra increment quantity issue with full day on time enabled service mode.
* Fixed: miscellaneous fixes and improvements.

= 15.6.7 =
* Posted on 27/02/2024
* Added: incremental optional extras now supports quantity.

= 15.6.6 =
* Posted on 19/02/2024
* Fixed: regression bug, saving [services > style > advanced] summary template feature broken.
* Fixed: service availability with no seat limit did not allow multiple availability booking.
* Fixed: miscellaneous minor fix.

= 15.6.5 =
* Posted on 07/02/2024
* Fixed: regression bug, export feature broken
* Fixed: miscellaneous minor fix.

= 15.6.4 =
* Posted on 29/01/2024
* Fix: regression bug, updating or deleting items in the backend broken.
* Fix: regression bug, editing time slot from the backend did nothing.

= 15.6.3 =
* Posted on 28/01/2024
* Fix: regression bug, optional extras step failed during the booking.

= 15.6.2 =
* Posted on 25/01/2024
* Fixed: imported feeds now use cURL and should work better.
* Fixed: security update.
* Fixed: miscellaneous minor fix.

= 15.6.0 =
* Posted on 18/01/2024
* Fixed: regression bug viewing guests in backend.
* Fixed: backend sales page order by columns.
* Fixed: miscellaneous minor fix.

= 15.5.9 =
* Posted on 11/01/2024
* Fixed: synching internal feeds did not consider seats.
* Fixed: security update.
* Fixed: miscellaneous minor fixes.

= 15.5.7 =
* Posted on 02/01/2024
* Fixed: date range type modes did not maintain the selected value on edit (back-end).
* Fixed: miscellaneous minor fixes.

= 15.5.6 =
* Posted on 04/12/2023
* Fixed: with twilio enabled, phone numbers that included a single starting 0 were converted to +
* Fixed: When returning from Paypal, a thank you message is now displayed correctly with invoice ID.
* Fixed: repeat appointments on single day and time range mode listed incorrectly in back-end.
* Fixed: admin back-end when creating a new appointment, holidays and closed dates (repeat sequence) was not respected.
* Fixed: when enabling the woocommerce cron job, failed order appointments got registered as well.
* Fixed: upfront payment without a discount amount was treated as a deposit.

= 15.5.4 =
* Posted on 25/10/2023
* Fixed: regression bug, custom form fields were not included in the export csv.
* Fixed: added guest required info label to the quick text edits.
* Fixed: custom form fields that were not marked as guest fields were still included as a guest field as well.

= 15.5.3 =
* Posted on 11/10/2023
* Fixed: regression bug, editing a time slot did nothing.
* Fixed: round trip with time no longer enforces a continous time range on same day return.
* Fixed: round trip with time had inconsistent end time selection behavior on same day booking.
* Added: twilio settings for admin now include a country code prefix, so customers only need to insert local number.

= 15.5.1 =
* Posted on 05/10/2023
* Added: updated stripe payments api method calls. 
* Fixed: when creating a single time slot by weekday, an error message was displayed.

= 15.5.0 =
* Posted on 29/09/2023
* Added: improvements and additional features when creating/autogenerating timeslots.
* Fixed: regression bug in stripe payments when 3d secure was required. 

= 15.4.8 =
* Posted on 23/09/2023
* Fixed: when cancel booking url was disabled from settings > general page, the cancel url was still present in the notification.
* Added: new option when generating time slots that allows to only update seats/cost.

= 15.4.7 =
* Posted on 21/09/2023
* Fixed: regression: confirmation email was sent twice when using online payments or woocommerce.
* Fixed: ical was truncating location at the first comma, hence when adding to icalendar the location was partial.
* Fixed: export to csv had messed up optionals, guests and custom form fields output.
* Added: manual dates added in the services > timeslots page will be removed automatically if expired.
* Added: autogenerating slots can now be done on all availabilities in one go.
* Added: improved export to csv with friendly column names.
* Added: custom form fields can now be marked as a guest seat and participate in group booking.

= 15.4.4 =
* Posted on 08/09/2023
* Fixed: add to calendar links in user profile page was broken. regression bug.
* Fixed: regression bug. cant get beyond the details step when stripe payment is enabled.
* Added: when customer cancels an appointment on their upcoming bookings page, an appointment cancel notification is also sent to the customer.

= 15.4.3 =
* Posted on 07/09/2023
* Added: new option in services > map page to hide the map but keep the location.
* Added: thankyou/review us email via CRON job, that can be timed at any period after the appointment.
* Fixed: confirmation email was sent twice when using online payments or woocommerce.
* Fixed: if your translations included quotes, this could break the appointments page in the backend.
* Fixed: if the customer name contained quotes, this could break stripe payments.
* Fixed: changed layout of the incremental input optional field.
* Fixed: timeformat in settings > general page did not save your selection.
* Fixed: search list timeformat did not apply the settings > general page time format settings.
* Fixed: upfront payment now calculates the discount by number of seats.

= 15.4.1 =
* Posted on 01/08/2023
* Fixed: events added to google calendar using the add to calendar links contained encoded characters.
* Fixed: regression bug with stripe payments caused by version 15.3.9.

= 15.4.0 =
* Posted on 27/07/2023
* Fixed: regression bug that affects booking form that is autogenerated on a woocommerce order.

= 15.3.9 =
* Posted on 26/07/2023
* Added: allow customers to edit their appointment with time bracket policy.
* Added: services can now be listed by thumbnail and name (previously only in a dropdownlist).
* Added: availability's can now be listed by thumbnail, name and description(prev only as a dropdownlist).
* Added: instructions can now to be inserted in the add to calendar links and improved the appointment data as well.
* Fixed: misc fix on woocommerce session.
* Fixed: selecting a service or availability before page loaded did nothing.
* Fixed: upfront deposit did not work when no payment method was selected.
* Fixed: editing appointments from the backend miscellaneous code improvements and fixes.
* Fixed: switching between register and login when membership was enabled, now field input is maintained.
* Fixed: security vulnerability.

= 15.3.3 =
* Posted on 29/06/2023
* Added: new optional extra for incremental field with thumbnail and description.
* Added: new option to enable flat deposit by seats.

= 15.3.2 =
* Posted on 13/06/2023
* Fixed: when using the multi date and time range mode, unavailable days were selectable on the calendar.
* Fixed: the text "repeat this appointment" can now be edited from the services > text page.

= 15.3.1 =
* Posted on 05/06/2023
* Fixed: regression from last update. The date textbox always showed loading...even though loading was completed.

= 15.3.0 =
* Posted on 02/06/2023
* Fixed: tabs hidden in normal view when new option to disable steps in mobile view was checked.
* Fixed: when certain conditions were met, the popup calendar inserted the last selected date even when no selection was made.

= 15.2.9 =
* Posted on 31/05/2023
* Added: new option in general settings to enable/disable the wizard steps in mobile view.
* Fixed: editing appointment from the backend, service selector disappeared after making a selection.
* Fixed: editing/creating appointment from the backend was lacking validation checks.

= 15.2.8 =
* Posted on 25/05/2023
* Fixed: public calendar was missing full date format hence the day view did not display the current date number.
* Fixed: remaining seats message when using the multi date range mode always displayed the value 0.
* Fixed: when using a service mode with timeslots and when all seats were out of stock, editing the appointment broken.

= 15.2.7 =
* Posted on 15/05/2023
* Added: creating/updating appointments from the backend will now show available space.

= 15.2.6 =
* Posted on 10/05/2023
* Fixed: updating an appointment from the back-end caused the appointment to duplicate.
* Fixed: regression bug, under specific condtions, editing appointments in the backend did nothing.
* Fixed: inconsistencies when using the round trip with time mode and group booking.
* Fixed: search did not consider full day holiday on time slot based services.
* Fixed: trying to resend a reminder did nothing.
* Fixed: miscellaneous minor fixes.

= 15.2.5 =
* Posted on 04/05/2023
* Fixed: Latest version of wpml did not translate emails.
* Fixed: regression bug introduced in 15.2.2 (application choked when applying coupon codes).

= 15.2.3 =
* Posted on 04/05/2023
* Fixed: regression bug introduced in 15.2.2 (new db field never got created).

= 15.2.2 =
* Posted on 02/05/2023
* Added: new option to add discount when deposits are active
* Added: when deposits are active, customer can now choose to pay full amount (optionally with discount)
* Fixed: clear button on the public popup calendar is now translatable.

= 15.2.0 =
* Posted on 24/03/2023
* Fixed: regression bug when synching seats with the single day mode.
* Fixed: miscellaneous fixes.

= 15.1.0 =
* Posted on 20/03/2023
* Added: guests function to limit by seats can be enabled without group booking.
* Added: extended group booking support to multi date range, multi date and time range, round trip, round trip with time and changeover
* Fixed: synchronizing availabilities did not work correctly specifically when syncing half day/full day etc.
* Fixed: when the repeat pattern was set to weekly, the calendar in the booking form worked erratically.

= 15.0.9 =
* Posted on 02/03/2023
* Fixed: changing the currency thousand and decimal separators did not apply in the email notifications.
* Fixed: changing the currency thousand and decimal separators broke total_amount_before_tax token.

= 15.0.8 =
* Posted on 16/02/2023
* Fixed: feeds sync - appointments whose start date were in the past but are still ongoing will now be synched correctly.
* Fixed: feeds sync - if map data was included in the appointment, sync did not occur.
* Fixed: search filter now returns results correctly on changeover

= 15.0.7 =
* Posted on 07/02/2023
* Added: repeat appointments can now be edited individually.
* Added: booking multiple availabilities can now be edited individually.
* Added: new token to display total amount before tax: {{total_amount_before_tax}}
* Fixed: overall small miscellaneous improvements and fixes.

= 15.0.6 =
* Posted on 04/01/2023
* Added: SMS reminders via Twilio.
* Fixed: Omani Rial (OMR) was missing from the list of currencies. 

= 15.0.5 =
* Posted on 07/12/2022
* Added: when selecting mulitple seats is enabled, you can now collect the name of each participant. 
* Added: you can now import to all availabilities within each individual service. prev it was one by one.
* Fixed: when using the time range mode, multiple availabilities were not available for booking. 
* Fixed: when using search with changeover days, check-in/check-out resulted booked but was still available.

= 15.0.4 =
* Posted on 04/11/2022
* Added: new option to delete all coupons in bulk.
* Fixed: overall small miscellaneous improvements and fixes.

= 15.0.3 =
* Posted on 24/10/2022
* Added: new short-code to display the logged in users upcoming appointments and appointment history [calendarista-user-profile]
* Fixed: appointment status indicator in the back-end appointment calendar did not display the color correctly.
* Fixed: when enabling multiple availability booking, seats were not respected.
* Fixed: miscellaneous improvements to the search results when using the search form.

= 15.0.2 =
* Posted on 22/09/2022
* Added: holidays function now allows applying the changes to the entire service and not just individually selected availability.
* Fixed: weekly repeat appointment option did not work correctly on services with time slots.
* Fixed: weekly repeat appointment option did not work when selecting multiple week days.
* Fixed: some currencies that had the same name and symbol appeared to show the same value before and after the currency.
* Fixed: search filter did not take into consideration the min/max notice.
* Fixed: search filter did not produce results on check-out date which was still available for check-in.
* Fixed: miscellaneous small improvements and adjustments.

= 15.0.1 =
* Posted on 13/09/2022
* Added: booking form tabs are now responsive.
* Fixed: round trip with return being optional displayed the booking in the backend as having return on the same date.
* Fixed: miscellaneous issues when using departure and destination fields and waypoints.
* Fixed: miscellaneous improvements to backend appointment creation/editing.

= 15.0 =
* Posted on 09/09/2022
* Added: updated bootstrap library to latest Bootstrap  v5.2.0
* Added: google maps autocomplete predictions can now be bound to a location and radius in meters.
* Added: new option to hide map when departure and destination fields are enabled.
* Added: holidays page now allows taking full day off on services that are timeslot based.
* Fixed: with multi date range, when chosing a period with a holiday in between does not block anymore. 
* Fixed: adding a waypoint did not display the added waypoint within the same tab summary
* Fixed: adding multiple waypoints did not display each waypoint within their individual row in the booking summary
* Fixed: single day and time range mode with turnover "before" applied allowed booking a slot within the turnover range.
* Fixed: total time in booking summary count ignored the minutes.
* Fixed: miscellaneous css fixes to colors, paddings, summary info callout etc.

= 14.35 =
* Posted on 26/08/2022
* Fixed: min notice in minutes did not take the following day in consideration.

= 14.34 =
* Posted on 23/08/2022
* Fixed: Regression bug introduced in 14.25: single day and time range mode did not allow selecting the end time which was still available.

= 14.33 =
* Posted on 23/08/2022
* Fixed: closing the end date calendar without selecting a date did not allow reselecting a date again.

= 14.32 =
* Posted on 18/08/2022
* Added: new general setting to remove availabilities with alternate days found in search result.
* Added: new general setting to remove sold out availabilities from search result.
* Fixed: search filter did not work on services that supported time slots.

= 14.31 =
* Posted on 14/08/2022
* Fixed: dropdown lists in general seemed like a regular textbox. There is now an arrow to show that there are more items and that it's a list.
* Fixed: regression bug when synching feeds.

= 14.30 =
* Posted on 12/08/2022
* Fixed: custom roles (specially ones created using third party role editors) that did not have a matching id and name, didn't allow full access to the plugin.
* Fixed: regression bug introduced in 14.28; when creating or editing time slots in the back-end no slots are created.

= 14.28 =
* Posted on 11/08/2022
* Added: timeslots displayed in the search form can now be generated from the Services->Short-code->Search filter page.
* Added: map information regarding location, waypoints, duration and distance when synching an appointment to google calendar.

= 14.26 =
* Posted on 08/08/2022
* Added: when editing an appointment, you can now change the service among service modes of the same type.
* Added: when setting a single predefined departure or destination, instead of a single element dropdown list we now display the single location as readonly.
* Added: max selection option for optional extras.
* Added: now, a backend appointment where the service has display remaining seats enabled, will show the amount of seats available.
* Fixed: single day and time range with turnover in minutes allowed booking the end time even though it fell within the turnover range.
* Fixed: search result pages listed in the services page now no longer filters page. all your pages are in the list.
* Fixed: the ics feed handler used the wrong end date if there wasn't an end date in the data stream.
* Fixed: subtle miscellaneous improvements.

= 14.25 =
* Posted on 26/07/2022
* Added: woocommerce option to display guests information in checkout and order details.
* Added: 2 new tokens for use in email notifications  {{coupon_code}}and {{coupon_discount}}.
* Added: Repeat appointments can now be enabled on the following modes: Single day, Single day and time, Single day and time with padding, Single day and time range
* Fixed: search filter did not clear the date when clicking the clear button in the popup calendar.
* Fixed: search filter produced results for changeover days even though one of the dates in the filter wasn't available.
* Fixed: multi date range did not take set min/max days restriction correctly when using the day count mode as difference.
* Fixed: minor improvements and miscellaneous fixes.
* Fixed: single day with time range mode did not validate min time when chosing the end time first, before the start time.
* Fixed: woocommerce emails did not include the correct number for quantity (seats).
* Fixed: when booking multiple availabilities, the sales page list view and the details view only displayed the first availability name.
* Fixed: when using holidays with custom date time slots, it was not possible to reset the time off.
* Fixed: when generating custom date time slots, the backend view did not sort the slots.
* Fixed: single day with time range that had group booking enabled did not load seats when returning to the first step (previous button).
* Fixed: round trip with time that had group booking enabled with same day return did not load guests.

= 14.22 =
* Posted on 25/05/2022
* Added: "round trip with time" with same day return option now supports group booking.
* Added: "round trip with time" with same day can now be synched with Google Calendar.
* Fixed: "round trip with time" with same day return and return optional was still forcing return.
* Fixed: single day and time range with "turnover after" in minutes did not work if the turnover was over the time interval between slots.
* Fixed: {{{optionalWithCost}}} token produced the cost with too many decimal zeros.
* Fixed: cancelling appointments with multiple availabilities only cancelled the first appointment.
* Fixed: when editing an appointment in the backend, labels were not localized and remained in english.
* Fixed: minor improvements and fixed a few small bugs.

= 14.21 =
* Posted on 06/05/2022
* Fixed: search did not display results when selecting the same day, specifically on services that use the multi date range mode.
* Fixed: when viewing existing appointment details, if price was changed on the availability, the cost summary was also updated. Original cost summary is now maintained.
* Fixed: changeover days did not work correctly with setups that used more than 1 seat.

= 14.20 =
* Posted on 14/04/2022
* Fixed: wp roles such a shop manager did not get admin access to the plugins settings.
* Fixed: when checking out with woocommerce, a service with optional extras, an error occurred.

= 14.19 =
* Posted on 11/04/2022
* Fixed: removed limit on the number of availabilities to syncronize.
* Fixed: not able to create new appointments from the backend with the package mode and multiple availabilites 
* Fixed: package mode did not multiply optional cost by number of days.
* Fixed: cancel_page_url token sometimes did not print the url in the email notification sent to the customer.
* Fixed: imported and exported feeds had the wrong time.
* Added: new wordpress action is exposed: calendarista_personal_fields. You can use this to add any custom content in the booking form via code.
* Added: new email token for optional extras that includes the cost as well: {{{optionalsWithCost}}}
* Added: round trip with time mode now allows enforcing return on the same day only.
* Added: round trip with time mode now allows generating a different set of slots for return.
* Added: new option for search filter short-code: exclude-end-date-time="true"
* Added: you can now allow different wp roles to access the admin back-end. new option in settings -> general page.

= 14.16 =
* Posted on 04/02/2022
* Fixed: excluding days using the holidays function was not respected when using a date range mode.

= 14.15 =
* Posted on 18/01/2022
* Fixed: search function date picker did not launch when certain conditions were met.
* Fixed: single and time range gave an error if less than an hour is selected with max time restriction.
* Fixed: appointments synchronized to google calendar no longer displays seats, if seats aren't selected.

= 14.14 =
* Posted on 22/12/2021
* Fixed: regression bug in custom form builder, selecting any field other than textbox did nothing.
* Fixed: when having more than 1 guest with limit by seat enabled, seat redistribution wasn't correct.
* Updated: spanish translation files.

= 14.13 =
* Posted on 07/12/2021
* Fixed: total time in booking label was showing in booking summary always.
* Fixed: regression bug from 14.9 update (threw warning when using service mode without timeslots).
* Fixed: optional extras with negative value and more than 1 seat selected did not add up the value in the label.
* Updated: German translation files. Contributed by one of our expert users Oliver (vosshoernerhof).

= 14.11 =
* Posted on 04/12/2021
* Fixed: time slots with deals view lost validation when changing the date.

= 14.10 =
* Posted on 01/12/2021
* Fixed: time slots with deals view did not allow editing the appointment in back-end.

= 14.9 =
* Posted on 28/11/2021
* Added: single day and time range now supports 24h time duration, extending booking to next day
* Added: min/max time restriction on modes that support time range booking.
* Sponsor: both new features above were sponsored by Ernesto from Global Internet Corp.
* Added: payment methods can now show an icon along side the label.
* Added: new option in general settings to enable/disable add to calendar links in booking confirmation message.
* Added: order date field in the appointments page (listview).
* Added: can now filter results by appointment status in the appointments page (listview)
* Added: you can now redirect to the woocommerce cart page during checkout instead of the checkout page.
* Fixed: exporting function did not export guest data correctly.
* Fixed: deals view for time slots ignored holidays.
* Fixed: package mode summary displayed the end date when only a single day was within the package.
* Fixed: package mode did not produce result if only start date was used without end date during search.
* Fixed: multiple services on the same page repeated the booking confirmation on every service.
* Fixed: google calendar sync simply did not sync anything on some environments.

= 14.7 =
* Posted on 28/10/2021
* Fixed: when using long date formats, the start_date/start_time/end_date/end_time email tokens returned wrong info.
* Fixed: guest fields were missing when exporting appointments.
* Fixed: woocommerce orders had an unusual key printed in the order: "_calendarista_seats:", removed now.

= 14.6 =
* Posted on 15/10/2021
* Fixed: seats were not registered with woocommerce.
* Fixed: in a WordPress multi-site enviornment, export function returned an empty csv file.
* Fixed: email reminders that use built-in wordpress cron job was disabled, regression bug.

= 14.5 =
* Posted on 13/10/2021
* Fixed: more woocommerce improvements for appointments that were not registered with calendarista.
* Added: ability to remove decimal point which some currencies such as the New Taiwan Dollar do not support.

= 14.4 =
* Posted on 07/10/2021
* Fixed: woocommerce on some systems, the appointments were not registered with Calendarista.
* Fixed: end date calendar that uses multi date range / changeover modes, disables outside min-max days restriction.

= 14.3 =
* Posted on 04/10/2021
* Fixed: google calendar sync failure email messages are now correctly sent to the admin user and not the customer.
* Fixed: now the end date cannot be selected before a start date is selected.
* Fixed: min/max in seasons when used applied to all days even outside the season.
* Fixed: when apply custom charge on multi date mode(non range), the cost was was wrong.
* Fixed: when applying custom charge, the custom value is now indicated in the cost summary breakdown.

= 14.2 =
* Posted on 14/09/2021
* Fixed: regression bug, 100% coupons with payment operator (stripe) enabled did not work.

= 14.1 =
* Posted on 10/09/2021
* Added: when setting email reminders, you can now turn off WordPress cron job and instead setup your own Cron job for very accurate results.
* Added: a service mode with time slots enabled can now allows setting turnover days in minutes.
* Fixed: Multi date mode did not show the individual day cost in summary when using seasons.
* Fixed: package mode with append booking period option enabled, the date format is respected.
* Fixed: package mode with appending period option enabled, with single day in package now shows the single date without (from date - to date) as in the past.
* Fixed: solved an edge case where instead of redirecting to woocommerce the booking came through payment offline.

= 14.0 =
* Posted on 23/08/2021
* Added: PHP 8 compatbility.
* Added: support for Zapier.
* Added: new option to calculate optional extras by guest (new option can be found in the guests page).
* Added: new option to display custom form fields in woocommerce order.
* Added: new cron job URL for woocommerce orders. useful for payment operators that did not call the payment complete hook.
* Fixed: synching feeds did not sync multiple feeds on the same service/availability.
* Fixed: woocommerce paypal orders were not registered if customer did not land on the thankyou page.
* Fixed: sometimes google calendar will fail to sync. you will now receive notification of this so that you may take action.

= 13.18 =
* Posted on 14/07/2021
* Fixed: changeover service mode had issues with check-in/check-out when availability had more than 1 seat.
* Fixed: time slot generate dialog wasn't responsive.
* Fixed: based on some rare conditions, woocommerce orders did not register the appointment with calendarista.
* Added: new option in settings->general page to cancel the woocommerce order automatically when cancelling an appointment in the back-end.
* Added: stripe payments will also register the customer with stripe, so that you may easily export to csv.
* Improved: removed zip code field from stripe payment form.

= 13.17 =
* Posted on 05/07/2021
* Fixed: when updating an appointment in the back-end, if it was already paid, it resulted as unpaid.

= 13.16 =
* Posted on 29/06/2021
* Fixed: regression bug introduced in 13.15. issue with checkout if you have custom form fields of type checkbox list/multi select list.

= 13.15 =
* Posted on 27/06/2021
* Fixed: paid orders in woocommerce ocassionally did not get registered in Calendarista.
* Fixed: some systems had issues with magic quotes.
* Fixed: search result set is now responsive.

= 13.14 =
* Posted on 23/06/2021
* Fixed: modes that involved multiple dates allowed the range even though there were unavailable dates in between the range.

= 13.12 =
* Posted on 21/06/2021
* Fixed: using coupons and tax in woocommerce was not registered in calendarista.
* Fixed: when multiple availables were enabled, optional extras were multiplied per availability but this was only reflected in the total.
* Added: new option in the services page to enable optionals per service. by default optional cost was multipled by each selected availability.
* Added: payment_operator token that can be used in email templates.
* Added: payment operator label in appointment view back-end.

= 13.11 =
* Posted on 14/06/2021
* Added: New booking notification to admin now has the customer as the replyTo address.
* Added: Sales total amount in the sales page.
* Fixed: Sales page "Edit woocommerce order" button broken after applying sales filter.
* Fixed: Cloning a service did not clone guests.
* Fixed: Coupons had inconsistent behavior when a 100% coupon was applied (didn't hide the payment operator).
* Fixed: search filter results now has two columns. one for thumbnail and the other for item heading/description.

= 13.10 =
* Posted on 30/05/2021
* Fixed: added validation to email subject. useful when using tokens in the subject line which is prone to error.
* Fixed: appointment date in cancellation message was repeated twice.
* Fixed: search result was missing the error messages. regression bug from bootstrap 5.0 update.
* Added: min/max days can now be set in the season settings.
* Added: fixed cost setting for guests. previously the guest cost was added by number of days or slots selected only.

= 13.9 =
* Posted on 23/05/2021
* Fixed: wpml/polylang missed some strings (guests label, payment operator selection, seats left etc).

= 13.8 =
* Posted on 18/05/2021
* Fixed: a regression bug when multiply timeslots by optional cost is selected, the booking summary data was incorrect.
* Fixed: editing a service or an availability when using screen reader technology was broken.
* Fixed: woocommerce bacs payment status resulted paid by default, now corrected.
* Improved: added calendar short-cut summary that can be heard when using screen reader technology.
* Added: more strings for appointment cancellation to the services/text page for easy modification.
* Updated: Bootstrap v5.0.1

= 13.6 =
* Posted on 30/04/2021
* Fixed: when using time based mode with guest having cost, got miscalculated.

= 13.5 =
* Posted on 29/04/2021
* Fixed: race condition when using Multi date and multi date and time mode. regression bug.
* Added: Cancel appointment confirmation message can now be edited from the text page.

= 13.4 =
* Posted on 20/04/2021
* Added: new option for time slot based mode. You can now set minimum notice in minutes. 
* Fixed: ammended checkbox elements within the booking form that didn't display correctly on linebreaks.

= 13.3 =
* Posted on 19/04/2021
* Added: new option for multi date range mode. difference between selected days can now be taken into account.
* Added: package mode now has a new option which appends the booking period to the availability name.
* Fixed: package mode when setting number of days in package, resulted in 1 day more than indicated.

= 13.2 =
* Posted on 16/04/2021
* Improved: search filter now orders results by service->availability, previously only by availability.
* Fixed: min/max notice now does not take into account the current time.
* Fixed: package booking that had ended did not disable the booking.
* Fixed: package booking did not respect seats with enable-multiple-booking="true".

= 13.1 =
* Posted on 13/04/2021
* Fixed: when adding multiple bookings to woocommerce cart, after payment only the first booking was registered.
* Added: new option in Settings -> General page to enable/disable booking changed notifications.

= 13.0 =
* Posted on 12/04/2021
* Fixed: when using stripe payment operator with discount coupons, the payment amount was wrong.
* Fixed: when using stripe or paypal with coupons, the sales page registered full price.

= 12.10 =
* Posted on 11/04/2021
* Improved: woocommerce checkout stripe and bank  payments now register the order on their respective complete hooks and do not depend on the thankyou page.
* Fixed: woocommerce did not book the appointment if there were other product types in cart as part of the same transaction.

= 12.9 =
* Posted on 06/04/2021
* Added: a label for multi time selection listbox. 
* Fixed: the package mode would crash when adding a list of individual available days.

= 12.7 =
* Posted on 02/04/2021
* Fixed: regression bug from 12.0. issue with encoding quotes in custom form fields. caused bookings to fail if a quote character was entered.

= 12.6 =
* Posted on 31/03/2021
* Fixed: multi date range did not allow selecting multiple availables when this mode was enabled.
* Fixed: some websites had an issue with encoding "ä, ü, ö" etc characters. now we force UFT-8.
* Fixed: export appointments function did not include sales data as expected.
* Updated: stripe lib has been updated to the latest build.
* Added: 3 action hooks: 'calendarista_after_confirm_payment_notification' 1 parameter, 'calendarista_after_send_notification' 2 parameters, 'calendarista_after_payment' 2 parameters.
 
= 12.4 =
* Posted on 26/03/2021
* Added: new option in Settings->General page to disable adding a booking form on the associated woocommerce product page.
* Fixed: multi date and time range and round trip with time did not allow selecting multiple availables when this mode was enabled.
* Fixed: when running the backend pages, if the language was not in english, the appointments and sales pages were broken. 12.0 regression bug.

= 12.2 =
* Posted on 23/03/2021
* Fixed: optional extras with limited quantity went out of stock (too late) after an extra item was booked.
* Fixed: after clicking the calendar clear button in the front-end calendar without an end date, the calendar cannot be popped up again. 12.0 regression bug.
* Fixed: payment with paypal was broken. 12.0 regression bug.
* Improved: changed approach to creating new orders in woocommerce to ensure only completed orders are log an appointment.
* Improved: all clientside code now uses strict mode.

= 12.0 =
* Posted on 22/03/2021
* Fixed: under special circumstances, multi date range and changeover modes allowed selecting periods even if there were booked out dates between periods.
* Fixed: user email was not showing for imported appointments from google calendar.
* Fixed: clear button in calendar was not translatable.
* Fixed: optional extra multiplied by seats even though the setting did not require this.
* Fixed: importing appointments from google calendar failed if the appointment had a description greater than 256 characters.
* Fixed: the availability_name token returned only the first availability when multiple availabilites were selected.
* Fixed: unsuccessful payments in woocommerce still logged a booking and took up space.
* Fixed: when enabling a separate confirmation page, text translations were not maintained.
* Fixed: if html was included in translations for example in wpml or polylang, the html parts were returned encoded.
* Fixed: multi date and time range/round trip and time range did not show availability correctly when only a single slot was left.
* Fixed: when exporting appointments to csv, if certain conditions were met, some rows of data were broken.
* Fixed: resubmitting woocommerce checkout page repeated the last action and doubled the cost with each refresh.
* Fixed: multi date range modes with start and end date, loaded an empty calendar when clicking start date too soon.
* Fixed: gcal and outlook add to calendar links posted in the email notifications did not work.
* Added: new option to enable/disable booking confirmation notification.
* Added: new option in general settings for woocommerce to automatically set an order status as completed.
* Added: new option to switch off setting utf-8 encoding within the email subject.
* Added: appointments synched to google calendar now have the invoiceId included in the appointment description.

= 11.6 =
* Posted on 23/02/2021
* Fixed: when using seasons that cover the same period, only the first season cost was applied.

= 11.5 =
* Posted on 18/02/2021
* Turnover days: turnover after did not work if the booking was not in the current month.
* Feeds from airbnb changed, hence adapting to the changes, specifically with regards to line breaks.

= 11.3 =
* Posted on 08/02/2021
* Fixed: distance/cost calculation is much more accurate now. used to be off by a few fractions due to decimal places.
* Fixed: google calendar did not sync multiple availabilities on the same calendar.

= 11.1 =
* Posted on 23/01/2021
* Fixed: multi date range and time mode did not calculate cost correctly across multiple days.

= 11.0 =
* Posted on 10/01/2021
* This update was already available via auto updates since 06/01/2021.
* Fixed: Setting a fixed cost by distance wasn't calculated correctly.
* Fixed: when using a round trip with distance calculation, cost did not include the return trip.

= 10.9.9 =
* Posted on 29/12/2020
* Fixed: google calendar sync function now gracefully handles "Invalid Grant" error. you can now delete the profile and recreate it.
* Fixed: closed bookings had the next button in the wizard enabled.
* Fixed: package booking without repeat and multiple days allowed booking.
* Added: multi date range now supports selecting the same start day and end day (equivalent to 1 night).

= 10.9.7 =
* Posted on 18/12/2020
* Fixed: first time slot selected by default.

= 10.9.6 =
* Posted on 17/12/2020
* Fixed: maintainence, fixed a notice thrown when a certain condition was met.

= 10.9.5 =
* Posted on 16/12/2020
* Fixed: WordPress 5.6 compatbility.

= 10.9.4 =
* Posted on 12/12/2020
* Fixed: Regression bug. when booking multiple days, the cost of guests did not multiply by selected n° of days.

= 10.9.3 =
* Posted on 11/12/2020
* Fixed: Regression bug. Creating appointments from the backend broken.

= 10.9.2 =
* Posted on 10/12/2020
* Added: whitelabelling now allows hiding the following pages: places, sales, staff, season, map.
* Fixed: jquery 3.x stuck in the wizard, couldnt move forward.
* Fixed: multi date and multi date and time mode ignored minimum and maximum booking dates restriction.
* Fixed: regression bug in woocommerce, introduced by version 10.8.

= 10.8 =
* Posted on 03/12/2020
* Added: new feature. You can now book multiple availabilities at a time.
* Added: new feature. White-label.
* Added: time slot based service modes now support setting seats per day. previously seats applied to each individual slot.
* Added: multi date and time range now suports setting cost per time slot. previously it was day based only.
* Fixed: jquery 3.x crashed the datepicker.

= 10.5 =
* Posted on 18/11/2020
* Fixed: services with no availability or time slots were erratically bookable from admin backend.

= 10.4 =
* Posted on 17/11/2020
* Fixed: regression bug introduced in 10.3.
* Fixed: when translating the page via google translate, the calendar broke.
* Added: time slots can now be displayed as deals where each slot is displayed individually.
* Added: guests now add up with optional extras.
* Updated: translation files.

= 10.1 =
* Posted on 29/10/2020
* Fixed: regression bug from 10.0 version. woocommerce checkout broken.
* Fixed: booking reminders page threw errors when resending or deleting a reminder.

= 10.0 =
* Posted on 26/10/2020
* Fixed: regression bug (100% coupons redirected to payment operator when no payment was required).
* Fixed: back-end appointment details did not show the the base cost in booking summary correctly.

= 9.8.9 =
* Posted on 25/10/2020
* Fixed: regression bug edit coupon page, holidays timeslot page etc.
* Added: availability start date can now be in the past.

= 9.8.8 =
* Posted on 24/10/2020
* Added: search feature now supports opening search results in a new tab (if enabled).
* Added: back-end appointments listview now supports an order by filter.
* Added: back-end appointments search filter now adds searching by customer name, email and invoice ID.
* Added: new feature in availability. you can now add invidiual days and additionally have them repeat montly/yearly.
* Improved: cost set in availability when using new package option in single day mode now applies to entire package.
* Fixed: when certain conditions were met, clicking the start date did not launch the calendar popup.
* Fixed: when using the search feature and all slots were booked for the day, clicking a start or end date did nothing.
* Fixed: the availability description field wouldn't get translated.

= 9.8.6 =
* Posted on 04/10/2020
* Added: single day mode now supports setting up a package.
* Improved: cost summary now provides more relevant data regarding the current selection breakdown.
* Fixed: synched feeds did not display in the appointments page (specifically when show imported appointments was enabled).
* Fixed: end time string in the front-end did not get translated.

= 9.8.4 =
* Posted on 24/09/2020
* Fixed: search form field translations eg: Find, Select, Sold out etc.
* Fixed: regression bug when trying to create an appointment from backend on service with multiple availabilities broken.
* Fixed: when adding more than one service/availability in woocommerce cart, the same date from different service/availability remained unavailable.
 
= 9.8 =
* Posted on 20/09/2020
Fixed: regression bug caused by version 9.7.9 (woocommerce broken).

= 9.7.9 =
* Posted on 19/09/2020
* Fixed: when using multiple payment operators, paypal did not work.
* Improved: when using the search filter and no dates were selected, availability will by default be checked against the current day.

= 9.7.8 =
* Posted on 18/09/2020
* Fixed: using multiple short-codes on a page or post did not work.
* Fixed: multi date and multi date and time mode did not respect guests validation when required.
* Fixed: regression bug in 9.7.7 update (couldn't create appointments in the backend).

= 9.7.5 =
* Posted on 15/09/2020
* Improved: google calendar sync now deletes exported appointments if these were deleted from google calendar.
* Fixed: setting an image in the services->availability page did not display the image in the booking form front-end.
* Fixed: season cost miscalculated when applying by week day (su,mo,tu,we,th,fr,sa).
* Fixed: when using a single guest field (limit by seats), the last guest was not selectable.
* Fixed: when paypal is enabled along with Multi date or multi date and time mode, booking form broke on checkout step and payment failed.

= 9.7.4 =
* Posted on 05/09/2020
* Fixed: a regression bug with changeover mode.
* Fixed: translation of the search fields did not work if the settings->general was saved.
* Fixed: when multiple payment providers are enabled, the selected payment provider radio button did not highlight the selection.
* Fixed: success message after booking did not disappear when clicking close.
* Fixed: when using maps and the distance is pretty large, over 1000km, the values were truncated and the wrong distance displayed.
* Fixed: regression bug regarding seats in combination with guests caused overbooking.
* Added: seats Max restriction if group booking is enabled.
* Added: a new option in services->availability page to display/hide the remaining seats message.


= 9.7.2 =
* Posted on 31/08/2020
* Fixed: regression bug, multi date range and changeover accepted bookings even if there were booked out dates in between the selected range.

= 9.7.1 =
* Posted on 29/08/2020
* Fixed: WordPress 5.5 broke multi timeslot selection listbox.

= 9.7 =
* Posted on 28/08/2020
* Added: Feeds synching now supports updates and deletes. 
* Added: font-size setting in the settings->general page. This affects the booking form.
* Updated: documentation.
* Fixed: feeds synched into the system had the description truncated.
* Fixed: front-end, reclicking the calendar input field without closing the calendar caused it to choke.
* Fixed: stripe input fields on mobile had overlapping text. 
* Fixed: start date and start time did not get translated when using wpml or polylang.
* Fixed: when selecting a date range with a weekly repeat pattern, validation failed.
* Improved: search result now takes into consideration the availabilities Min/Max days restriction.
* Deprecated: 2checkout payment operator is no longer supported. please use woocommerce in case you want 2checkout.

= 9.6 =
* Posted on 28/07/2020
* Added: email template new control statement: {{#if_service_id_123}}content here{{/if_service_id_123}}
* Added: email template new control statement: {{#if_availability_id_123}}content here{{/if_availability_id_123}}
* Added: public calendar now supports single day view
* Added: search attributes. you can now create attributes from the services->search attributes page. These will be added to the front-end search form
* Improved: guests with required option now uses a default value of None editable from Services -> Text page.
* Improved: appointments listview now includes all booking information at a glance (custom form fields, optionals, guests, seats).
* Improved: appointments page will now always open the last tab viewed first.
* Fixed: stripe payments were concluded anyway even though the customer was told the booking was out of stock.
* Fixed: front-end search filter did not allow searching the current date and only allowed the next day onwards.
* Fixed: email reminders did not send out the reminders at the correct time and current day bookings were totally skipped as well. 
* Fixed: sanitized name field in the booking form to allow insertion of special characters and what not.

= 9.5.6 =
* Posted on 10/07/2020
* Added: drag and drop sort order for availabilities.
* Added: a required option to check when creating guests. this forces the user to select any value other than 0 when selecting guests.
* Added: search filter now supports setting a theme color. new option can be found in the Settings -> General page.
* Improved: The booking date and time is now included in paypal item title.
* Improved: Google calendar sync will now use customer name and seats booked in the title instead of generic servicename - availability name.
* Fixed: regression bug. PHP 5.3 compatibility, though this is getting quite old so dont expect miracles in the future.
* Fixed: twenty twenty wordpress theme compatbility. Font sizes and pretty much form elements appeared shrunk.
* Fixed: public calendar displayed a gridview in tablet portrait mode even when you specified you want it to display as a list.
* Fixed: public calendar now respects first day of week set in settings->general.

= 9.5.4 =
* Posted on 30/06/2020
* Added: Single day and time range now supports group booking.
* Fixed: improved guests to respect the remaining seats value when group booking is not enabled.
* Fixed: ical feeds description truncated the extra info such as seats, custom form fields, guests, etc.
* Fixed: saving style template in services -> styles -> advanced caused styling issues.

= 9.5.3 =
* Posted on 26/06/2020
* Added: WordPress CRON job support for Google Calendar. Previously only True CRON jobs were supported.
* Fixed: removed dependency on php-mbstring.

= 9.5.2 =
* Posted on 23/06/2020
* Fixed: Multi date and time range did not multiply optional extras x selected days.
* Fixed: booking form messed up when setting thumbnail or font-family with style 'none'.
* Fixed: regression 9.5 version, caused a spinning wheel loading forever when viewing the booking form.

= 9.5 =
* Posted on 16/06/2020
* Added: Google calendar now has a manual sync option. 
* Added: Google calendar now has a manual delete option that deletes imported/exported data on an availability.
* Fixed: Google calendar did not sync customform fields, guests etc.
* Fixed: 3d secure on Stripe had some issues on the new API. Migrated old code to the new API.
* Fixed: changeover days with seats did not allow check-in/check-out on changeover even though there were still seats left.
* Fixed: calendar allowed selecting unavailable days when certain conditions were met.

= 9.4.9 =
* Posted on 11/06/2020
* Added: public calendar now supports weekly listview
* Fixed: invoices are now only sent on bookings that opt to pay offline.
* Fixed: padding time was not showing in the backend timeslots page when using single day and time with padding mode.
* Fixed: single day and time with padding ignored seats when group booking was enabled.

= 9.4.8 =
* Posted on 08/06/2020
* Fixed: regression bug, custom charge was not applied.
* Fixed: when using decimal based values for cost, stripe did not work. rounding now.

= 9.4.7 =
* Posted on 29/05/2020
* Added: New option in Settings->Payments page to change the number format. You can now set your own decimal and thousands separator.
* Added: Single day and time with padding service mode now supports seats and group booking.
* Added: Round trip with time now supports setting cost at the time slot level.
* Fixed: oxygen builder failing? This is due to debug mode being enabled for AJAX requests which caused issues with third party plugins that threw warnings.
* Fixed: When using a service mode with the end date, moving back and forth within the wizard caused wrong date selection.
* Fixed: When using inclusive tax mode, the back-end appointments page displayed exclusive tax amount when viewing the details.

= 9.4.6 =
* Posted on 16/05/2020
* Fixed: single day and time email notification displayed a date range message when the appointment is only for a single slot.
* Fixed: when using seasons without pricing scheme, the cost calculation only included the season cost while truncating any selected days outside the season.
* Fixed: deleting imported feeds did nothing.
* Fixed: when timezone is enabled on the availability, the first available date is in the past.
* Added: importing feeds will now take into account timezone if one is present. exporting feeds to ics now includes the timezone set in wordpress.

= 9.4.3 =
* Posted on 08/05/2020
* Fixed: woocommerce Single Product Sale Flash compatibility fix.
* Fixed: when syncing an appointment from google calendar, this did not block appointments in the front-end. A regression bug.

= 9.4.1 =
* Posted on 06/05/2020
* Fixed: when google calendar sync is enabled, placing a booking caused errors. A regression bug.

= 9.4 =
* Posted on 05/05/2020
* Fixed: when using a short-code of a service that does not exist, we handle this gracefully now.
* Fixed: regression bug, fixing a second time: single day and time range mode missed a slot. 
* Fixed: when using a coupon with fixed cost, payment was still required if the total amount was zero.
* Fixed: when using a fixed coupon, if the value exceeds the total amount, it is considered invalid and will not apply.
* Fixed: when using a service with membership enabled, switching from new customer to returning customer, threw warnings.
* Fixed: deleting a sale record now works correctly.

= 9.3.9 =
* Posted on 01/05/2020
* Added: search filter now allows adding any custom post type, so should work with most listing themes.
* Fixed: cancel url in email notification was missing start and end dates.
* Fixed: regression bug, where timeslots being booked ignored seats.

= 9.3.7 =
* Posted on 22/04/2020
* Fixed: deleting an availability that previously had bookings did not delete appointments, leaving orphaned records.
* Fixed: woocommerce bookings that had tax applied displayed cost without tax in the backend sales page.
* Fixed: some systems displayed a mustache templating engine warning.
* Fixed: short-code tab in services displayed a warning stating that a service selection is required, when it is not.

= 9.3.5 =
* Posted on 20/04/2020
* Fixed: when including multiple short-codes on the same page, if the services had optional extras the plugin will choke.
* Fixed: optional groups that are to multiply cost by seats displayed 0 cost when navigating away from optional step backwards and returning back to it.

= 9.3.4 =
* Posted on 16/04/2020
* Fixed: Multi date mode did not caculate custom charge.
* Fixed: Multi date mode did not calculate pricing scheme.
* Fixed: sales page bugged after viewing an order detail.
* Fixed: woocommerce product type calendarista now allows setting the individual product as taxable with tax class and also inventory.
* Fixed: sales page now provides a button that links an order to woocommerce.

= 9.3 =
* Posted on 25/03/2020
* Fixed: guests did not deduct seats if group booking wasn't enabled.
* Fixed: regression bug: single day and time range mode missed a slot if this was previously booked.
* Added: 2 new service modes: Multi date and multi date and time. Allows booking multiple dates that are not in sequence.

= 9.2.7 =
* Posted on 09/03/2020
* Fixed: stopped using utf8_encode as some PHP versions do not ship with this by default.
* Fixed: woocommerce checkout was broken due to recent 9.2 update.

= 9.2.6 =
* Posted on 09/03/2020
* Fixed: regression bug, bookings broken.
* Fixed: search broken, regression bug.
* Fixed: optimization for speed. most notable in changeover mode.
* Fixed: regression bug: Paypal bookings not registered after payment.

= 9.2.4 =
* Posted on 08/03/2020
* Fixed: optimization for speed. most notable in changeover mode.
* Fixed: regression bug: Paypal bookings not registered after payment, please update :(

= 9.2.2 =
* Posted on 03/03/2020
* Fixed: regression bug. Editing an appointment in the backend was broken.

= 9.2.1 =
* Posted on 29/02/2020
* Fixed: holidays page time off dialog missing translation.
* Fixed: misc inconsistencies.

= 9.2 =
* Posted on 28/02/2020
* Fixed: currency symbol not showing. regression bug.
* Improved: revamped guests functionality. more intuitive and now seats will be spread around all guest fields.
* Fixed: unavailable slots strikethrough appeared as an underline.
* Fixed: sync'd appointments in listview did not display the appointment details when clicking the edit button.
* Fixed: search end date is no longer set by default.
* Fixed: race condition which can cause overbooking, if two people try to book the same appointment, the first to checkout wins.
* Added: new email notification to inform customer that a race condition.
* Updated: french and italian language files.

= 9.1 =
* Posted on 08/02/2020
* Fixed: checkbox text overflow hiding part of the text.
* Fixed: search filter result did not link to the correct service/availability if the result item did not match the search date.
* Fixed: search filter not returning results correctly if the availability had a termination date.
* Fixed: miscellaneous bug fixes and PHP 7.3+ warnings in our integrated third party updater.

= 9.0 =
* Posted on 05/02/2020
* Added: Search. You can now add a search filter to find available bookings, check example: https://www.calendarista.com/car-rental/
* Improved: places aggregate cost list is now paged.
* Updated bootstrap to latest version 4.4.1
* Fixed: when editing an appointment in the back-end, where the availability was changed, the update did not take place correctly.
* Fixed: staff member did not receive a notification if the user making the booking was logged in to WordPress.

= 8.8 =
* Posted January 03, 2020
* Improvement: UI color enhancements to overall tabs and booking form.
* Fix: with woocommerce enabled, some webservers have an issue with early call to WC() function, which broke the details step.

= 8.5 =
* Posted December 17, 2019
* Added: backend appointments calendar will auto translate based on your WordPress locale and will switch to listview in responsive mode.
* Added: new short code generator in appointments page to display all your public appointments so these are visible within a full calendar in the front-end.
* Improved: negative cost in optional extra now show the cost as a discount.
* Improved: auto filling woocommerce billing name and billing email in checkout page. data also remembered when coming back to the booking form from woocommerce checkout/cart.
* Fixed: bookings that were already in a cancelled state, send out a booking cancel notification when deleted by admin. 
* Fixed: the new email template tokens introduced in 8.2 were not printing the correct date and time.
* Fixed: first day of week option was doing nothing to the font-end calendar.
* Fixed: several text strings that were not translatable in the plugins back-end.
* Fixed: text strings that were not getting translated when loading timeslots eg: start time place holder text and the reset label.
* Fixed: setting empty values in Services->Map page did nothing.
* Fixed: setting the booking start date in the availability settings, to a date in the future (1month+) caused issues in the frontend calendar when clicking the clear button.
* Updated: translation files.

= 8.2 =
* Posted December 6, 2019
* Added: new short-code [confirmation-message] that can be added to the designated custom confirmation page.
* Added: new tokens for email templates that separate date from time: {{start_date}},  {{start_time}},  {{end_date}},  {{end_time}}
* Added: French translation.
* Fixed: regression bug in appointments page where time was displayed with an hour difference.
* Fixed: miscellaneous strings that were missing translation.
* Fixed: some css conflicts with themes where overall text appears to be too small, along with the form elements.
* Fixed: regression bug, using custom charge if selected num of days exceed the minimum requirement, did not apply.
* Fixed: optional group did not display the cost correctly with a mode that calculates by seat.

= 8.1 =
* Posted November 26, 2019
* Fixed: stripe payments that are not 3d secure/SCA will redirect to success page after a successful operation.
* Fixed: when creating/editing woocommerce regular product type pricing, it reset automatically to 0.
* Fixed: regression bug, the current day in the front-end calendar was always unavailable for booking.

= 8.0 =
* Posted November 14, 2019
* Added: stronger woocommerce support with misc fixes. now the booking form will automatically get added to woocommerce product pages and behave as any product.
* Added: when creating the woocommerce calendarista product, opened up more options. product is also no longer hidden from catalog etc.
* Added: check the new woocommerce demo page: http://bit.ly/calendarista-woo
* Added: email subject now supports all tokens supported in the email body.
* Added: the email master template is now editable from the settings->emails page.
* Fixed: a piece of string in the gdpr compliance page was not translatable.

= 7.9.7 =
* Posted November 6, 2019
* Fixed: in case there is no availability in the current month, the next first available date will be hilighted on the front-end calendar.
* Fixed: appointments page listview edit button did not work, regression bug.

= 7.9.6 =
* Posted November 1, 2019
* Fixed: multi date and time range allowed booking a discontinous period when the end date fell on a month after the start date.
* Fixed: when taking a holiday on a single day and time range mode, you could book slots even though the slots in between the start and end were unavailable.

= 7.9.5 =
* Posted October 27, 2019
* Updated: fullcalendar used in the backend now uses the latest v4 release(This is the back-end calendar in the appointments page).
* Fixed: slight ui misplacements (borders, spacing, margin etc in the dialog) when editing an appointment in the back-end.
* Fixed: single day and time range now shows a date as unavailable if there are no available slots for the day.
* Fixed: regression bug when using pricing scheme, the calcuated cost is wrong. 

= 7.9.3 =
* Posted October 22, 2019
* Fixed: Google Calendar sync ignored timezone.
* Improved: Google Calendar sync code refactored.

= 7.9.2 =
* Posted October 17, 2019
* Fixed: synchronizing time set in google calendar was not getting blocked in the front-end when using single day and time mode.
* Fixed: when creating a service without an availabilty, the plugin broke in the front-end instead of showing a booking form that has no bookings.
* Fixed: when trying to syncronize appointments where time is involved, on some circumstances, if there was a previous appointment on availability (A), then availability (B) still allowed the booking.
* Fixed: round trip with time mode was broken when selecting return with seats enabled.

= 7.9.1 =
* Posted October 16, 2019
* Fixed: regression bug introduced in 7.9 update, couldn't create a new service or update an existing one.

= 7.9 =
* Posted October 14, 2019
* Updated: bootstrap to latest version 4.3
* Improved: UI changes, now we use tabs, cleaner revamped bordered layout, new buttons, better colors. 
* Remember: Due to UI changes, before updating if using styles, please remember to reset the style in Services - Styles page as the template has changed.
* Added: Services now allow setting an image that will be displayed in the booking form header area.
* Added: Stripe support for SCA.
* Fixed: The front-end calendar now shows the first available date instead of the current date. 
* Fixed: changeover mode now no longer allows checkin on a day that was previously checkin, instead allows only checkout. same applies for checkout.
* Fixed: package mode now does not show a dropdownlist selection but only the single item when there is just a single package.
* Fixed: package mode did not show description.
* Fixed: when setting seats minimum with your timeslots, the whole day got booked after a single booking.
* Fixed: sales page did not allow deleting a sale after the first sale was deleted and required a page refresh.
* Fixed: setting a season did not apply the season cost, specifically when using service mode of type multi date range & changeover.

= 7.8.5 =
* Posted August 25, 2019
* Fixed: tax set in woocommerce was not applied in calendarista but only the woocommerce order.

= 7.8.4 =
* Posted August 24, 2019
* Fixed: google maps direction service was using km even when miles was the active unit system.

= 7.8.3 =
* Posted August 20, 2019
* Improved: sales page, now fully ajax enabled, much faster and less time wasted waiting for page reload.
* Fixed: single day service mode did not sync with google calendar.
* Fixed: map unit type showed miles when km was the active unit type.

= 7.8.2 = 
* Posted August 13, 2019
* Fixed: updated google calendar instructions (7.8.2)
* Fixed: miscellaneous bugs relating to coupon code creation (7.8.1)
* Fixed: some strings in the back-end were not translation ready.
* Fixed: calendar next/prev buttons unusuable in rtl mode.
* Fixed: slight improvements in calendar next/prev buttons and title bar.
* Fixed: When a new booking is placed, google calendar failed to update, reported missing file error but was actually typo in class name.
* Fixed: custom charge percentage value added base cost along with the percentage. now it just uses the percentage cost.
* Fixed: coupon edit dialog didn't allow editing code or changing the mode.
* Fixed: creating a coupon with the same code is no longer allowed.
* Fixed: when using maps aggregate cost, the cost was not displayed correctly in the back-end sales and appointments page.
* Fixed: miles/km unit type displayed the wrong type in booking summary as you navigated the wizard steps.
* Fixed: no more than 10 products were listed when selecting a woocommerce product in the services page.
* Fixed: woocommerce coupons were not reported in calendarista.
* Fixed: creating appointments from the backend did not include the routing cost when using departure/destination etc.
* Added: miles/km setting in places - general page.
* Improved: staff members page now fully ajax enabled, faster and less time wasted waiting for page reload.
* Improved: coupons page now has a search filter and is fully ajax enabled.
* Improved: error messages from payment processors such as stripe and 2checkout in case payment fails.

= 7.8 = 
* Posted August 6, 2019
* Fixed: some strings in the back-end were not translation ready. 
* Fixed: calendar next/prev buttons unusuable in rtl mode. 
* Fixed: slight improvements in calendar next/prev buttons and title bar. 
* Fixed: When a new booking is placed, google calendar failed to update, reported missing file error but was actually typo in class name. 
* Fixed: custom charge percentage value added base cost along with the percentage. now it just uses the percentage cost. 
* Fixed: coupon edit dialog didn't allow editing code or changing the mode. 
* Fixed: creating a coupon with the same code is no longer allowed. 
* Fixed: when using maps aggregate cost, the cost was not displayed correctly in the back-end sales and appointments page. 
* Fixed: miles/km unit type displayed the wrong type in booking summary as you navigated the wizard steps. 
* Fixed: no more than 10 products were listed when selecting a woocommerce product in the services page. 
* Fixed: woocommerce coupons were not reported in calendarista. 
* Fixed: creating appointments from the backend did not include the routing cost when using departure/destination etc. 
* Added: miles/km setting in places - general page. 
* Improved: staff members page now fully ajax enabled, faster and less time wasted waiting for page reload. 
* Improved: coupons page now has a search filter and is fully ajax enabled. 
* Improved: error messages from payment processors such as stripe and 2checkout in case payment fails.

= 7.7 =
* Posted July 4, 2019
* Added: smtp settings for emails. this will ensure your mail does not end up in spam as this authenticates the plugin to send mail.
* Added: the cost of an optional extras can now multiply by selected day/timeslot and seats combined.
* Added: honeypot captcha to solve rather unusual edge cases.
* Added: guests are now included in csv export.
* Fixed: editing the cost of a guest item simply did nothing.
* Fixed: single checkbox and radio button items created by custom form builder threw an error when you had a single item not set through the content field.
* Fixed: regression bug. translations weren't displayed after the first step.
* Fixed: inconsistent behavior with how cost is applied via availability when using the custom charge based on a determined number of days.
* Updated: documentation.

= 7.6.2 =
* Posted June 15, 2019
* Fixed: cost applied via season was not reflected in the appointment summary.
* Fixed: when adding other products in woocommerce that are not of type calendarista, product name was not showing.
* Fixed: some translations done via wpml or polylang never got translated due to early load and exit by our ajax engine.
* Fixed: Indian ruppes had the wrong currency symbol.

= 7.6 =
* Posted June 7, 2019
* Added: Native support for Google Calendar, two-way sync.
* Added: New option in places - aggregate cost page to allow excluding departure/destination combo.
* Fixed: timeslots not sorted in order when trying to take timeoff using the holidays page.
* Fixed: woocommerce integration used a deprecated function which caused checkout page to show a session expiry error.
* Fixed: regression bug in services - map page. selecting an availability took you away from the page.
* Fixed: bookings as long as a month or longer were not being shown in the appointments page nor reflected as booked in the front-end.
* Fixed: list of feeds on the feeds page had pager broken.
* Fixed: regression bug, a service mode with multi date and time range ignored seats more than 1. eg: 5 seats were treated as 1.
* Fixed: when using multiple services switcher, the package mode did not maintain the service list after a package was selected.
* Fixed: round trip mode booked all dates in between the departing and return dates. now only the start and end dates get booked.
* Fixed: round trip with time mode now does not allow booking a return trip on the same day if available slots are not continous.
* Fixed: minimum seats requirement was not applied across all service modes.
* Fixed: when using coupons, checkout with a payment operator excluded the tax value.
* Fixed: GDPR email did not have the correct sender name.
* Fixed: on some setups, when using multiple services, the first selected service was always shown in the default language resource.
* Fixed: multi date and time range service mode did not sync correctly when multiple availabilities were involved. 

= 7.5 =
* Posted April 23, 2019
* Fixed: changeover mode with multiple seats didn't allow rebooking check-in/check-out days, even though there were additional seats left.
* Fixed: season cost did not deduct from total when fixed cost was used.
* Added: new option in the feeds page to filter by appointment status.

= 7.4 = 
* Posted April 18, 2019
* Fixed: updating an appointment from the back-end doubled the cost.
* Fixed: updating an appointment from the backend, when using a multi date range mode, the start date didn't allow selection.
* Fixed: when switching availability while updating an appointment from the backend, the appointment was updated wrongly and reset the form fields as well.
* Fixed: appointment page, list view did not maintain search filter when paging.
* Fixed: optional extra, such as the ones in a dropdown list displayed cost after tax. 
* Fixed: map with departure and destination did not show summary on the route step and several other inconsistencies solved.
* Fixed: optional item with zero cost was showing cost value in summary even when service mode had payments set to none.
* Added: kuwaiti dinar currency.
* Added: deposit label in woocommerce checkout/cart with balance required upon arrival.
* Added: new token {{appointment_management_url}} to add in new booking notification for admin/staff. if email template has not been modified, this is already included by default.

= 7.3 = 
* Posted April 8, 2019
* Fixed: 24h format was being ignored.
* Fixed: appointments in the backend calendar spanned an extra cell.
* Fixed: ical feeds spanned an extra day and time was also ignored on some service modes.
* Stay tuned, this is an important but minor update. More updates in the works...

= 7.2 = 
* Posted April 4, 2019
* Fixed: appointments listed in back-end are now listed by appointment date when a date search filter is applied.
* Fixed: regression bug, single day and time mode blocked available dates when one or more slots had no seats left.
* Stay tuned, this is an important but minor update. More updates in the works...

= 7.0 = 
* Posted April 3, 2019
* Fixed: appointments in the back-end, displayed a link to the sales page even when appointment had payments disabled.
* Fixed: optional extras that had negative cost did not display cost in the booking summary.
* Fixed: single day and time range mode now considers cost by time range i.e. each slot cost will count towards the total amount.
* Fixed: single day/multi date and time range now allow booking the entire range of available slots.
* Fixed: single day/multi date and time range now correctly disallow slots if the range is not continous (previously fixed but had a bug).
* Fixed: round trip with time now does not allow booking the return date/time if it has run out of seats.
* Fixed: add to calendar discarded time when the service mode was multi date and time range.
* Added: date range filter in the back-end appointments page (list view).
* Stay tuned, more updates in the works...

= 6.9 =
* Posted March 24, 2019
* Improved: "multi date and time range" mode now does not allow over booking.
* Fixed: appointment time was wrong in the email notifications when setting a timezone in the availability.
* Fixed: time ignored in google add to calendar button, when appointment was for a single day/time.
* Fixed: regression bug with seats and timeslots. After last seat was booked, system did not block the slot from further booking.
* Added: option to send out an appointment cancelled notification to customer when deleting an unconfirmed booking.
* Stay tuned, more updates in the works...

= 6.8.2 = 
* Posted March 12, 2019
* Fixed: regression, time format setting was not respected, hence if you tried to set a 24h format, this was ignored.

= 6.8.1 = 
* Posted March 10, 2019
* Fixed: 6.8 had debug mode enabled in production code.

= 6.8 =
* Posted March 9, 2019
* Fixed: when using long names for week days, the days were always in english in the booking summary. 
* Fixed: timezone solution was wrong when using timeslots with timezone enabled on availability.
* Fixed: single day and time (listbox multi selection) and single day and time range allowed booked a range even though slots in between were out of seats.
* Fixed: strings with quotes in them were displayed with a forward slash escape sequence.
* Fixed: the booking form in the front-end displays the wizard breadcrumb always now when in responsive mode. the toggle button has been removed.
* Fixed: staff member not able to setup holidays. The availability filter never loaded, now resolved.
* Added: min/max notice is now supported by service mode of type single day and time range.
* Added: new option in settings - general page to disable booking cancelled notifications sent to customer when staff cancel a booking.
* Fixed: the add to calendar links generated after a successful booking had the wrong time (was always an hour ahead depending on timezone).
* Stay tuned, more updates in the works...

= 6.7 =
* Posted March 4, 2019
* Fixed: regression bug, "services - style" page redirected away to a separate page when selecting advanced option.
* Added: Add to calendar links (ical, outlook and google) are now added to the booking success message. 
* Added: Add to calendar links in email notification. Look for the tokens you can use in the email settings page itself.
* Stay tuned, more updates in the works...

= 6.6 =
* Posted February 28, 2019
* Added: Guests field, which can be used to create selection for an unlimited number of guest fields eg: children, people etc whose value can range based on selected seat value along with associated cost.
* Fixed: woocommerce cart allowed changing quantity when group booking is enabled in calendarista with seat selection of value 1. 
* Fixed: when navigating the front-end wizard, scroll position is now maintained towards the start of the form.
* Fixed: group booking selection is now maintained when moving backward in the booking form.
* Fixed: email settings page reset button is now enabled only if a template has saved changes.
* Fixed: front-end calendar would reset after navigating using the calendar next/previous buttons, which resulted in making unavailable dates bookable.
* Fixed: availability start and terminate time is now in 24 hour format.
* Fixed: export to csv date selection now correctly allows selecting a date range in the past.
* Added: export to csv now has a filter for appointment status and includes a status column in the generated csv file.

= 6.5 =
* Posted January 28, 2019
* Fixed: pricing scheme in the availability page listed all schemes, including also those in seasons.
* Fixed: sales page wasn't showing the correct payment date.
* Fixed: in multi date and time range mode, when selecting the end date, the start time was reset. this is bad ux, fixed. 
* Fixed: predefined departure and destination lists now maintain the selected value instead of using the original latlng address.
* Fixed: subtotal now includes optional extras.
* Fixed: admin was not receiving the booking cancelled notification.
* Added: appointment page in backend now has a listview.
* Added: new autogen feature for pricing scheme in case you wanted to apply the same cost to a range of days.
* Added: payment_date token to email templates. check the tokens section under settings - emails page.

= 6.4 =
* Posted January 4, 2019
* Fixed: when no timeslots are available or time off is taken, that particular date remains disabled in the front-end.
* Fixed: time range inconsistencies, mainly what 6.3 did not solve.

= 6.3 =
* Posted December 30, 2018
* Fixed: time range on the start time was missing a slot even when the date range wasn't on the same day.
* Fixed: some themes override the plugins css, so tried to override and enforce our rules.

= 6.2 =
* Posted December 23, 2018
* Fixed: regression bug, pricing scheme was not applied if a season was not used.

= 6.1 =
* Posted December 22, 2018
* Merry christmas to you all. Thanks so much for supporting our efforts!
* Fixed: pricing schemes across seasons now applies cost correctly.

= 6.0 =
* Posted December 21, 2018
* Fixed: when using multi date and time range where one or more days fell within a new season, only the previous season was taken into account.
* Fixed: when making payment with woocommerce, pricing scheme cost value was not reflected in the order after sales.
* Fixed: multi date and time range service mode appointments in the sales page was showing without the associated cost.
* Fixed: single day and time range allowed selecting the same from/to time.

= 5.9 =
* Posted December 19, 2018
* Fixed: regression bug, add waypoints button on some systems failed.
* Added: new token in emails to display the total amount paid: {{total_amount_paid}}

= 5.8 =
* Posted December 15, 2018
* Fixed: sales page date filter now produces the desired results.
* Fixed: optional extras to be multiplied per day was broken.

= 5.7 =
* Posted December 11, 2018
* Added: woocommerce thumbnail in cart.
* Added: woocommerce group booking now reflects in quantity.
* Added: woocommerce return to book more takes into account inventory.
* Added: default value for billing information country field, can now be set in the settings - payments page.
* Added: new action with a single argument. Usage: add_action('calendarista_checkout_step', 'on_checkout_step_load', 1, 1);
* Added: front-end calendar disables days for which timeslots are unavailable.
* Added: an availability calendar is not displayed in the front-end if there are no appointments left. 
* Fixed: credit card fields placeholders were missing translation.
* Fixed: optional item quantity now correctly shows out of stock when running out of quantity.
* Fixed: multi date range with time, the end timeslots now incudes all slots defined if start and end date arent the same.
* Fixed: creating custom charge by percentage was calculated wrong.
* Fixed: updating an appointment in back-end that had a discount coupon applied produced wrong total amount.
* Fixed: fixed deposit amount greater than the cost will be ignored now.
* Fixed: tax is now applied to both the remaining balance and upfront deposit.
* Fixed: {{total_cost_value}} token now outputs the entire cost of the appointment when using deposits. previously, this output the deposit amount.
* Fixed: some themes conflicted with credit card payment panels, which never showed when selecting a payment mode. bootstrap collapse script is now prefixed.
* Fixed: a subtotal of $0.00 was displayed in the booking summary, even though there is no cost set. correct behavior is to not show it at all.
* Fixed: multi date range and time mode now syncronizes appointments between availabilities correctly.
* Fixed: woocommerce item cleared from cart unexpectedly.
* Fixed: when timezone is enabled, the appointment summary wasn't showing the correct time.
* Fixed: time range bookings now reset the summary after a date selection, where time is not yet selected.
* Fixed: stronger support for special characters such as german umlauts in email sender name, subject and set explicit utf-8 encoding to the content.

= 5.6 =
* Posted November 14, 2018
* Fixed: the new feature pricing scheme had the seasonId column missing.

= 5.5 =
* Posted November 13, 2018
* Fixed: removed debug mode, shouldn't have been in release.

= 5.4 =
* Posted November 13, 2018
* Fixed: when duplicating a service, timeslots were not duplicated.
* Fixed: autogenerating timeslots didn't always produce the expected results.
* Fixed: coupon status showed unused when already claimed.
* Fixed: coupon discounted total amount was not showing in emails and sales.
* Fixed: setting seats caused issues with the seat miniumum value.
* Improved: woocommerce display of product information in order review and cart.
* Added: New feature, pricing scheme, where you can set custom cost by number of days being booked.
* Added: New feature for multi date and time range, where time can be made figurative (simbolic). Useful for parking space or tent rentals etc.
* Added: New feature, custom confirmation page is now supported. Option can be found in the settings page.
* Added: New feature, adding up optional cost by each timeslot select or slots in a time range are now supported.
* Added: New feature, email notification to alert admin of cancelled bookings. Needs to be enabled in settings page.

= 5.3 =
* Posted October 17, 2018
* Fixed: coupon discount applied to total summary but not applied during payment.
* Fixed: optional extra cost was doubled when return wasn't selected.
* Fixed: season cost did not apply to round trip mode.
* Fixed: calendarista woocommerce product type is now virtual, eliminating shipping information.
* Fixed: billing info was not saving the details for return customers.
* Fixed: inclusive tax mode was applying tax to the total.
* Improved: next/previous month nav button in calendar does not allow sporadic clicking.

= 5.2 =
* Posted October 5, 2018
* Fixed: maps autocomplete filter was only returning geocoding results, and excluding business results.
* Fixed: setup with multiple services and multiple availabilities, switching availability caused service selection to disappear.
* Fixed: regression bug concerning seats and timeslots. You weren't able to book more than 2 seats.
* Fixed: on slow latency network, customers were able to move forward in the wizard before the timeslots loaded.
* Improved: background ajax requests speed in the wizard front-end when selecting dates/timeslots etc.

= 5.1 =
* Posted October 3, 2018
* Fixed: appointments that had waypoints weren't showing in the appointments calendar.
* Fixed: some parts of the app broke when using special characters such as ø, ä etc.

= 5.0 =
* Posted September 24, 2018
* Improved: optional extras min requirement and required restrictions are strict now.
* Fixed: with multiple staff members setup, all staff members were emailed.
* Fixed: service provider name in the staff member email was the admin user instead of the staff member name.

= 4.9 =
* Posted September 12, 2018
* Added: Staff members can now create new appointments from the backend.
* Fixed: Staff member wasn't receiving email.
* Fixed: minimum seats wasn't deducted from the pool of available seats if group booking wasn't enabled.
* Fixed: regression bug with timeslots, range timeslots etc and seats.

= 4.8 =
* Posted September 9, 2018
* Added: Seats restriction (Minimum seats) to time slot based bookings.
* Added: Seasons now include a bulk delete option.
* Added: Seasons now allows you to target specific days of the week within range.
* Fixed: Timezone wouldn't allow you to set it to none if you had a timezone set wordpress setting page.
* Fixed: Single day and time range mode was a slot behind after booking with seats enabled.
* Fixed: Checkout with creditcard shrunk the cc related fields in responsive mode.
* Fixed: Waypoints were missing in booking summary.
* Improved: PHP 5.2 compatibility.
* Improved: Custom form field plain text had a 256 character limit. Now unlimited.

= 4.7 =
* Posted August 15, 2018
* Fixed: Regression bug, last update broke timeslot seats.
* Fixed: Improved service synchronization.

= 4.6 =
* Posted August 15, 2018
* Added: service availabilities can be synced with one another. When enabled, booking on one availability wont allow booking the same date on another.
* Added: description field in availability. Now a selected availability will show description in the wizard if active.
* Added: minimum seats requirement implemented.
* Added: approved, pending approval and cancelled legend in the backend appointments calendar.
* Added: # of nights stay label to booking summary via new token: {{#if_has_nights}}{{/if_has_nights}} and {{nights_label}}
* Added: new map link token you can add to email notifications {{#if_has_map_link}}{{/if_has_map_link}} and {{map_link}}
* Added: new tax amount token you can add to booking summary: {{tax_amount}}
* Fixed: miscellaneous fixes to changeover mode for correct behavior (cost calculation). you may not notice this change.
* Fixed: you can no longer checkin and checkout on the same day for changeover mode.
* Fixed: Staff members were limited to a single staff member per availability.
* Fixed: Multi date range with time was one slot behind, in short there was a slot missing.
* Fixed: min/max days validation in back-end availability page.

= 4.5 =
* Posted July 20, 2018
* Fixed: changeover days regression bug. The seats were not getting applied.
* Fixed: spanish translation.

= 4.4 =
* Posted July 19, 2018
* Added: extended seats support to "multi date range", "multi date and time range" and "changeover" mode.
* Added: extended season support to "multi date and time range" and "round trip with time" mode.
* Added: extended turnover days (prep time) and min/max notice to all modes excluding package and padding.
* Added: user submitted spanish translation. Many thanks to Juanjo.
* Fixed: custom form fields separator and placeholder weren't updating.
* Fixed: sales page details view, couldn't delete an appointment in firefox.
* Fixed: booking received success email worded incorrectly.
* Fixed: places page, disabling destination wasn't getting saved.
* Fixed: if a only a check-in or only a check-out date fell within a season then cost was wrong (affects changeover mode).
* Fixed: feeds with timeslots that didn't match the source exactly were not accounted for.
* Fixed: staff members couldn't be created on a service of type package.
* Fixed: when applying coupons in the checkout step, name and email were not showing in the summary.

= 4.3 =
* Posted July 3, 2018
* Fixed: syncing google calendar feed with plugin had the wrong time.
* Fixed: syncing google calendar feed with plugin did not disable the time if the appointment was booked in gcal.

= 4.2 =
* Posted June 29, 2018
* Fixed: regression bug introduced in 4.1. optional fields in round trips not working.
* Fixed: distance duration was off in the notification emails, if the travel distance was greater than 16mins.
* Fixed: optional extra negative cost wasn't working.
* Fixed: when resetting availability map, nothing happened.

= 4.1 =
* Posted June 29, 2018
* Added: GDPR compliance. 
* a) A new GDPR page in settings. 
* b) A gdpr notification email is sent to the customer containing a link which allows:
* b.1) Downloading appointments in csv format.
* b.2) Request data deletion. 
* c) Admin receives the request and complies with the request.
* Added: book unlimited times option to the changeover mode 
* (Attention: Ensure you have checked the new option "Book once" in "services - availability" page for default behavior after this update)
* Added: new option in settings - payments page to set currency symbol placement (automatic or manually set left or right to currency value).
* Fixed: site name used in email footer if it had quotes, these were converted to the html character code. 
* Fixed: when there is no availability, you could still navigate between steps in the wizard.
* Fixed: coupons emailed had no sender name and address.
* Fixed: csv export mismatched columns for custom form fields and optional extras etc.
* Fixed: time was incorrect when syncing ical feed with an external calendar.
* Fixed: only the first terms and conditions worked when adding multiple terms via the custom form fields.
* Fixed: map travel distance defaulted to miles in email notifications even though the unit type was set to km.

= 4.0 = 
* Posted June 8, 2018
* Fixed: services - map page miscellaneous bug fixes.
* Fixed: emails had the default background color of white by default. 

= 3.9 =
* Posted June 6, 2018
* Added: new phone number field in custom form builder (by country, supports masks and number validation).
* Added: new tokens for emails {{tax}}, {{tax_rate}}, {{deposit}}, {{deposit_amount}} and {{balance_amount}} with respective control statements.
* Fixed: sales page in back-end datepicker erratic when clearing dates.
* Fixed: regression bug; the map section in the services page did not allow setting a map when an availability was selected.
* Fixed: regression bug; the styles section in the services page did not allow selecting the advanced option.
* Fixed: auto confirm only after payment now works as intended.
* Fixed: multi date range with time was missing time in notification emails.
* Fixed: single date and time range had an anomaly where timeslots weren't reset to a fresh state when changing date.
* Fixed: resending email reminders was broken.

= 3.8 =
* Posted May 24, 2018
* Added: seasons support. Applies to service modes that do not include timeslots.
* Added: {{customer_email}} token to emails
* Improved: Days with timeslots are now unavailable in the calendar if all timeslots are set as timeoff via holidays.
* Improved: CSV data exported is now organized better with all fields within their respective columns.
* Improved: datepicker on sales page now has a clear button to clear the date fields and a search by name filter.
* Fixed: email header and background color setting did not apply even if you changed this in the email settings.
* Fixed: date formats weren't respected correctly and missing zero padding when necessary.
* Fixed: when confirming payment in backend, the appointment wasn't automatically approved.
* Fixed: regex field found in the custom form builder did not work.
* Fixed: the end date was blocked from booking if it was a changeover day (affects multi day changover mode only).
* Fixed: when stripe or twocheckout are the only payment operators, the creditcard payment form did not display.
* Fixed: autogenerated timeslots choked in frontend if you had an exotic timeformat set in wordpress general settings.
* Fixed: exported feeds spanning multiple days were always one day short when exporting to google calendar.
* Fixed: check-in/check-out on sunday was ignored and miscellaneous bugs that affected changeover days.
* Fixed: changeover days that included check-in/check-out on the same day is miscalculated.
* Fixed: changeover days mode allowed selecting a range when the range consisted of changeover days.

= 3.7 =
* Posted May 12, 2018
* Fixed: regression bug, checkout with woocommerce was broken.

= 3.6 =
* Posted May 11, 2018
* Fixed: coupon with fixed discount were restricted to the value 100.
* Fixed: generated iCAL feeds did not conform to the structure google calendar was expecting, now rewritten.
* Fixed: if you had stripe or 2twocheckout payments disabled, the relating clientscripts will still inserted in the page.
* Fixed: when creating a new appointment from the backend appointments page, sometimes the navigation buttons did nothing when clicked.
* Added: new delete all option for feeds that will delete all synced data along with the feed being deleted.

= 3.5 =
* Posted May 5, 2018
* Added: feeds synchronization timeout now can be controlled from feeds page.
* Added: inclusive tax which will show on individual costs such as optional extras if enabled in the settings.
* Fixed: checkbox list and radio button list did not display the label field.
* Fixed: textbox and textarea showed their label in the booking summary when empty.
* Fixed: dynamic strings were not being registered in polylang for translation.
* Fixed: feeds synchronization, changeover days and date ranges did not block out dates between range.
* Fixed: removed payment_url token from payment required email template, it was a dummy token added by mistake.
* Fixed: creating an appointment of type package in the back-end showed nav button and book now button and payment options.
* Fixed: cost summary showing wrong totals when validating coupon code.

= 3.4 =
* Posted April 26, 2018
* Fixed: when multi timeslot selection is enabled, and a single timeslot remains, it is treated as if empty.
* Fixed: regression bug, broke auto updates. If you installed 3.3 then please install 3.4 manually by downloading it again from codecanyon to fix, sorry :(

= 3.3 =
* Posted April 26, 2018
* Improved: speed optimization for the custom css handler, 80% faster
* Fixed: regression bug. polylang and wpml translations didn't translate custom form fields and booking summary.
* Fixed: custom form fields missing from booking summary in checkout step.

= 3.2 =
* Posted April 17, 2018
* Fixed: typo causing failure on environments with strict error_reporting

= 3.1 =
* Posted April 16, 2018
* Fixed: coupon validation failed when using a coupon with a minimum order amount restriction.
* Fixed: regular coupon did not expire after single use.
* Fixed: coupon discount wasn't displayed when viewing booked appointments in the backend.
* Added: now you can set a custom invoice prefix from the settings page.

= 3.0 =
* Posted April 14, 2018
* Fixed: Regression bug. When trying to edit an appointment from the appointments page, nothing happened.
* Added: Availability name can now be inserted in frontend summary and email notifications using the {{availability_name}} token.

= 2.9 =
* Posted April 12, 2018
* Fixed: when login or registration is required, plugin choked and wouldnt go past the details step.
* Fixed: when logging in instead of registering, plugin choked and wouldnt go past the details step.

= 2.8 =
* Posted April 11, 2018
* Fixed: woocommerce was still failing on some systems, reworked code to cope.

= 2.7 =
* Posted April 11, 2018
* Fixed: Regression bug (confirming, cancelling and deleting appointment in backend wasn't working).
* Fixed: Regression bug (woocommerce enabled booking didn't get past the details step, when making a booking).

= 2.6 =
* Posted April 10, 2018
* Improved: General overall speed and faster ajax execution times, more than 80% faster now.
* Added: Export to CSV.
* Added: Appointment cancel policy and improved the cancellation page.
* Added: Custom form fields are now included in booking summary and back-end appointments view. Reset the style and save it again to make use of this change.
* Fixed: Typo in booking reminder email.
* Fixed: When cloning a service, the optionals didn't get cloned.
* Fixed: Changeover days didn't show correct cost when booking was viewed from the backend appointment page.
* Fixed: Changeover days cost was incorrect when using optionals with multiply value per day selected.

= 2.5 =
* Posted March 28, 2018
* Fixed: Optional extras were not included in discounts and deposits.
* Fixed: When the only payment operator was paypal, we still displayed address fields for credit card fraud protection (Paypal does not require this).
* Fixed: Regression bug involving timeslots did not allow unlimited bookings if seats weren't set.
* Fixed: Regression bug involving timeslot paddings did not pad at all.
* Fixed: Selecting a single payment operator with online & offline mode resulted with not being able to select an operator in the front-end.

= 2.4 =
* Posted March 25, 2018
* Fixed: Regression bug in multi days with changeover mode. Booked dates remained available for booking.
* Fixed: Timezone off by 1 hour when setting timezone in availability.
* Fixed: Currency symbols showed html code in emails instead of symbol.
* Fixed: Optional extras were missing line breaks in emails.
* Added: You can delete synced bookings in the appointments page and new filter to toggle synced bookings.
* Improved: Cancelled and synced bookings now are denoted in red and gray respectively in the appointments page.
* Improved: Appointments are now clearer to see in the back-end and include a read only view in addition to previous edit mode.
* Improved: Sales page now shows the appointment details.
* Improved: Steps navbar responsiveness.

= 2.3 =
* Posted March 17, 2018
* Nail biting moment. Here comes another update...
* Added: New cost setting in places. Now you can set a fixed cost that will be calculated per km/mile.
* Fixed: Date and time format in general settings are now respected in email notifications.
* Fixed: Dropdown list options created using the custom form builder are now translatable.
* Fixed: When a time slot is booked, a seat was deducted from all days of that particular week. 
* Fixed: Removed booked seats field from the time slots page. These didn't make sense after the above fix.
* Fixed: Group booking didn't show the seats selection when moving backwards in the wizard.
* Improved: General padding and margins between fields when using custom form fields and optionals.
* Improved: Removed bootstrap javascript includes. Less conflicts, lighter pages. Win win.

= 2.2 =
* Posted March 12, 2018
* You've got to calm down to get more done. Think zen...
* Added: Support for Polylang.
* Added: An availability with return but where no explicit return cost is set, will have the base cost doubled.
* Added: Optional extras have new option to allow doubling the cost if return date is selected.
* Added: Now maps also include distance duration.
* Added: Optional extra cost now supports negative values.
* Added: Terms and conditions field to the custom form fields builder.
* Added: Italian and German translation.
* Improved: Optionals in booking summary now includes the cost. Reset "services - style" page for this change.
* Improved: Wizard breadcrumbs are now responsive. Only step numbers show on smaller screens.
* Improved: Steps now have a circled number indicator and removed the background strip surrounding the steps.
* Improved: Removed default selection from optional extra dropdown list. This was redundant.
* Improved: Removed auto scroll which was activated when navigating steps.
* Improved: Appointments displayed in calendar now use customer name in heading instead of availability name.
* Fixed: Translated text now strips slashes correctly.
* Fixed: Email notifications did not include distance unit.
* Fixed: Custom form field of type textarea now takes up it's own row and aligns with the rest of the form. 
* Fixed: shortcode content always appeared above any other content in the page.

= 2.0, 2.1 =
* Posted March 3, 2018
* It's to make it easy to master the art of booking with Calendarista...
* Regression bug fix, selecting a day did not produce timeslots (2.1).
* Improved: Now selecting an availability or package will load all properties of the selected package or availability(2.0).
* Fixed: Creating manual individual day based timeslots did not work(2.0).
* Fixed: In enviornments with PHP E_ALL & ~E_STRICT & ~E_NOTICE enabled, you'd get warnings and notices(2.0).
* Improved: Staff member page and coupons page. Tweaked the ajax and spinners to show proper progress indication(2.0).

= 1.9 =
* Posted February 28, 2018
* Just push your boundaries and #DontCrackUnderPressure.
* Fixed: Editing a booking of certain booking mode types in the appointments page failed.
* Fixed: When editing appointments changing steps caused the window to scroll up, quite annoying.
* Fixed: Unavailable days in booking calendar was too faded and day numbers weren't too visible.
* Fixed: Couldn't set a price when creating a regular woocommerce product.
* Fixed: Time based bookings in the appointments page showed a unix format instead of readable date format.
* Fixed: General settings checkboxes were always defaulting to false.
* Improved: now dates retrieved in wordpress localized format.
* Improved: woocommerce product now shows optional extras.
* Improved: woocommerce booking label shown on the product now has no underscore and applied proper casing.
* Added: single day and time mode now has a minimum timeslot fixed price charge.

= 1.8 =
* Posted February 25, 2018
* We're allowed to fail a bit...it's only through failure that you get success.
* Fixed: Payment operators did not work in Firefox.
* Fixed: The total amount was truncated at the thousand separator for values over a 1,000.
* Fixed: Optional extras did not save the multiply settings and always defaulted to none (back-end).
* Fixed: Map option in services and places page did not save the map settings and initial location (back-end).
* Fixed: Map in front-end was missing margins to keep it aligned with the rest of the form.
* Fixed: Updating a general setting caused the assets settings to reset.
* Enhanced: Slight improvements to the sales page and editing bookings (back-end).
* Enhanced: Improved the places page. Now associating a map to a service is much more intuitive (back-end).

= 1.7 =
* Posted February 20, 2018
* That's how we start the week around here, push and push until we're fairly tired...
* Added: An end time to auto generate timeslots.
* Enhanced: CreatingDeleting/Duplicating projects is cleaner.
* Fixed: Timeslot range selector in front-end now works correctly. previously it didn't allow selecting the last slot.
* Fixed: Timeslot range selector treated a time range as two separate slots, resulting in cost miscalculating.
* Fixed: Entering a feeds url in the "settings - feeds" page, caused url validation to fail.
* Fixed: Not setting cost on availability but instead depending on cost in optional extras didn't trigger payment operators during checkout.
* Fixed: Got a 500 error after installing Calendarista? Your PHP is old, update it. Still made the effort to replace code that wasn't php 5.3 compatible

= 1.6 =
* Posted February 17, 2018
* Need more sleep...
* Added: support for Elementor. You can now preview the plugin inside the elementor editor using their shortcode-widget.
* Added: seats and group booking to Single day and time range, round trip, while seats support only added to round trip with time.
* Fixed: create time slots dialog in "services - timeslots" page had a regression bug.
* Fixed: removed a debug statement showing after checkout, a regression bug during.
* Fixed: round trips are not date ranges but were treated as such in the appointment calendar (backend).

= 1.5 =
* Posted February 16, 2018
* The stuff of nightmares...
* Fixed: when group booking (multiple seats), these were getting registered as single seats.
* Fixed: previous update 1.3 introduced a regression bug and broke appointment editing.

= 1.4, 1.3 =
* Posted February 16, 2018
* Light, delicious, bug free. Now with 0% added BS...
* Fixed: Payment operators weren't popping up during checkout. This is a regression bug (introduced while implementing woocommerce).
* Things are heating up, watch out...
* Added: validation against cheaters who hit browser refresh after making a booking. BAM! Gotcha!
* Fixed: corrected half days mode calendar and some peculiarity with calendar legend.
* Fixed: corrected multi date range calendar and apparently dates were disabled even though booking was unlimited.
* Fixed: rightclick context menu on Google maps was broken, Google changed a few things, we adapted.
* Changed: calendar loads available days through ajax requests in a more concise way now.
* Changed: improved the calendar general aesthetics slightly with rounded corners and a more fitting size.
* Changed: when only a single seat is left, we don't publicize this any longer. Customer just sees a time slot or day is available for booking.

= 1.2 =
* Posted February 14, 2018
* Fall back in love with booking...
* Added: Small improvements to how we push updates. You can now reset your license.
* Fixed: Unexpected behavior when using round trip modes which was expecting a full date range of available days.
* Fixed: Corrected timeslots ordering lost because it depended on user db collation. Now performing explicit ordering.
* Fixed: Several issues relating to single day and time range mode. Now it works correctly.
* Fixed: Corrected appointments in the backend calendar view that spanned an extra day.
* Fixed: Corrected seats functionality when using time slots to deduct a seat. Previously nothing happened, a regression bug of sorts.
* Changed: when a booking is made, we now show invoice details along with a fresh booking form ready for another booking.

= 1.1 =
* Posted February 12, 2018
* The only way to be the best is to keep working like you got nothing...
* Added: WooCommerce support.
* Fixed: preserved services sort order in the services page (plugin backend) during an edit.
* Fixed: generating timeslots by weekday works correctly now. previously timeslots were doubled.
* Updated: The plugins icon logo in dashboard menu. Uses a font now and blends in with the rest of the WordPress icons.
* Updated: documentation to cover WooCommerce setup.