How to Fix a BookingPress Website Crash and Calendar Sync Issue After an Update

A BookingPress website crash after a plugin update can immediately prevent customers from scheduling appointments and cause lost revenue. In some cases, the entire WordPress website displays a critical error. In others, the website remains online, but the booking form stops loading, available times disappear, or Google Calendar synchronization fails.

A recent BookingPress user reported that an update crashed a business website and left customers unable to book because of a calendar synchronization problem. However, without the actual PHP fatal-error message or integration log, it is not possible to identify one universal defective file or code line.

The reliable solution is to recover the website first, identify the exact error, verify that all BookingPress components use compatible versions, and then reconnect and test the calendar integration.

This guide covers the complete process.

What Changed in the Recent BookingPress Update?

BookingPress Premium version 6.0 was released on July 16, 2026. Its official changelog lists Vue.js 3 compatibility, backend and frontend performance improvements, and additional bug fixes. The BookingPress Google Calendar add-on was also updated to version 3.5 on July 16, 2026.

Because the main plugin and calendar add-on changed on the same date, one important troubleshooting step is to confirm that the following components were updated together:

  • BookingPress Lite
  • BookingPress Pro
  • Google Calendar Integration add-on
  • Other active BookingPress add-ons

This does not prove that version 6.0 contains a universal crash bug. It means that a version mismatch, incomplete update, old cached JavaScript, or conflict with another plugin should be checked before making permanent changes.

Symptoms of a BookingPress Update Problem

The issue may appear in several ways:

  • WordPress displays “There has been a critical error on this website.”
  • The website returns an HTTP 500 error.
  • The WordPress dashboard becomes inaccessible.
  • The booking form remains stuck on its loading animation.
  • Services appear, but dates or time slots do not load.
  • All appointment times appear unavailable.
  • Google Calendar events are no longer created.
  • Existing Google Calendar events do not block appointment slots.
  • Staff members become disconnected from Google Calendar.
  • The booking page works for administrators but not regular visitors.
  • The problem disappears when BookingPress is disabled.
  • Restoring the previous plugin version makes the website work again.

A crash and a calendar synchronization failure may have the same cause, but they may also be two separate issues. Diagnose them independently.

Step 1: Protect the Current Website Before Making Changes

Before changing plugin files or database settings, create a complete backup containing:

  • WordPress files
  • The WordPress database
  • Uploaded files
  • BookingPress plugin files
  • BookingPress add-ons
  • The current wp-config.php file

When the hosting provider supports server snapshots, create a snapshot as well.

Do not uninstall BookingPress or manually delete its database tables. Disabling a plugin for troubleshooting is different from running its uninstall process.

If the website is receiving appointments, also export or record the most recent appointment information before restoring an older database backup. A database rollback could remove appointments created after that backup was generated.

Step 2: Restore Access to the Website

When the BookingPress update has crashed the entire website, disable the affected plugin without relying on the WordPress dashboard.

Option A: Use WordPress Recovery Mode

Check the website administrator’s email inbox for a WordPress Recovery Mode message.

Open the recovery link and log in. WordPress may allow you to deactivate the plugin that triggered the fatal error.

After deactivation, confirm that both the public website and WordPress dashboard load again.

Option B: Disable BookingPress Through FTP or the Hosting File Manager

Open:

/wp-content/plugins/

BookingPress Pro’s documented plugin directory is:

/bookingpress-appointment-booking-pro/

BookingPress Pro also depends on the Lite version of BookingPress.

Temporarily rename the Pro directory:

bookingpress-appointment-booking-pro-disabled

Reload the website.

When the error continues, inspect the plugin directory for:

  • BookingPress Lite
  • Google Calendar Integration
  • Other BookingPress add-ons

Rename only one directory at a time so you can identify which component causes the crash.

Do not delete the directories yet.

Option C: Disable BookingPress Using WP-CLI

When SSH and WP-CLI are available, first list every BookingPress component:

wp plugin list | grep -i bookingpress

Then deactivate the suspected plugin using its exact slug:

wp plugin deactivate bookingpress-appointment-booking-pro

If required, deactivate the Lite plugin or a specific add-on using the slug returned by the first command.

After the website loads, leave the failed component disabled until the fatal error has been identified.

Step 3: Find the Actual Fatal Error

