2019-xx-xx - 2.4.2
-------------------------------
- Fixed a problem with custom confirmation email.
- Fixed a problem with slot availability.
- Added plugin specific text to privacy policy page (only during creation a policy page).

2018-11-26 - 2.4.1
-------------------------------
- Fixed a problem with Service Provider shortcode param name.
- Fixed a problem with start hour for specific configurations.
- Fixed a problem with appointments intervals.
- Fixed a problem with time slots when an appointment has no provider in inline-edit.

2018-06-28 - 2.4.0
-------------------------------
- Added ability to show/hide columns on "Services" settings screen.
- Added ability to show/hide columns on "Service Provider" settings screen.
- Added asterisk to additional, required fields (pro only).
- Added columns "Paddings" and "Location" on "Service Providers" settings screen (pro only).
- Added columns "Paddings", "Location" and "Shared resources" on "Services" settings screen (pro only).
- Added locations on appointment form.
- Added SERVICE_LOCATION placeholder replaced by a service Location in email templates.
- Fixed time display format to selected in WordPress options.
- Improved "confirmation" checkbox on Service Provider Profile page.
- Improved Object Cache clear.

2018-06-12 - 2.3.2
-------------------------------
- Added an option to force load Appointment's scripts and styles.
- Added a limit for "Service Capacity" on a service add and edit screen to the number of defined workers.
- Fixed a problem with appointment hour when a worker was not selected.
- Fixed a problem with more than one Service Provider on schedule table, when first is already busy, but second is not.
- Fixed a problem with service description when Service is not selected.
- Fixed problems with capacity.
- Improved adding a new service provider, when is only one service it will be checked by default.
- Improved column "Price".
- Improved Service "Service Capacity" edit field.
- Excluded "removed" and "completed" statuses from is_busy() calculations.
- Added asterisk to GDPR checkbox label on appointment form.

2018-05-31 - 2.3.1
-------------------------------
- Fixed problem with adding workers if "Worker Locations" addon is active.

2018-05-24 - 2.3.0
-------------------------------
- Convert "Time base" on "Time Settings" to human readable. Props for David @ BBS.
- Fixed a problem with not available calendars on Service Provider profile.
- GDPR: Added ability to delete older appointments. You can set up how long presents appointments should be stored in the database.
- GDPR: Added ability to erase user personal data.
- GDPR: Added ability to export user personal data.
- GDPR: Added checkbox with the agreement to process personal data.
- GDPR: Added plugin information to default "Private Policy" page during auto-creation of this page.
- Improved few translation strings.
- Improved UX on "Payments" tab for MarketPress integration.
- Improved "Working Hours" and "Exceptions" tabs content on mobile devices.
- Refactored "Services" screen and use WP_List_Table class for the list.
- Refactored "Service Providers" screen and use WP_List_Table class for the list.

2018-05-21 - 2.2.8
-------------------------------
- Fixed a problem with an appointment create time, it showed "Unknown" for Time Formats: "g:i a" and "g:i A".
- Fixed a problem with an appointment date when we add an appointment on admin area.
- Fixed a problem with autoconfirmation free appointment.
- Fixed a problem with bottom bulk action on "Add-ons" tab.
- Fixed a problem with double cancellation emails.
- Fixed a problem with paddings on the weekly booking calendar.
- Improved the "app_my_appointments" shortcode and added a message when we have no appointments.
- Removed DateTime::createFromFormat() usage to be compatible with PHP 5.2
- Fixed a problem with visibility "Currency" option - it was visible only when we turn on "Payment required" field.
- Fixed incorrectly used `is_a()` function. Props for tw77.

2018-05-07 - 2.2.7
-------------------------------
- Added check for service name it can be empty.
- Changed default appointments sorting to "Appointment Date".
- Fixed an export problem for additional fields with HTML entities in a name.
- Fixed an export problem for the date range.
- Fixed an integration problem with MarketPress plugin.
- Fixed a problem with booking, when the site is on HTTP but admin force HTTPS usage.

2018-04-24 - 2.2.6
-------------------------------
- Added ability to delete "Service".
- Added ability to delete "Service Provider".
- Added asterisk to required fields label on appointment form.
- Fixed a problem with appointments details, the start hour of appointment is now depended on settings.
- Fixed a problem with Appointments settings on the BuddyPress profile.
- Fixed a problem with BuddyPress profile integration.
- Fixed a problem with double send reminders.
- Fixed a problem with the tutorial restart.
- Fixed a warning message for ob_end_flush() in an older version of PHP.
- Improved appointments calendars, now start on the day set in WordPress options.

2018-03-27 - 2.2.5
-------------------------------
- Added filter 'app-export-appointment-args' which allows changing export arguments eg. sorting field.
- Fixed incompatibilities with Divi Builder.
- Fixed missing sortings on the frontend.
- Fixed problems with changing the custom time for slots.
- Fixed problem with paddings.
- Fixed re-send confirmation emails.
- Improved Yes/No choice used on appointments configuration screen.

2018-01-29 - 2.2.4
-------------------------------
- Fixed a problem with the export of single appointment.
- Fixed a problem with no visible slots on Weekly Calendar view.
- Fixed a problem with viewing PayPal transaction.
- Fixed potential vulnerabilities in appointments list.
- Improved "Create an Appointment Page" UX.
- Improved default additional CSS to avoid interaction with default classes.
- Improved help tab, now we use WordPress built-in help tab.

