How to Sync Nextcloud Calendar with Google Calendar (Bidirectional)
Nextcloud is a fantastic platform for self-hosted productivity. But when it comes to syncing your Nextcloud calendar with Google Calendar, you'll quickly run into frustrating limitations. Here's why the common workarounds fail — and how to get true bidirectional sync.
The problem: Nextcloud and Google Calendar don't speak the same language
Nextcloud uses CalDAV for calendar synchronization — an open internet standard (RFC 4791). Google Calendar, however, uses its own proprietary API. There is no native CalDAV support in Google Calendar, and Google removed CalDAV compatibility years ago.
This means you can't simply point Google Calendar at your Nextcloud CalDAV URL and expect it to work.
Why ICS subscriptions don't solve the problem
The most common workaround people try is ICS feed subscriptions. You can export your Nextcloud calendar as an ICS URL and subscribe to it from Google Calendar. Sounds easy, right? Here's why it doesn't work in practice:
1. ICS feeds are read-only
When you subscribe to an ICS feed in Google Calendar, you can only view events — you can't edit, delete, or create new events. It's a one-way mirror, not a sync.
2. Google Calendar updates ICS feeds every 24–48 hours
Even for viewing purposes, ICS subscriptions are unreliable. Google Calendar only refreshes ICS feed subscriptions approximately every 12 to 48 hours. There's no way to force a refresh. This means:
- An event you create in Nextcloud might not show up in Google Calendar until the next day
- A cancelled meeting might still appear on your Google Calendar for hours
- Free/busy information is always outdated
For anyone who relies on real-time scheduling, this is a dealbreaker.
3. No conflict resolution
Since ICS feeds are one-way, there's no concept of conflict resolution. If you need to make changes to events from both sides, ICS feeds simply can't handle it.
The real solution: CalDAVconnect
CalDAVconnect is a cloud service that bridges the gap between CalDAV and Google Calendar's API. Here's how it works:
- CalDAVconnect connects to your Nextcloud instance via CalDAV
- It connects to your Google Calendar via Google's Calendar API (OAuth)
- When you create, edit, or delete an event on either side, CalDAVconnect syncs the change to the other side in real-time
Real-time via webhooks
CalDAVconnect doesn't poll your calendars on a timer. Instead, it uses:
- Google Calendar push notifications (webhooks) to detect changes in Google Calendar instantly
- CalDAV sync reports to efficiently detect changes on your Nextcloud server
This means changes typically sync within seconds, not hours or days.
Bidirectional by design
Unlike ICS feeds, CalDAVconnect provides true bidirectional sync:
- Create an event in Nextcloud → it appears in Google Calendar
- Edit an event in Google Calendar → the change is reflected in Nextcloud
- Delete an event on either side → it's removed on the other side
Setting it up
Getting started takes about 5 minutes:
- Create a CalDAVconnect account (free during the public beta)
- Enter your Nextcloud CalDAV server URL and credentials
- Authorize CalDAVconnect to access your Google Calendar via OAuth
- Select which Nextcloud calendar to sync with which Google Calendar
- Hit "Sync" — your initial sync runs automatically
After the initial sync, all changes are synced in real-time. No software to install, no cron jobs to configure.
What about data privacy?
CalDAVconnect is hosted on Hetzner in Nuremberg, Germany. Your calendar data is processed exclusively within the EU. All event data is encrypted at rest. CalDAVconnect is fully GDPR compliant .
Conclusion
If you've been struggling with ICS feed delays or one-way sync between Nextcloud and Google Calendar, CalDAVconnect provides the solution: real-time, bidirectional sync that just works.