https://github.com/markusbegerow/nextcloud-calendar-sync
Sync external CalDAV calendars with your Nextcloud calendar automatically.
https://github.com/markusbegerow/nextcloud-calendar-sync
caldav caldav-sharing calendar calendars calendarsync nextcloud nextcloud-app rfc-5545 self-hosted webcal
Last synced: about 22 hours ago
JSON representation
Sync external CalDAV calendars with your Nextcloud calendar automatically.
- Host: GitHub
- URL: https://github.com/markusbegerow/nextcloud-calendar-sync
- Owner: markusbegerow
- License: gpl-3.0
- Created: 2025-04-27T11:10:06.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2026-05-23T16:42:39.000Z (26 days ago)
- Last Synced: 2026-05-23T18:22:41.075Z (26 days ago)
- Topics: caldav, caldav-sharing, calendar, calendars, calendarsync, nextcloud, nextcloud-app, rfc-5545, self-hosted, webcal
- Homepage: https://markus-begerow.de/linktree
- Size: 45.9 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# Calendar Sync for Nextcloud

**Calendar Sync** lets you connect your Nextcloud calendar to any CalDAV server - keeping both sides in sync automatically, every 30 minutes. Multiple external sources, configurable sync direction, and secure encrypted credential storage are all built in.
---
## Features
- **Bidirectional sync** - changes made on either side are reflected on the other
- **Multiple configurations** - connect to as many external CalDAV sources as you need
- **Sync direction control** - bidirectional, external โ Nextcloud only, or Nextcloud โ external only
- **Conflict resolution** - choose between "update with newer", "skip", or "keep both"
- **Content-based duplicate detection** - matches events by title to avoid duplicates
- **Scheduled sync** - runs automatically every 30 minutes in the background
- **Manual sync** - trigger a full sync with one click
- **Sync history** - view a log of recent sync runs with created/updated/deleted counts
- **Secure credentials** - passwords encrypted with Nextcloud's built-in `ICrypto` before storage
- **Auto-refresh** - configurable live status updates (1, 5, 10, 15 min, or custom)
- **Languages** - English ๐ฌ๐ง ยท German ๐ฉ๐ช
---
## Requirements
| Dependency | Version |
|---|---|
| Nextcloud | 20 โ 33 |
| PHP | 8.0+ |
---
## Installation
### From source (manual)
1. Clone or download this repository into your Nextcloud `custom_apps/` directory:
```bash
cd /path/to/nextcloud/custom_apps
git clone https://github.com/markusbegerow/nextcloud-calendar-sync calendar-sync
```
2. Enable the app in Nextcloud:
```bash
php occ app:enable calendar-sync
```
3. Navigate to the **Sync** entry in the Nextcloud top navigation bar.
---
## Usage
1. Click **Add Configuration** to create a connection to an external CalDAV server.
2. Fill in the CalDAV server URL, username, and password. Use **Test Connection** to verify.
3. Choose a sync direction and how to handle duplicate events.
4. Enable the configuration and click **Sync Now** to run the first sync manually.
5. Background sync runs every 30 minutes automatically - check **Recent Sync History** for results.
### CalDAV URL examples
| Provider | URL format |
|---|---|
| Nextcloud | `https://cloud.example.com/remote.php/dav/calendars/user/calendar-name/` |
| Generic CalDAV | `https://example.com/dav/calendars/user/default/` |
---
## Security
- Passwords are encrypted with Nextcloud's `ICrypto` service before being written to the database. They are never logged or stored in plain text.
- All requests from the background job run within the Nextcloud security context of the owning user.
---
## License
[GPL v3](https://www.gnu.org/licenses/gpl-3.0.html) ยฉ [Markus Begerow](https://markus-begerow.de/linktree)
---
## ๐โโ๏ธ Get Involved
If you encounter any issues or have questions:
- ๐ [Report bugs](https://github.com/markusbegerow/nextcloud-calendar-sync/issues)
- ๐ก [Request features](https://github.com/markusbegerow/nextcloud-calendar-sync/issues)
- โญ Star the repo if you find it useful!
## โ Support the Project
If you like this project, support further development with a repost or coffee:
[](https://paypal.me/MarkusBegerow)
## ๐ฌ Contact
- ๐งโ๐ป [Markus Begerow](https://linkedin.com/in/markusbegerow)
- ๐พ [GitHub](https://github.com/markusbegerow)
- โ๏ธ [Twitter](https://x.com/markusbegerow)