2017-11-21 - 2.2.3
-------------------------------
- Fixed export additional appointment fields (only PRO version).
- Fixed problem with bower_components directory.
- Fixed problem with extra information displayed in the wrong column.
- Fixed problem with no visible slots on Monthly view.
- Fixed problem with too many emails.
- Fixed problem with worker shortcode.
- Fixed URL building for dismissing a message.
- Moved external sources into one parent directory.
- Prevent process if a user does not exist.
- Removed wp_enqueue_* functions from views.
- Updated Unslider to version 2.0.3.

2017-10-16 - 2.2.2.2
-------------------------------
- Fixed security issue (vulnerability) with appointments actions. Props for Rolf Allard van Hagen.

2017-10-05 - 2.2.2.1
-------------------------------
- Fixed missing JavaScript scripts.

2017-09-20 - 2.2.2
-------------------------------
- Allow Service Description Page featured imaged to be used as Product variation thumbnail (MarketPress integration).
- Fixed a problem with the abandoned orders in admin.
- Fixed issue with comma as thousand separators when using PayPal.
- Fixed problem with duplicated page description.
- Fixed security issue (vulnerability) with data stored on a browser. Thanks to Matt Barry @ Wordfence
- Fixed weekly calendar hours for a worker.

2017-09-01 - 2.2.1
-------------------------------
- Added new function: appointments_is_working().
- Added shortcode option in app_monthly_schedule to give user option to hide today's times and force a user to click on a date before showing times.
- Added sort CSV columns for appointments export.
- Added timetables helpers tests.
- Allow currency option to be visible even if payments are disabled.
- appointments_is_available_time was not always returning a value.
- Appointments don't get active after Stripe payment from MarketPress.
- Fixed appointments_is_worker_holiday parameters.
- Fixed auto reload of appointment status totals when status is changed.
- Fixed client cancellation not synced to Google Calendar.
- Fixed cron not being set for Google Calendar sync for service providers.
- Fixed for checking the available time of worker.
- Fixed required messages at a monthly calendar.
- Fixed required messages at a weekly calendar.
- Fixed require_service in app_monthly_schedule shortcode not showing dropdown.
- Fixed to check for allow overwork.
- Load GCal only when needed.
- Removed Appointments::is_available_time().
- Swap start/end if start > end in appointments_is_available_time.
- Try to avoid collateral effects due to Appointments class attributes.

2017-06-20 - 2.2.0
-------------------------------
- New: option to keep settings on uninstall
- Fix: Trim spaces in status attribute of app_my_appointments shortcode
- Fix: Scheduling calender not showing on appointment page
- Fix: Divi inegration for pagination with smooth scroll
- Fix: Upfront Editor breaks because of A+ calendar widget
- Fix: Set min service when no service selected and location has been set
- Fix: Datpicker was not localized in Exceptions screen
- Other minor fixes/improvements

2017-04-18 - 2.1.0.1
-------------------------------
- Fixed: Only load dashbaord class in premium version

2017-04-18 - 2.1
-------------------------------
- New: Cancel link is back
- New: Better alerts in bookings pages
- Enhance: Lots of performance improvements
- Enhance: JavaScript files are now compressed
- Enhance: Removed deprecated functions since 1.6
- Security: Fixed XSS vulnerability
- Fixed: Wrong provider when single-worker and provider_id set on url for wrong service_id
- Fixed: Shortcodes were not working when Hustle was activated
- Fixed: require_provider attribute in monthly calendar was not working
- Fixed: Some datepickers were not respecting start of the week
- Fixed: Weekly calendar was not properly calculating capacities.
- Fixed: Users could not confirm appointments from BuddyPress profile page
- Fixed: Google Calendar settings were reset when a worker cancels an appointment
- Fixed: Weekly calendar was showing 1970 as next week in some cases
- Fixed: Unavailable times are showing as "busy" instead of "Not possible"
- Fixed: Firefox was preventing new tab for Google Calendar button
- Fixed: JavaScript error when using an Upfront theme
- Fixed: Correct provider is not selected with autorefresh attribute in shortcodes.
- Fixed: Google Calendar sync fixes
- Fixed: All services display largest time slot when service duration addon was activated
- Fixed: MarketPress integration fixes
- Some other minor fixes

2017-03-10 - 2.0.5
-------------------------------
- Fix: app_monthly_schedule not showing properly working hours when a provider is set as parameter
- Fix: Wrong working hour on Saturdays when A+ is just activated
- Fix: GCal sync issues when providers have selected a calendar
- Some other minor fixes

2017-03-01 - 2.0.4
-------------------------------
- Fix: GCal sync was overriding the appointments service
- Fix: Appointments Shortcode orderby attribute not working
- Fix: Events not removed from Provider's GCal, when Allow Service Providers for Google Calendar API Integration selected
- Fix: TinyMCE shortcodes UI: Pagination date was a checkbox instead of a text box
- Fix: No error message was displayed when service/workers limit was reached in free version

2017-02-13 - 2.0.3
-------------------------------
- Fix: Service was not properly to a worker set when an appointment was imported from GCal
- Fix: Break hours wrong due to a cache collission
- Fix: widgets deprecated notice
- Fix: warnings when generating timetables
- Fix: Widget shows all dates busy
- Fix: Wrong provider when no one is selected in appointments page
- Removed CANCEL placeholder from notifications template