A plugin review saying that a website crashed is not enough to determine the technical cause. The fatal-error log normally identifies:

  • The affected plugin
  • The PHP file
  • The line number
  • The error type
  • The function or class involved
  • The execution stack

Enable the WordPress Debug Log

Open wp-config.php and find:

define( 'WP_DEBUG', false );

Replace or update the debugging configuration with:

define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );

@ini_set( 'display_errors', 0 );

Do not add duplicate definitions when these constants already exist.

Reactivate the suspected plugin on a staging website and reproduce the problem. Then inspect:

/wp-content/debug.log

Search for:

PHP Fatal error
Uncaught Error
Uncaught TypeError
Allowed memory size exhausted
bookingpress
calendar
oauth

After troubleshooting, turn debugging off again:

define( 'WP_DEBUG', false );
define( 'WP_DEBUG_LOG', false );
define( 'WP_DEBUG_DISPLAY', false );

Check the Hosting Error Log

The hosting control panel may provide more complete PHP logs than WordPress.

Check for:

  • PHP fatal errors
  • Database errors
  • File-not-found errors
  • Permission errors
  • Memory exhaustion
  • Maximum execution-time errors

Record the exact date and time when the update or crash occurred. This makes the relevant log entry easier to locate.

Enable BookingPress Debug Logs

BookingPress provides its own debug logging system under:

BookingPress > Settings > Debug Log

The official documentation says these logs can record appointment activity, API communication, synchronization activity, payment errors, notifications, and integration problems. Logs can also be viewed or downloaded for support.

Enable the relevant integration log, reproduce the calendar error, and then download the log before clearing it.

Step 4: Roll Back to the Last Stable Version

When the business cannot accept appointments, restoring a known working version is normally safer than leaving the broken update active while waiting for a patch.

Use one of these rollback methods:

  1. Restore the plugin files from the latest working backup.
  2. Restore the hosting snapshot created before the update.
  3. Install a previous official plugin ZIP saved from an earlier update.
  4. Download an available official version from your BookingPress customer account.

Do not download BookingPress Pro or its add-ons from unofficial “nulled plugin” websites.

Important Database Warning

Try to roll back only the plugin files first.

Restoring the entire database can remove:

  • New appointments
  • New customers
  • Payment records
  • Changed schedules
  • Updated services
  • Staff availability changes

Only restore the database when the update altered it incompatibly and a file-only rollback does not work.

If a database rollback is necessary, first export appointments and compare the backup date with the most recent booking date.

Step 5: Update BookingPress Core and Add-ons as One Set

A common source of post-update errors is updating the main plugin while leaving an integration add-on on an older version.

Check the versions of:

BookingPress Lite
BookingPress Pro
Google Calendar Integration
Service Packages
Invoices
Gift Cards
Payment gateways
Multi-Language
Any other BookingPress add-ons

The recent BookingPress core release added Vue.js 3 compatibility, while the Google Calendar add-on received an update on the same day. It is therefore reasonable to treat mismatched component versions as a likely compatibility area to investigate, although the error log must confirm the actual cause.

Use this process:

  1. Clone the live site to staging.
  2. Back up the staging database.
  3. Update BookingPress Lite.
  4. Update BookingPress Pro.
  5. Update every active BookingPress add-on.
  6. Clear all caches.
  7. Test the booking form.
  8. Test calendar synchronization.
  9. Test payments.
  10. Apply the update to production only after all tests pass.

Do not test a major booking-system update for the first time on a live business website.

Step 6: Clear Caches and Disable JavaScript Optimization

BookingPress uses JavaScript extensively to render its booking interface. Old combined or delayed JavaScript can remain cached after an update.

Clear:

  • WordPress page cache
  • Object cache
  • Redis or Memcached
  • Hosting cache
  • CDN cache
  • Cloudflare cache
  • Browser cache
  • Elementor-generated CSS and files, when Elementor is used

Then test in an incognito window.

BookingPress support has previously recommended clearing the site cache and temporarily disabling options such as Combine JavaScript and Minify HTML when the booking form remains stuck loading.

Temporarily disable:

  • Combine JavaScript
  • Defer JavaScript
  • Delay JavaScript execution
  • Remove unused JavaScript
  • Minify JavaScript
  • Minify HTML
  • Cloudflare Rocket Loader

When that fixes the form, exclude the booking page from optimization or exclude the BookingPress scripts using the caching plugin’s documented exclusion feature.

