Sync Nextcloud Calendar with Google Calendar

By Rida F'kih · August 11, 2026 · Updated November 10, 2026

Nextcloud Calendar and Google Calendar have no built-in two-way sync: each can only subscribe to a read-only link published by the other, and Nextcloud refreshes its subscriptions weekly by default. Keeper.sh, a calendar sync service, copies Nextcloud events onto Google Calendar as busy blocks and keeps the copies current, and a second connection copies Google events back. It reads Nextcloud over CalDAV with an app password and Google Calendar through Google sign-in.

Native one-way options

Both apps can show the other's events through a calendar subscription, but a subscription is a read-only view in one direction. Neither app can write events into the other, and you control neither app's refresh timing. What is calendar sync explains how a subscription differs from a copy, and CalDAV servers and calendar sync tools compared covers the other ways to connect a CalDAV server.

Show Nextcloud events in Google Calendar

Nextcloud can publish a calendar at a public link, and Google Calendar can subscribe to it. In Nextcloud Calendar, open the share menu for the calendar and add a Share link. The public page it creates offers a subscription link (Nextcloud 35 calendar manual, checked 10 November 2026).

In Google Calendar on a computer, go to Other calendars, choose Add other calendars, then From URL, paste the link and click Add calendar (Google Calendar Help). Google's page gives no refresh interval for these subscriptions, and it works only for a calendar that is public. Anyone who has the link can read the calendar, so this route exposes event details beyond Google.

Show Google Calendar events in Nextcloud

Google gives every calendar a private feed. In Google Calendar's settings on a computer, open the calendar under Settings for my calendars, choose Integrate calendar and copy the Secret address in iCal format (Google Calendar Help). Google warns that only you should know this address, and Reset replaces it if it leaks.

In Nextcloud Calendar, click + New calendar, then + New subscription from link (read-only), and paste the address. Nextcloud's manual says subscriptions are refreshed every week by default, unless your administrator has changed that setting. A new Google meeting can therefore take days to appear in Nextcloud.

Connect Nextcloud to Keeper.sh

Keeper.sh is a calendar sync service that copies events between Nextcloud and Google Calendar, and between Outlook, iCloud, Fastmail and any other CalDAV server as well. Each copy is a busy block named after the source calendar. The title, description and location are hidden by default, Pro can turn them back on per calendar, and guest lists are never copied. Each connection runs one way, so two-way sync is two connections; the calendar sync features page lists what else each connection can do. The Free plan covers 2 calendar accounts and 3 connections, with changes landing every 30 minutes. Pro is $5 a month or $45 a year, with Google and Outlook changes landing within seconds and iCloud, Fastmail and CalDAV changes landing every minute (pricing).

Keeper.sh reaches Nextcloud as a standard CalDAV server, using your Nextcloud username and an app password. The Nextcloud server must be reachable at a public HTTPS address, because Keeper.sh connects to it from the internet, not from inside your network.

Create the app password first. In Nextcloud, open your personal settings, go to Security and use the device form at the bottom of Devices & sessions to create a new app password (Nextcloud 35 user manual, checked 10 November 2026). Nextcloud shows the password only once, so copy it straight into the next step. If two-factor sign-in is on, your normal password is turned away and an app password is required.

In the Keeper.sh dashboard, open Add a calendar and choose Connect a CalDAV server. The form has three fields:

  1. CalDAV Server URL: your Nextcloud address, such as https://cloud.example.com. Keeper.sh discovers the calendars from there.
  2. CalDAV Server Username: your Nextcloud username, which is often not your email address.
  3. CalDAV Server Password: the app password.

If discovery finds nothing at the plain address, enter the CalDAV endpoint Nextcloud documents, https://cloud.example.com/remote.php/dav (Nextcloud 35 iOS sync guide). Every calendar found is imported, and one Nextcloud server counts as one account however many calendars it holds.

Connect Google Calendar and choose the direction

Google Calendar connects through Google's own sign-in screen. From Add a calendar, choose Connect Google Calendar and approve access on Google's consent screen. Keeper.sh never sees your Google password.