2017-02-06 - 2.0.2
-------------------------------
- Fixed: Monthly calendar was displaying as available worker holidays
- Fixed: Working hours in user profile was not properly saved, giving warnings in front
- Fixed: Appointment worker was not properly set on front end

2017-01-25 - 2.0.1
-------------------------------
- New: Filter for weekly schedule headers
- Fixed: When week started in Sunday, monthly calendar was wrongly displayed
- Fixed: All monthly calendar slots appeared as busy in some cases
- Fixed: Warning when updating an appointment and status was not changed
- Fixed: A post could not be assigned to a Service when Services Description addon was activated
- Fixed: Services were not saved when some of the addons were activated
- Fixed: Warning when getting working hours
- Fixed: Fatal error in Tetris addon
- Fixed: Locations selector was not displayed when Paddings Add-on was active
- Enhance: Better cookies management
- Enhance: Workers/Services admin screen UX

2017-01-04 - 2.0
-------------------------------
- Fixed: Stripe does not set appointments to confirmed after payment received
- Fixed: Columns offset from the table head when exported to csv
- Fixed: Sometimes Google Calendar event status was not updated
- Fixed: Nonce error when saving Appointments Settings with BuddyPress activated
- Fixed: Additional fields were hidden in settings menu if there were no additional fields set.
- Fixed: Working hour exceptions not applying in very rare cases
- Fixed: Email headers when blogname included some HTML in it.
- Fixed Shared Resources Addon: Shared resources were not working properly in some cases
- Fixed: Notification emails were not being sent to admin/service provider
- Fixed: When Saturday was set to start of the week, weekly calendar was starting on Sunday
- Fixed MarketPress integration: Appointment showing even if it's free
- Fixed: Timeslot available when providers aren't available and "No preference" provider option is selected
- New: Added new Shortcodes UI in WP Editor
- New: new hooks for  abetter extensibility
- Enhance: Performance improvements
- Enhance: Better dates localization
- Enhance: Some styles fixes and improvements in settings menu
- Enhance: Improvements in dates and times calculations
- Enhance: Paddings options have been moved to general options
- Removed: Built in cache feature. A+ now uses WordPress Cache API
- Removed: Cancel link from emails due to possible exploit
- Removed: AJAX Shortcode addon
- Removed: Removed shortcodes submenu
- Some other minor fixes.

2016-09-13 - 1.9.4
-------------------------------
- Fix: Working hours were saved with wrong time format

2016-08-30 - 1.9.3
-------------------------------
- Fix: Error when MarketPress is installed

2016-08-29 - 1.9.2
-------------------------------
- New: GCal setting: Overwrite Google Calendar Title and Description
- Fix: Service Providers excerpt pulling post content
- Fix: Editing booked appointment hides the one currently opened
- Fix: Location data missing in Confirmation Table
- Fix: Sorting and ordering appointments in app_my_appointments shortcode
- Fix: Responsive issues in Appointments list
- Fix: [MarketPress] Remove an Appointment from shopping cart when appointment status changes
- Fix: Pending appointments changing to completed when they expires

2016-06-22 - 1.9.1
-------------------------------
- Fix: Google Calendar appointments were remove instead of been set to completed status when time passed by
- Fix: Improvements on reminder notifications
- Fix: app_my_appointments shortcode does not filter by status
- Enhance: Added new hooks before a GCal event is updated/inserted/imported

2016-05-24 - 1.9
-------------------------------
- Fix: Note on site gets overridden by GCal sync
- Fix: removed var_dump code added by mistake that was preventing to delete users that are not workers providers
- Fix: Undefined error when attempting to login with Twitter, FB or Google
- Fix: If Auto confirm is set to yes, confirmation emails are not sent
- Fix: If custom field is added and client doesn't enter anything the email will send additional field macro instead.
- Fix: Confirmation notification email to workers contains cancelled appointment text
- Fix: Confirmation notification email to users did not parse location
- Enhance: GCal API improvements to avoid conflicts with other plugins
- Enhance: Added subsections to Settings page
- Enhance: Better addons screen
- Enhance: Added Service Provider column in users list
- Enhance: Moved "Records per page" setting to screen option in Appointments list screen
- Enhance: Better Addons Loader that wastes less resources from server
- Enhance: New filters on GCal API to customize the way an event is imported/synced
- Other minor fixes and improvements

2016-04-28 - 1.8.2
-------------------------------
- Fix: Cannot edit notes on appointments
- Fix: Google Calendar is not sending appointment location properly
- Fix: notification not sent when an appointment is manually removed
- Fix: If custom field is added and client doesn't enter anything the email will send field placeholder instead.
- Fix: Appointments sending cancelled email instead of confirmation depending on settings combination
- Fix: Locations in confirmation email not being parsed properly
- Fix: Typo in default email reminder template
- Fix: Emails were not being logged
- Some othe minor improvements

2016-04-21 - 1.8.1
-------------------------------
- Fixed: Google Calendar time query was not propery parsed
- Fixed: Some notifications were sent even if they were disabled in settings

2016-04-21 - 1.8
-------------------------------
- Enhance: Better UX for Appointments admin page
- Enhance: Better notification system, now more extensible
- Fix: GCal import was setting services and service providers back to default
- Fix: Confirmation emails were always being sent even if option was unchecked
- Fix: Javascript error when adding additional fields
- Fix: Addtional fields being processed after an appointment is already updated was causing to send confirmation emails twice
- Fix: Locations in confirmation email not parsed
- Fix: Appointments set to removed status when it was completed in some cases
- Fix: Some strings textdomains