Do not guess script filenames. Use the browser console and network panel to identify which BookingPress file is being blocked, delayed, or loaded in the wrong order.

Step 7: Perform a Plugin and Theme Conflict Test

Run this test on staging, not on the live site.

  1. Activate a default WordPress theme.
  2. Disable every plugin except BookingPress Lite and Pro.
  3. Confirm that the booking form loads.
  4. Activate the Google Calendar add-on.
  5. Reconnect one test staff member.
  6. Test a booking.
  7. Reactivate other plugins one at a time.
  8. Reload and test the booking form after each activation.

Pay particular attention to:

  • Caching and performance plugins
  • Translation plugins
  • Security plugins
  • JavaScript optimization tools
  • Other calendar plugins
  • Membership plugins
  • WooCommerce extensions
  • Page-builder add-ons
  • Custom code snippets

When activating one plugin causes the error to return, inspect the console, PHP log, and network requests before concluding which developer must fix the conflict.

Step 8: Check PHP, Memory, and Server Compatibility

Inspect the fatal-error log before changing the PHP version.

Common server-side messages include:

Call to undefined function
Class not found
Uncaught TypeError
Allowed memory size exhausted
Maximum execution time exceeded
Failed opening required

When the Error Mentions Memory

Ask the hosting provider to review:

  • PHP memory limit
  • WordPress memory usage
  • Worker limits
  • PHP-FPM logs
  • Resource exhaustion during the update

Do not increase memory blindly when the error is actually caused by an infinite loop or incompatible code.

When the Error Mentions a Missing File

The plugin update may have been incomplete.

Download a fresh official ZIP and reinstall the same version manually. BookingPress officially supports installation through the WordPress uploader or through FTP.

When the Error Mentions an Undefined Class or Method

This often indicates one of the following:

  • Core and add-on versions do not match.
  • One plugin file is outdated.
  • An opcode cache is serving old PHP code.
  • An update did not completely replace the previous files.
  • Another plugin defines or alters a conflicting dependency.

Reinstall the full matching plugin set and ask the host to reset PHP or clear opcode cache when appropriate.

How to Fix the BookingPress Google Calendar Sync Issue

After the website is stable, troubleshoot calendar synchronization separately.

The official BookingPress workflow is:

  • A new appointment creates an event in the assigned staff member’s Google Calendar.
  • Busy Google Calendar times are treated as unavailable in BookingPress.
  • Calendar integration is configured under BookingPress settings and connected for each staff member.

Step 1: Confirm the Google Calendar Add-on Version

Check:

Plugins > Installed Plugins

Verify that the Google Calendar add-on is active and compatible with the installed BookingPress core version.

As of July 16, 2026, BookingPress lists the Google Calendar add-on as version 3.5.

Do not update only the add-on or only the core plugin on production without testing both together.

Step 2: Confirm the Google Calendar API Is Enabled

Open the Google Cloud project used for BookingPress and verify:

Google Calendar API: Enabled

Then go to:

BookingPress > Settings > Integrations > Google Calendar

Confirm that the correct Client ID and Client Secret are saved. BookingPress documents these as required integration settings.

Step 3: Verify the OAuth Redirect URI

In Google Cloud Console, open:

APIs & Services > Credentials > OAuth 2.0 Client IDs

Open the web client used by BookingPress.

Compare the authorized redirect URI with the URI displayed in the BookingPress integration settings. It must match exactly, including:

  • https://
  • Domain
  • www or non-www
  • Path
  • Trailing slash, when present

A staging domain requires its own authorized redirect URI.

Do not use a production OAuth configuration on staging unless both domains are properly authorized.

Step 4: Check the OAuth Consent Screen and Scopes

BookingPress recommends using an External Google project type for app verification and identifies calendar-list and calendar-event permissions as required scopes.

Check:

APIs & Services > OAuth consent screen

Verify:

  • User type is External where required.
  • The app is in the correct publishing status.
  • The staff member’s Google account is allowed as a test user when the app remains in testing.
  • The required calendar scopes are included.
  • The app authorization has not been revoked.

When the refresh token frequently expires, review the consent-screen publishing status and reconnect the account.

Step 5: Reconnect Each Staff Member

Go to:

BookingPress > Staff Members

Edit the affected staff member and open the integration section.

