Calendar Sync
Calendar sync keeps this plugin and an outside calendar in step, so a booking made on Airbnb blocks the same night on your own site — and vice versa. Set connections per product on the Calendar Sync tab of Product Settings.

The tab lists every calendar connection attached to this product.

Adding a connection
Click Add calendar sync.

| Field | Options | Notes |
|---|---|---|
| Calendar type | Google Calendar, ICS feed, Airbnb iCal, Booking.com iCal, Vrbo iCal, HomeAway iCal | Which service the feed comes from |
| How should it sync? | Import bookings from calendar · Send bookings to calendar · Import and export bookings · Two-way sync | The direction |
| Calendar URL or ID | The feed URL, or a Google calendar ID | Get this from the other service |
| Resource ID (optional) | A resource ID, or 0 | Attach the feed to one room or vehicle instead of the whole product |
| Vendor ID (optional) | 0 unless you run a marketplace | |
| Status | Enabled / Paused | Pause a connection without deleting it |
Click Create. The row appears with Calendar, Sync, Resource, Vendor and Status columns, where Status reads Sync enabled or Sync paused.
Choosing the direction
| Direction | What happens | Use it when |
|---|---|---|
| Import bookings from calendar | Events in the outside calendar block your availability | You take bookings elsewhere and want them respected here |
| Send bookings to calendar | Your bookings are published as a feed | You want your bookings to show up in a team calendar |
| Import and export bookings | Both of the above | A listing that is genuinely double-sided |
| Two-way sync | Full two-way reconciliation | Channel-managed properties |
Important
Start with Import bookings from calendar on a single product and watch the sync log for a few days before enabling two-way sync everywhere. Import-only cannot create bad data on the other service.
Getting the feed URL
| Service | Where the iCal link lives |
|---|---|
| Airbnb | Listing → Availability → Sync calendars → Export calendar |
| Booking.com | Extranet → Rates & Availability → Sync calendars |
| Vrbo / HomeAway | Calendar → Import/Export → Export |
| Google Calendar | Calendar settings → Integrate calendar → the calendar ID or secret address |
| Any other tool | Look for "iCal", "ICS" or "calendar feed" in its export options |
Warning
An iCal export URL is a secret link — anyone with it can read your booking dates. Treat it like a password: do not post it in a support ticket, a forum or a screenshot.
Running a sync
Each connection row has a Sync now action. It reports the outcome:
Sync complete: 4 imported, 0 conflict(s).
When an export feed has been generated, the message also gives you the feed URL to paste into the other service.
Conflicts are windows that already had a booking on your side. They are reported rather than overwritten — check them by hand in Managing Bookings.
Reading the sync log
Every sync writes to the log on Bookings → Logs and Tools, with provider, entity, status and any error message, filterable and exportable as CSV. See Logs and Tools.
| Status | What to do |
|---|---|
success | Nothing — it worked |
pending | The job is queued; check again shortly |
failed | Read the Error column. A URL typo, an expired feed link or a network block are the usual causes |
Store-wide calendar settings
Global Settings → Products → Calendar Sync Config:
| Section | Setting | Default | Meaning |
|---|---|---|---|
| Google Calendar | Enable Google Calendar | Enabled | Allow Google connections |
| Google Calendar | Sync Mode | pull | Default direction for new Google connections |
| Google Calendar | Sync Interval (minutes) | 15 | How often to sync |
| ICS Import | Enable ICS Import | Enabled | Allow ICS feeds in |
| ICS Import | Fetch Interval (minutes) | 30 | How often to fetch |
| ICS Import | Fail On Invalid Event | Disabled | Stop the whole import on a bad event, or skip it |
| ICS Export | Enable ICS Export | Enabled | Publish your bookings as a feed |
| ICS Export | Include Cancelled Bookings | Disabled | Whether cancelled bookings appear in the feed |
| ICS Export | Export Window (days) | 365 | How far ahead the feed reaches |
| Sync Logs | Retain Logs (days) | 30 | How long log rows are kept |
| Sync Logs | Verbose Logging | Disabled | Log more detail while troubleshooting |
| Sync Logs | Alert On Failures | Disabled | Flag failures |
Tips
Turn Verbose Logging on while you are setting a connection up, and off again once it works. It makes the log much noisier.
Syncing a single resource
Set Resource ID on the connection and the feed applies to that room, vehicle or member of staff alone. This is how a four-room guest house keeps four separate Airbnb calendars: one connection per room, each pointing at its own resource. Find the ID in the resource table on the Resources tab.
Automatic syncing
Scheduled syncing relies on WordPress's own scheduler. If your host has disabled WP-Cron, or your site has very little traffic, connections will only sync when you press Sync now. See Installation for how to check.
Customers' own calendars
Separately from all of this, each customer can add their booking to their personal calendar from My account → My Bookings, using Google Calendar or Download ICS. That needs no configuration — see My Bookings.
Next step
- Logs and Tools — read and export the sync log.
- Global Settings — the store-wide calendar defaults.
