How to sync WordPress bookings with a calendar
WordPress has no built-in booking-to-calendar sync. If your booking plugin supports iCal, you can exchange calendar feeds, but updates may be delayed. For two-way syncing, staff availability and conflict prevention, use a booking plugin integration connected to Google or Outlook.
- 01Choose the sync direction
- 02Check your booking plugin
- 03Use an iCal feed if available
- 04Set up API credentials
- 05Connect each staff calendar
- 06Test conflicts and time zones
What you need
- A WordPress booking plugin that supports calendar integration or iCal feeds
- Administrator access to WordPress
- Access to the Google, Microsoft or Apple calendar account
- HTTPS enabled on the website
Choose the sync direction
Decide what should happen when a booking is made and when staff add events to their calendar. One-way sync sends website bookings to a calendar. Two-way sync also reads busy periods from the external calendar and blocks those slots on your booking form.
Use two-way sync when staff already manage their availability in Google Calendar or Outlook. If the calendar is only for viewing bookings, one-way sync is simpler.
Check your booking plugin
Open your booking plugin’s settings and look for Calendar, Integrations, Google Calendar, Outlook Calendar or iCal. WordPress itself does not contain a booking engine or a calendar synchronisation service, so the available method depends on the plugin handling your bookings.
Check whether it supports appointment times or only whole-day dates, whether it sends cancellations and reschedules, and whether external busy events can block new bookings. These differences matter more than the word ‘sync’ in the feature list.
Use an iCal feed if available
For a basic manual route, copy the booking calendar’s iCal export URL into Google Calendar, Outlook or Apple Calendar. If the plugin also accepts external iCal feeds, copy the calendar’s private iCal URL back into the relevant booking calendar and map imported events to unavailable or booked time.
This route is fine for simple availability sharing and rental-style calendars. It is not real-time: the booking plugin or calendar service may refresh feeds periodically, and iCal usually does not provide reliable instant conflict prevention. Keep the feed private because anyone with its URL may be able to read calendar data.
Set up API credentials
For live two-way syncing, use the booking plugin’s Google or Outlook integration rather than relying on an iCal feed. The setup normally requires an OAuth application: create a project or app in the relevant provider portal, enable calendar access, add the redirect URL shown by the WordPress integration, then copy the client ID and secret into the plugin.
Grant only the calendar permissions the integration requests. If the provider leaves the app in a testing state, connecting staff accounts may fail until those accounts are added as test users or the app is moved through the provider’s publishing or verification process. Google integrations commonly require the Calendar API and OAuth credentials.
Connect each staff calendar
Connect the calendar belonging to each person, resource or room that can receive a booking. Select the destination calendar, then choose whether the connection is one-way or two-way. Configure the event title, description and location if the integration provides placeholders for customer, service, staff and appointment details.
Do not assume the administrator’s connection covers every staff member. Many booking systems require each staff member to authorise their own calendar and select their own calendar. Existing busy events normally block availability without appearing as normal booking records in WordPress.
Test conflicts and time zones
Create a test booking and confirm that it appears in the correct calendar with the correct duration. Then create a busy event directly in the external calendar and check that the matching website slot becomes unavailable. Also test a cancellation and reschedule from WordPress.
Set the WordPress timezone and each connected calendar to the same named region, such as America/New_York, rather than relying on a fixed UTC offset. A mismatch can shift appointments by an hour around daylight-saving changes. If sync fails on a Friday, check expired authorisation, the selected calendar, background task or cron activity, provider permissions and the integration’s debug log before reconnecting every account.
Let BookingPress Outlook Calendar Integration Addon do it
Two-way Outlook calendar sync with conflict prevention, ideal for BookingPress sites managing staff availability.
Sources
- docs.bookingwp.com /appointments/setup/google-calendar?utm_source=openai
- bookingpressplugin.com /documents/outlook-calendar-integration/?utm_source=openai
Questions
- Can WordPress sync bookings with a calendar without a plugin?
- No, WordPress core cannot create bookings or synchronise them with an external calendar. You need a booking plugin plus either an iCal feed, an API integration or custom development. An embedded calendar can display events, but it does not automatically know when a WordPress booking is made or prevent two people from choosing the same slot.
- Is iCal good enough for booking calendar sync?
- iCal is good enough for basic calendar visibility and slower availability imports, especially for date-based rentals. It is not the best choice for appointments where two people may book within minutes of each other. Feed refreshes can be delayed, and iCal integrations often lack detailed updates, reliable cancellations and immediate conflict prevention.
- Does two-way calendar sync prevent double bookings?
- It can reduce double bookings when the integration reads busy events before showing appointment slots, but it is not a substitute for testing your booking rules. The calendar must be connected to the correct staff member, the event must be marked busy, and time zones must match. A one-way connection only sends bookings out and cannot block time from external events.
- Why are WordPress bookings showing at the wrong time?
- The usual cause is a mismatch between the WordPress timezone and the connected calendar’s timezone. Set WordPress under Settings > General > Timezone to the same named region used by the calendar, then check the booking plugin’s service and staff timezone settings. Avoid fixed UTC offsets where daylight-saving changes apply.
- What is the quickest way to sync Outlook bookings with WordPress?
- Use a booking plugin with a Microsoft Graph-based Outlook integration, connect each staff member’s Outlook account, select the calendar, and enable availability checking. The BookingPress Outlook Calendar Integration Addon is a suitable option for BookingPress sites because it supports staff-specific calendars, booking updates and busy-period checks. Manage cancellations and reschedules from BookingPress when the integration requires that workflow.