2016-04-11 - 1.7.2.2
-------------------------------
- Fix: Workers were unable to save their profile if GCall Access Code was empty
- Fix: Additional Fields - Mandatory text field was not processed

2016-04-06 - 1.7.2.1
-------------------------------
- Fix: Additional fields addon not saving fields
- Fix: Additional fields addon not showing up fields in admin
- Fix: Double check for Google autoloader to prevent other plugins conflicts
- Fix: When Service Locations Addon was active, GCal events were duplicated

2016-03-31 - 1.7.2
-------------------------------
- Fix: Appointments dates were set to 12AM when importing manually
- Fix: When no cancel Appointment page is set, the URL was malformed
- Fix fatal error when saving a BuddyPress profile
- Fix warning in user profile
- Fix: Plugin was sending too many reminders to workers
- Fix: In some cases, Appointments were not inserted if gcal_ID was an empty string
- Fix: Appointments list are reversed ordered by default
- Fix: Appointments GCal syncing was updating custom inserted data in Google Calendar
- Fix: If an Appointment is set to completed or penmding do not delete it from Google Calendar
- Fix: Typo in function name was preventing posts content to render if some of the A+ Settings were checked
- Fix: Appointments were not properly sorted on admin list
- Fix: JS Conflicts in Profile page
- Enhance: Improved upgrader class
- Other minor fixes and improvements


2016-03-16 - 1.7.1
-------------------------------
- Fix: app_services shortcode: order_by attribute doesn't seem to take any effect
- Fix: Custom checkbox field shows as a text field on backend
- Fix: Google Calendar API was not deleting appointments that were deleted from GCal
- Fix: Updating schedule in user profiles not working when the user editing was not the same than the edited one
- Fix: Search client feature not returning any results
- Enhance: Improved Appointments screen UX
- New: Added new hooks in My APpointments list
- New: Appointments meta table
- New: Added get/delete/update appointments meta functions

2016-03-11 - 1.7
-------------------------------
- Fix: Plugin was redirecting to Thank You Page even if the appointment reservation failed
- Fix: Parse error:  T_PAAMAYIM_NEKUDOTAYIM
- Fix: app_services shortcode not selecting the default service
- Fix: app_my_appointments shortcode colspan issue
- Fix: When making an Appointment, emails with a blank space at the end were not validated
- Fix: Location shown in select box keeps defaulting to first option
- Fix: Conflict with Google Analytics Dashboard for WP 
- Fix: fatal error when GCal cannot delete an appointment
- Fix: Fixed warning in monthly calendar widget
- More case insensitive variable fixes for HipHop systmes
- Other minor fixes
- Enhancement: Google Calendar API Integration remade from scratch
- Enhancement: Some little admin styles improvements.
- Enhancement: Some improvements in appointments functions (insert, update and get) to allow more and better arguments
- New: appointments_get_service_capacity() function
- New: appointments_is_busy() function
- New: appointments_get_month_appointments() function
- New filter: appointments_insert_appointment_args
- Some code refactoring

2016-02-12 - 1.6
-------------------------------
- New: New setting to redirect to a Thank You page after appointment confirmation
- New: appointments_worker_notification_sent action
- Fixed: Add Google Calendar Button dates
- Fixed: Error when editing a profile in BuddyPress
- Fixed: Customer Notes field not showing up in confirmation form
- Fixed: FAQ questions were not correctly indexed in admin page
- Fixed: Appointments durations timetables calculations issue when Services had different durations
- Fixed: Headers already sent error when updating pages in some cases (AJAX Search Pro Plugin conflict)
- Fixed: When admin edit a user profile, admin appointments were displayed instead of the user's
- Fixed: case insensitive variables/constants for HipHop environments
- Enhance: Timetables regeneration takes less time now
- Enhancement: appointments_get_appointments() function allows now an array of arguments
- Enhancement: appointments_insert_appointment() allows now a timestamp date
- Enhancement: [app_worker_monthly_calendar] ordering by start ASC date by default
- Enhancement: Some other minor improvements
- Deprecated: Appointments::get_reserve_apps()
- Deprecated: Appointments::get_reserve_apps_by_service()
- Deprecated: Appointments::is_worker()
- Deprecated: Appointments::change_status()
- Deprecated: Appointments::get_service()
- Deprecated: Appointments::get_app()
- Deprecated: Appointments::get_services()
- Deprecated: Appointments::is_worker()
- Deprecated: Appointments::get_workers()
- Deprecated: Appointments::get_first_service_id()
- Deprecated: Appointments::get_statuses()
- Deprecated: Appointments::is_single_worker()
- Deprecated: Appointments::get_workers_by_service()
- Deprecated: Appointments::get_worker_name()
- Deprecated: app_change_status Action

2016-01-28 - 1.5.7
-------------------------------
- Fixed: Timetables cache issue when services had different durations
- Fixed: Some language domains
- Enhancement: Added some love to FAQ screen
- Enhancement: Improved some admin styles
- Deprecated: Deprecated some old functions