Then:

  1. Disable Google Calendar integration for that staff member.
  2. Save the staff profile.
  3. Reopen the profile.
  4. Enable Google Calendar integration.
  5. Click Sign in with Google.
  6. Approve the required permissions.
  7. Select the correct Google Calendar.
  8. Refresh the calendar list if necessary.
  9. Save the staff member again.

BookingPress requires staff-level calendar selection for appointment events and availability synchronization.

Repeat this process for each staff member whose connection is broken.

Step 6: Match WordPress and Google Calendar Time Zones

Go to:

WordPress > Settings > General > Timezone

Use a named location such as:

Europe/Berlin
America/New_York
Asia/Dhaka

Then open Google Calendar settings and select the same time zone.

BookingPress specifically recommends matching the WordPress and Google Calendar time zones when appointment times differ.

Avoid using a manual UTC offset when the business observes daylight-saving time.

Step 7: Check Unexpected Busy Events

BookingPress uses busy Google Calendar events to block website availability.

Check the connected staff calendar for:

  • All-day events
  • Recurring events
  • Imported holiday calendars
  • Events marked Busy instead of Free
  • Events in the wrong time zone
  • Duplicate calendar subscriptions
  • Long events accidentally spanning multiple days
  • Events copied from another calendar

Temporarily change one suspicious event from Busy to Free, then reload the booking page.

When the missing time slot appears, the calendar event, not the BookingPress working-hours configuration, was blocking it.

Step 8: Understand the Synchronization Direction

BookingPress documentation states that cancellations, deletions, and rescheduling should be performed inside BookingPress. Changes made directly to the corresponding appointment in Google Calendar do not necessarily update the BookingPress appointment, while changes made in BookingPress are sent to Google Calendar.

Therefore:

  • Create appointments through BookingPress.
  • Reschedule appointments through BookingPress.
  • Cancel appointments through BookingPress.
  • Do not delete the Google event and expect the BookingPress appointment to disappear.
  • Use separate busy events in Google Calendar only when blocking availability.

This distinction prevents mismatched records and accidental double bookings.

When the Booking Form Loads but Shows No Available Times

When the website does not crash but customers cannot select a time, check these areas:

Staff Assignment

Confirm that the service is assigned to at least one active staff member.

Staff Working Hours

Verify that the staff member has working hours on the selected day.

Service Duration and Buffer Time

A service may not fit inside the remaining working period after its duration and buffer time are added.

Holidays and Special Days

Check:

BookingPress > Settings > Holidays
BookingPress > Staff Members > Special Days

A holiday or special-day rule may override normal working hours.

Minimum Booking Notice

A large minimum-notice period can remove all near-term appointments.

Service Capacity

Check whether the selected time has already reached its configured capacity.

Google Calendar Busy Events

Inspect the connected staff calendar for all-day or recurring busy events.

Wrong Calendar Selection

The staff account may be connected correctly but using a different calendar from the one you inspected.

Time-Zone Difference

An event may appear at the correct visual time in Google but be interpreted differently by WordPress because of mismatched time zones.

Cached Availability

Clear the site cache, object cache, CDN, and browser cache before retesting.

Temporary Emergency Workaround

When Google Calendar synchronization is preventing every online booking, the integration can be temporarily disconnected while the underlying issue is investigated.

Only do this when the business can manually prevent double bookings.

A safer temporary process is:

  1. Disconnect Google Calendar from the affected staff member.
  2. Review the staff member’s external calendar manually.
  3. Block unavailable periods directly in BookingPress.
  4. Add a larger scheduling buffer if needed.
  5. Test the booking form.
  6. Reconnect Google Calendar only after synchronization tests pass.

Do not disconnect synchronization and leave all external calendar events unaccounted for. That can allow customers to book times when the staff member is already busy.

Complete Testing Checklist

After applying the fix, test the entire customer journey.

Booking Form Test

  • Open the booking page in an incognito window.
  • Select a service.
  • Select a staff member.
  • Select a date.
  • Confirm that valid times appear.
  • Complete the customer-details step.
  • Complete a test payment when applicable.
  • Confirm that the success message appears.

BookingPress Test

  • Open BookingPress appointments.
  • Confirm that the test appointment exists.
  • Check its date, time, staff member, status, and payment status.
  • Confirm that email notifications were sent.

Google Calendar Test

  • Confirm that the event appears in the correct staff calendar.
  • Verify the start time and end time.
  • Check the event title and description.
  • Confirm that the event uses the correct time zone.