A short setup flow then asks Which calendars would you like to configure? For each calendar it asks two questions:

  • Where should 'Personal' send events? Tick the Google calendar to copy Nextcloud events onto it.
  • Where should 'Personal' pull events from? Tick the Google calendar to copy its events into Nextcloud.

Ticking both creates both connections. You can change the routing later from the calendar's page under Send Events to Calendars.

What the copied events show

A dentist appointment in a Nextcloud calendar called Personal reaches Google Calendar as a busy block titled Personal, at the same time, with no description or location.

Three switches on the source calendar's page decide what travels: Sync Event Name, Sync Event Description and Sync Event Location. They start off. The Event Name field sets the stand-in title and accepts {{calendar_name}} and {{event_name}}. These switches are a Pro feature, and on Free the dashboard shows Advanced sync settings are a Pro feature. in their place.

The same page has exclusions. Exclude All Day Events keeps birthdays and holidays off the other calendar, and Google calendars also offer Exclude Focus Time Events and Exclude Out of Office Events. The full list of fields and defaults is in what a copied event shows.

How quickly changes appear

On Pro, timing depends on which calendar the change starts in.

Change made inFreePro
Google CalendarEvery 30 minutesWithin seconds
NextcloudEvery 30 minutesEvery minute

Google notifies Keeper.sh when an event changes. Nextcloud sends no such notice, so on Pro Keeper.sh reads the server once a minute.

Keeper.sh copies events from one month back to two years ahead by default, and Pro can change the range, as described in how far events are copied.

Fix Nextcloud connection errors

The connect form shows one of these messages.

  • Couldn't find calendars on this server. Check the details and try again. Keeper.sh did not get a usable CalDAV answer from the address, so the credentials were not checked. Look for a typo, and confirm the server answers at its public HTTPS address from outside your network.
  • That username or password didn't work. The server was reached and refused the sign-in. With two-factor sign-in on, a normal Nextcloud password is refused; create an app password and use that.
  • No calendars found. The sign-in worked but nothing was found at that address. Enter the full remote.php/dav address instead of the plain server address.

Keeper.sh skips a repeating series with more than 10,000 occurrences inside the sync window, such as an event that repeats every hour with no end date. The rest of the calendar keeps syncing. End the series or make it repeat less often, and it syncs.

Free plan fit

Nextcloud is one account and Google is the other. A two-way pair uses 2 accounts and 2 connections, which fits the Free plan with one connection spare.

Adding a third provider, such as a work Microsoft account, needs a third account, which Free does not include. Pro adds unlimited accounts, the faster timing and the detail switches above. Plans and limits lists what counts as an account and a connection.

Remove access

You can cut Keeper.sh off from either side. In Nextcloud, open Security, find the app password under Devices & sessions and revoke it from its menu. In Keeper.sh, open the account under Calendar sources and choose Delete Account. Revoking the Nextcloud app password affects nothing else, because it is separate from your normal password.

For the same setup with a Microsoft calendar, see syncing Nextcloud with Outlook. For a lighter CalDAV server, see syncing Radicale with iCloud Calendar, and for the wider market, see how the calendar sync tools compare.

Questions about syncing Nextcloud and Google Calendar

Can Google Calendar connect to a Nextcloud server directly?

No. Google Calendar can only subscribe to a public Nextcloud share link, which is read-only, and Google gives no refresh interval for it.

How often does Nextcloud refresh a subscribed Google calendar?

Every week by default, unless the server administrator has changed the setting, according to Nextcloud's calendar manual.

Does my Nextcloud server have to be reachable from the internet?

Yes. Keeper.sh connects to Nextcloud over CalDAV from the internet, so the server needs a public HTTPS address. A server that answers only inside a home or office network cannot be read.

Do I need a Nextcloud app password?

Yes, when two-factor sign-in is on: Nextcloud then turns away your normal password. Create an app password in your personal settings under Security, and revoke it there to cut access later.

Is two-way sync between Nextcloud and Google Calendar free?

Yes. Nextcloud counts as one account and Google as the other, and one connection in each direction fits Keeper.sh's Free plan of 2 calendar accounts and 3 connections.

Can Keeper.sh use cookies for analytics?