2016-01-18 - 1.5.6
-------------------------------
- Enhancement: Clearing cache properly when upgrading version
- Enhancement: Added capacity cache
- Enhancement: Added CSS classes in every time in timetables
- Enhancement: Appointments and Workers cache are now much faster when processing timetables
- Enhancement: Saving timetables cache at shutdown to avoid more queries
- Fixed Locations Add-on: Warnings in Locations screen
- Fixed Locations Add-on: Locations were not saved in Services Providers screen
- Fixed Paddings Add-on: Paddings were not being saved in Service Providers screen
- Fixed GCal bug: Timetables were not being updated when importing events
- Fixed minor performance issues when Durations add-on was active
- Fixed: Worker is not selected automatically by default and timetable displays wrong times in some rare cases
- Fixed: order by parameter not working when orderby = name in get_workers function

2016-01-13 - 1.5.5.1
-------------------------------
- Fixed: Week days were not translatable
- Fixed: Timetables were selecting wrong service in some cases

2016-01-11 - 1.5.5
-------------------------------
- Fixed: Exporting Appointments was throwing a fatal error
- Fixed: Loader GIF not showing on confirmation
- Fixed: GCal was not appearing on confirmation
- Fixed: error with MarketPress integration
- Fixed: Deprecated/Warnings in some parts of the code
- Fixed: Errors when processing Appointments by AJAX
- Fixed: Confirmation fields were not appearing in Confirmation Shortcode
- Fixed: Confirmation emails were not sent
- Fixed: Some cache issues
- Enhancement: Timetables code bottleneck
- Enhancement: Timetables are now  cached for 24h
- Enhancement: Services Shortcode markup and JS
- Enhancement: Reduced number of queries in monthly shortcode
- Enhancement: Many performance improvements
- Improved Confirmation Shortcode Javascript
- New: many new functions to interact with workers, appointments and services in an easier way
- New: Classes for workers, services and appointments with better error handlings
- New: Unit Tests


2015-11-25 - 1.5.4
-------------------------------
- Fixed: Appointments were not appearing in calendar due to cache system

2015-11-19 - 1.5.3
-------------------------------
- Fixed: some cache system issues
- Fixed: Timeshift with daylight savings issue.
- Fixed: warnings/notices

v1.5.2
- Fix work hours array filtering.
- Fix ampersand escapes in JS redirection URL filtering.
- Fix numeric requests overflowing the integer value.
- Fix selected service in filtered list.
- Fix macro expansion in worker reminder emails.
- Fix WP_Widget constructor calls.
- Add MarketPress 3.0 compatibility.
- Add extra parameters to scheduling hours filter hook signatures.

v1.5.1
- Fix underscore templating conflict issue on certain configurations.
- Add a bit more elaborate logging and exception handling.
- Fix Google configuration override API so traditional hook works.
- Fix paddings issue applied on appointments creation admin-side.
- Fix schema updates on network environments.
- Fix page reloads on login required in certain scenarios.

v1.5
- Deprecate the old Google API client library and update to v1.1.4.
- Fix style helpers conflict.
- Fix reapplied appointment ordering.
- Fix Twitter login popup initial redirect.
- Fix time format values for adding appointments back end.
- Fix type casting in price boolean checks.
- Fix logic error in client name resolution fallback.
- Add cancel link to worker reminder emails.

v1.4.7
- Expose removal notification message body for filtering and expand additional fields e-mail macros.
- Fix slashes escaping in user-added CSS.
- Fix HTML output in locations and pointer tutorial issues.
- Fix appointment period calculus to respect the overall settings in "show scheduled users" add-on.
- Add email and GCal export support for appointment location macro expansion.
- Fix the appointments table price column being an integer.
- Add zero-priced appointments auto-confirm flag as an option.
- Fix errors on installs with disabled Heartbeat API.
- Fix for race condition conflicts with appointment IDs.
- Fix for misleading supported type toggle.
- Fix for iOS ignoring focus offset.
- Fix for double date opening bug on Windows.

v1.4.6
- Fix for admin side javascript globals.
- Fix for global format reordering, and allowing for both local and global reordering.
- Added appointments GCal manual export option.

v1.4.5
- Fix for issues with searching appointments.
- Fix for markup filtering breaking the shortcode arguments.
- Fix for Service name being truncated if it contains a dollar sign (props Jose). 
- Fix for long-running GCal appointments display issue.
- Added automatic completion for additional fields (props Jose).
- Added worker and service expansion in schedule titles.
- Added Google+ login support.
- Added removal notification email.

v1.4.4
- Fix for editable fields toggling.
- Fix for relying on JS injection, using replacement instead.
- Fix for quoting and macro escaping issue.
- Fix for numeric GET parameters.
- Fix for currency symbol l10n issues.
- Fix for multiplied display of unique locations.
- Fix for profile cancellation GCal integration issue.
- Added worker montly calendar paging support.
- Added the Default Service add-on.
- Added the Pending Appointments count notification add-on.

v1.4.3.1
- Fix for date/time parsing problem with inital formatting.

v1.4.3
- Fix for emails on bulk status changes.
- Fix for filtering the worker names in the widget.
- Fix for date/time parsing problem with certain locales.
- Added reordering worker services by requested order.
- Added the registration URL to list of supported actions.

v1.4.2
- Fix for quotes escaping issue with injected javascript.
- Fix for permissions issue with bbpress/buddypress pages registration.
- Fix for colorpicker localized dependencies loading issue.
- Added "strict" shortcode argument to app_my_appointments shortcode.