Availability Test

  • Create a separate Busy event in Google Calendar.
  • Reload the booking form.
  • Confirm that the overlapping slot becomes unavailable.

Rescheduling Test

  • Reschedule the test appointment through BookingPress.
  • Confirm that Google Calendar updates.

Cancellation Test

  • Cancel the appointment through BookingPress.
  • Confirm that the Google Calendar event is updated or removed according to the integration settings.

Do not consider the issue resolved after testing only the administrator dashboard.

What to Send BookingPress Support

Provide a complete diagnostic package instead of only reporting that the website crashed.

Include:

BookingPress Lite version:
BookingPress Pro version:
Google Calendar add-on version:
Other BookingPress add-ons:
WordPress version:
PHP version:
Database version:
Active theme:
Caching plugin:
Security plugin:
Website timezone:
Google Calendar timezone:

Also include:

  • The complete PHP fatal-error message
  • The relevant stack trace
  • BookingPress integration debug logs
  • Browser-console errors
  • Failed network requests
  • The exact time of the failed test
  • Whether the issue occurs on staging
  • Whether it occurs with only BookingPress active
  • Whether rollback restores the website
  • Whether disconnecting Google Calendar restores time slots

Never publish API secrets, OAuth client secrets, license keys, customer information, or complete server paths in a public support forum.

Should You Replace BookingPress?

A plugin migration may be reasonable when repeated failures make the booking system financially unreliable. However, moving booking platforms can involve:

  • Rebuilding services
  • Recreating staff schedules
  • Migrating customers
  • Migrating appointments
  • Reconnecting payment gateways
  • Rebuilding notifications
  • Reconfiguring calendar integration
  • Replacing customer-account pages
  • Testing multilingual content
  • Redirecting old booking URLs

Before migrating, collect the fatal error and determine whether the problem is:

  • A confirmed BookingPress defect
  • An outdated add-on
  • A caching conflict
  • A hosting limitation
  • An OAuth configuration problem
  • A theme or plugin conflict
  • An incomplete update

When the problem can be corrected reliably on staging, repairing the existing system may be faster than migrating. When updates repeatedly interrupt bookings despite controlled testing, maintaining a migration plan is sensible.

Frequently Asked Questions

Will disabling BookingPress delete appointments?

Deactivating a plugin normally does not run its full uninstall process. However, do not delete plugin data or restore an older database without a complete backup. Verify recent appointments before making database changes.

Can I roll back only BookingPress files?

Yes, a file-only rollback is generally the first option to test. It preserves newer database content. However, it may fail when the newer plugin version performed incompatible database changes.

Why are all BookingPress slots unavailable?

The usual areas to check are staff working hours, holidays, service assignment, capacity, buffer time, minimum booking notice, time zones, and Busy events in the connected Google Calendar.

Why did the booking form break after clearing the PHP error?

The PHP crash and frontend form problem may be separate. Clear all caches and temporarily disable JavaScript combining, delaying, deferring, and minification.

Can customers still book while Google Calendar is disconnected?

Yes, but the external calendar will no longer automatically block conflicting times. Only disconnect it when the business can manage availability manually and prevent double bookings.

Should BookingPress updates be automatic?

For a business-critical booking system, test major updates on staging before installing them on production. Automatic updates may be appropriate only when reliable backups, monitoring, and rollback procedures are already in place.

Final Recommendation

A BookingPress website crash after an update should be handled in this order:

  1. Back up the website.
  2. Disable the failing BookingPress component.
  3. Restore public access.
  4. capture the exact fatal error.
  5. Roll back to the last stable official version when necessary.
  6. Update BookingPress Lite, Pro, and add-ons as a compatible set on staging.
  7. Clear cache and JavaScript optimization.
  8. Reconnect Google Calendar for each staff member.
  9. Match WordPress and Google Calendar time zones.
  10. Test booking, synchronization, rescheduling, cancellation, and payment before updating production.

The fatal-error log is the key piece of evidence. Without it, rolling back may restore the website, but it does not explain why the crash occurred or prevent it from happening during the next update.


End-of-post service call to action

Add this after the article:

Still Having Problems With BookingPress?

Is your BookingPress form not loading, Google Calendar not syncing, or WordPress website displaying a critical error?

I can diagnose the plugin conflict, recover the website, repair calendar synchronization, and test the complete booking process.

Leave a Comment