v1.4.1
- Fix for confirmation emails sent on purchase via MarketPress integration.
- Fix for services with different durations not properly allocating free times.
- Fix for BuddyPress redirects.
- Fix for GCal synchronisation on non-immediate actions.
- Fix for GCal exception handling.
- Fix for page creation issue with concurrent settings change.
- Fix for Additional Fields add-on deletion when there's only one field.
- Fix for administrative permissions (props Ash).
- Added additional fields placeholders for GCal sync.
- Added the import-only GCal integration mode.
- Fixed overlaps in time selections.
- Added service paddings add-on.
- Added stackable break times option to durations add-on.
- Added shared resources add-on.
- Improved MarketPress integration for new appointments.
- Refactored install and uninstall routines.

v1.4
- Allowing for optional Google SDK dependencies loading.
- Lowering the case of exported column names to prevent Excel bug from triggering (http://support.microsoft.com/kb/215591)
- Fix for the "only one service and only one provider per time slot" condition
- Adding the explicit ordering to prevent race conditioning
- Normalizing the variation implementation on appointment confirmation.
- Preventing the autocompletion on working hours forms and dropping the meridiam designator.
- Moving locations saving action.
- Appointments within an enclosed timeframe will mark the timeframe as busy.
- Differentiating durations and boundaries logic in add-on.
- Allowing for toggling between exact (legacy) matching and overlap detection.
- Deprecating the userdata overwrites.
- Making the admin data overrides legacy and optional.
- Exposing a new flag for free auto-confirmation in paid environment.
- Fetching a list of already present appointments to prevent duplicates on GCal sync.
- Bugfix for email macro expansion.
- Keying weekdays by their translation names.
- Dropping the old reserved GCals if the DB version is under threshold.
- Added the product cart add-on.
- Added export scoping.
- Added user-supplied custom fields add-on.

v1.3.1
- Optional fix for Google SDK file caching paths and open_basedir clash.
- Fix for l10n issues and local js file paths loading.
- Fix for context roles default settings.
- Fix for GCal user columns trumping over all the new ones.
- Added duration calculus settings add-on.

v1.3
- Fix for service providers name display.
- Fix for sessions initialization issue.
- Fix for service interval render on front-end.
- Fix for anchorless page reloads.
- Added support for multiple break times.
- Introduced the add-on system.
- Added biography and description custom post type support.
- Added appointment locations support.
- Added services and workers locations support.
- Added Google Maps integration support.
- Added administrative permissions editing support.
- Added selective worker name display.
- Added the login services limitation add-on.
- Added worker calendar shortcode.
- Adding saner fallback for worker/service summary getting and GCal event description fallback.
- Calculating balance (price - deposit).
- Profiling and performance improvements.
- Refactoring the FAQ and shortcodes help pages.
- Refactoring all tutorial content to a separate file.
- Refactoring all the shortcodes to a new API.
- Adding contextual help base class and shortcodes help in contextual help dropdown.
- Introducing a switch to allow user domain population for BuddyPress (if present).
- Populating and caching status names.

V1.2.8:
- New: Users page custom column to display GCal method of service providers at a glance
- Enhancement: More sanitization and safety measures
- Enhancement: ADDRESS and CITY placeholders can be used in GCal location field
- Change: If there is a connection error with Google server for GCal, error message is logged now instead of throwing an exception
- Change: GCal button can now be disabled from either settings or from the my_appointments shortcode
- Change: Now accepting 20 minutes of token time difference while it was 30 seconds before
- Fix: Description template for GCal for service providers' own settings was not being used, but website template was being used
- Fix: Updating of GCal event when appointment belongs to a specific service provider and edited on the admin side
- Fix: Overwriting of Event Summary of Note field during GCal update

V1.2.7:
- New shortcode app_all_appointments to list all upcoming appointments
- Fixed CANCEL link in reminder message and related "Catchable fatal error" message
- Confirmation shortcode lacking warning message is now limited to pages those actually having schedule shortcodes
- New filters for emails
- Tested with WordPress V3.6 Beta 1, no incompatibilities found

V1.2.6:
- Client can be allowed to cancel his appointments using links in confirmation or reminder emails, my appointments table or using his profile page
- Schedules can be forced to start from a selected date using shortcode parameter "date"
- CITY placeholder can be used in emails
- A minor improvement of how ID's recorded to the log file
- Fixed a minor markup issue in monthly calendar when last day of the month is also last day of the week
- GCal exception errors are saved in log file if they are not possible to be displayed because headers were sent
- Session start errors after GCal submission are handled more gracefully
- New FAQ's added

V1.2.5.1;
- Fixed calendar widget not correctly showing completely booked days
- Notification message to service provider includes appointment date and time now

V1.2.5:
- New dismissable admin notice if confirmation shortcode is lacking on an appointment page
- In MarketPress integration, product button for appointments in product list page is changed as Choose Option
- Fixed a javascript issue when paypal shortcode is not used, although payment required is set as Yes
- Improvements in user profile settings for GCal API
- Prevented deleting of a service provider's imported GCal events when removing those of another one
- Improvements for translation of pagination texts
- Filters for reducing time base smaller than 10 minutes and appointment upper limit are now effective
- Selectable service durations are increased to 24 items, but limited to 24 hours

V1.2.4.1:
- Bulk status changes are applied to GCal
- For logged in users, email and user display names are pre populated in the confirmation form
- Fix for special characters (like &) in email headers
- Fix for more conflicts with Google+ plugin

V1.2.4:
- Prevented auto increment value in appointments table going too high after GCal imports
- Fix for BuddyPress working hours being reset issue when provider confirms his appointments using his navigation tab
- GCal API setting fields are no more shown in profile page of a non service provider member
- Private key files for service providers are correctly duplicated to uploads folder now
- Prevented conflict with Google+ plugin and other possible plugins using Google API by renaming $apiConfig variable
- Some UI improvements to display selected currency and clarify GCal usage. Also new FAQ's added
- During uninstall, all traces of GCal are removed from file system and database
- Fixed default settings not being loaded for new installations

V1.2.4.0:
- Fix for Export button not working on some areas
- Permission to use cents in price fields which was accidentally disabled in the previous update
- Fixed issues when GCal API test connection and manual imports are started from user profile page

V1.2.3.2:
- Empty spaces used in reminder times are deleted now
- New filter to define special prices for MarketPress integration
- Updated jquery datepick and fixed conflict with WooCommerce
- Fix for special characters in emails
- Reserved appointments (related to events imported from GCal) are no more editable as they are supposed to be
- Wrong non-numerical value settings in capacity, service and service provider prices are not allowed any more

V1.2.3:
- worker and service parameters added to services and providers shortcodes, respectively
- Appointments lower limit setting to block appointments from current time added
- More css classes added to time slots for further custom styling
- Services and service providers dropdowns are not displayed at all when there is nothing to be displayed
- Optimized queries to be used even for large number of active appointments (Tested with 1000 active+reserved appointments)
- Number of imported events for GCal sync increased to 500
- New hooks to modify services and providers shortcode items
- In multi site installation, records of a provider removed from a blog are correctly deleted now

v1.2.2:
- Bulk status changes of records on admin side are now possible
- New setting for appointment records per page
- Individual provider working hours and breaks are taken into account now instead of business working hours even when no provider is selected and there are more than one providers giving the same service
- GCal imports are now limited by appointment upper day limit setting, database query optimized, and nearest events imported first
- Private key files are now also saved in the uploads directory with an encrypted name to prevent overwriting with plugin updates
- Working hours can be selected with steps based on admin side time base
- Reserved appointments are also removed after their expiration
- Fixed javascript error in Firefox happening while browsing on the next months/weeks when a provider is selected
- New hooks added
- Added APP_GCAL_DISABLE constant to disable GCal API at wp-config.php for unexpected cases
- Database structure changed so that GCal ID can only be unique

V1.2.1:
- Google Calendar event description and summary can be set
- Recurring instances of GCal are also imported
- Added measures to prevent conflict with other plugins using Google API
- Fixed time zone issue in GCal
- Fixed time selection issue which happens while manually editing an appointment record

V1.2:
- Google Calendar API Integration (Beta) including synchronization added
- A safe date format is now being used while editing Appointment records
- Selected date is not reset now if service or service provider is changed in next weeks/months
- Added missing esc_js functions which may break javascript in translated versions

V1.1.9.1:
- Fixed issue about gcal class call

V1.1.9:
- Search, filter, sort functionality added to appointment records
- My appointments, services and service providers shortcodes can be sorted by database column names from admin side
- My appointments table can also be sorted dynamically from front end with limited date/time format support
- My appointments shortcode now outputs the table even if no appointments found
- Additional check if service and provider really exist for services and service providers shortcodes
- Added missing echo to the sample file
- Exceptional days are sorted while saving
- Prevented and fixed duplicate loading of footer scripts for unknown reasons
- jQuery multiselect is now being used for services provided selections on Service Providers tab
- css conflict with WPML plugin fixed
- Pages with hash (#) are now correctly refreshed
- Any Appointments+ shortcodes in bio and description pages are stripped for description=content case
- New FAQ's added
- New hooks added

V1.1.8:
- Database table collation settings are now correctly set even if database was not set correctly
- Service providers can confirm their appointments from their BuddyPress profiles
- Fixed a typo in example codes
- CLIENT_EMAIL placeholder is changed as EMAIL
- New hooks added
- Error message of Google+ Openid when curl is not installed and front end logins enabled is no more
- Around the clock case is now working for php 5.2 and older versions too
- Stripslashes added while saving email subject and content
- Translation base file is now presented as appointments.pot
- In Marketpress Integration, email field is auto filled if not already set

V1.1.7:
- Appointments around the clock case extended also for multiple providers case
- CLIENT_EMAIL placeholder can be used in emails
- New hooks added
- New advanced FAQ's added
- For additional time base, divisible by 10 or 15 rule removed
- New dismissable admin warning if no service provider is assigned to a service
- New admin warning if any service is not divisible by the time base
- New admin warning if duration of any service exceeds 24 hours
- Some wording corrections
- Now page refreshes after a confirmed appointment, even if GCal button is enabled
- New setting to open Google Calendar in the same window
- Selectable service durations increased to 10
- WordPress 3.5 compatibility checked, no problems found

V1.1.6:
- Appointments up to midnight and working hours exceeding the other day and thus around the clock appointments are now possible
- Handling of wp_mail function for confirmation was changed. Blind carbon copy (bcc) is not being used any more as it creates problems in some php installations
- Fixed incorrect order limit warning in MarketPress Integration
- Fixed 1970 issue when date format has a period
- More fields are translatable now

V1.1.5.1:
- Fixed the capacity issue of the below functionality that was introduced in V1.1.5

V1.1.5:
- While selecting service A with no preference of service provider, appointments made for service B are now taken into consideration for providers who can give both services
- In Monthly Calendar view, if all the time slots are busy, the day itself also becomes busy now
- ADDRESS placeholder can now be used in emails

V1.1.4:
- To prevent W3T breaking javascript codes, DONOTMINIFY constant is added
- Prevented redundant loading of style lines to the header due to the Monthly Calendar widget
- Add !important to the legend color style settings
- Confirmation message is not sent if appointment is removed even if send confirmation checkbox is checked
- Emails are now correctly sent to admin instead of network admin
- Transaction date/time corrected

V1.1.3:
- Service providers can now be allowed to confirm appointments from their profile pages
- Auto confirm option added
- In no preference case, appointments of namely selected providers were not reducing available workforce. Corrected
- In case service duration is greater than base time, GCal ending time was calculated incorrectly. Fixed
- New hooks added
- Admin UI rearranged

V1.1.2:
- Users who are not service providers can save their user data too
- PHONE and NOTE placeholders can also be used in emails now
- After selecting a non-default service and browsing forward or back, Show button was not refreshing the page. Fixed
- New hooks added

V1.1.1:
- Autorefresh parameter for service and service provider dropdowns added
- If there is only one provider for the service, his schedule is displayed as default now
- Logged in users' data are now stored in user meta and editable by himself
- Admin (or authorized users) can now display logged in user data on user's profile page
- Admin can now edit logged in user data using Appointments records
- In no preference case, break hours of individual providers were not being taken into account. Corrected
- If no service providers defined, slot was incorrectly available although there is an appointment for another service on that time slot. Corrected

V1.1.0:
- For single provider websites, appointments of providers are now shown in admin's account
- If selected, service provider is also displayed in confirmation area now
- New hooks added
- While changing break hour tables, WP database cache was not being flushed. Fixed
- In my appointments list, appointments were not displayed unless there was a saved cookie. Fixed
- Logged in users were incorrectly regarded as service provider. Fixed
- Service names in Transaction pages are now correctly displayed

V1.0.9:
- Appointment export function added
- Admin side UI improved

V1.0.8:
- Fixed sending of confirmation email if status manually changed
- Fixed 1970 issues in manual edit and creation due to comma in date format when php version is 5.2 or older
- Service prices are now automatically selected in manual appointment creation and edit
- PRICE and DEPOSIT placeholders can now be used in emails

V1.0.7:
- Compatibility with IE8/IE7
- Javascript issue when selecting service after service provider fixed
- Datepick localization issue fixed
- When a description page was not available, current page content was being incorrectly displayed. Corrected
- Legend area css corrected

V1.0.6.2:
- IE9 styling issue fixed
- Combination of different working hours on different days of the week issue fixed
- If end of day does not end with a plain hour, the last time slot was incorrectly selectable. This issue fixed
- If an appointment is forced externally using a hook, now confirmation email is sent automatically
- First exceptional day not being taken into account issue fixed

V1.0.6.1
- Database update note fixed
- Display of bio page content fixed
- If there is only one service provider, his bio info is shown as default
- If datepick localization file month names do not match those of WordPress, datepick uses English now

V1.0.6:
- Corrections in wording
- Anchor app_schedule attribute changed from name to id for HTML5 compliance
- Fixed the issue in case of display name having single quotation mark
- Service provider dropdown is not displayed any more if there are no providers
- Corrections in localizations where month is formatted in full or short textual representation
- Local language and date format support for datepick
- Extra minutes are now taken into account for start and end times of the working day
- Combination of providers having different working schedules are now correctly evaluated
- Dummy field added to the database
- Now dummy service providers (imaginary users attached to a user, e.g to admin) are supported
- Fixed redirection to wp_login_url in case of front end logins disabled

V1.0.5:
- New admin notice in case of duplicate shortcodes on the same page
- Date format in emails fixed
- Complication in European and US date formats during manual edit fixed
- New hooks added
- Better readability for FAQ

V1.0.4.3:
- Fix for mixed carts (Appointments + normal products) in MarketPress integration

V1.0.4.2:
- Support for non standard date formats to be used in datepick
- Added new filters

V1.0.4.1:
- ajax_url fixed

V1.0.4:
- Datepicker js warning fixed
- Adding new service after deleting all services issue fixed
- Now database cache is correctly flushed after editing a service or provider
- Records for worker are also deleted when user is deleted. His existing appointments are assigned to general staff.
- Javascript error tracking function disabled until a future release
- Support for older php versions (<5.3): January 1970 issues in monthly schedules fixed
- Cache usage default setting is set to No

V1.0.3.1:
- Just some typo corrections

V1.0.3:
- Custom time formats are now supported
- Javascript error tracking function added
- Service and providers names in emails are fixed

V1.0.2:
- New hooks added
- Creating tables for sub blogs in multisite mode fixed
- Conflict between caching and wpautop resolved
- New setting: Send notification email in case a new appointment is taken that requires confirmation
- New settings: Additional base time and admin base time which let better customizations

V1.0.1:
- Integration with MarketPress
- php warning after save post is fixed
- Styling corrected for Monthly Calendar widget
- Service provider display name corrected
- Google Calendar location can now be set from settings

V1.0.0:
- Initial release


664693-1553048519-au