A Nextcloud app that allows administrators to subscribe to external iCal/WebCal feeds and mirror them internally as relay calendars. These calendars are automatically shared read-only with Nextcloud groups, eliminating the need for individual users to subscribe to the feeds themselves.
Calendar Bridge is currently under active development and can be tested as an alpha release. It is not yet available in the official Nextcloud App Store. Publishing to the official Nextcloud App Store is the target.
Contributions, optimizations, and feedback are highly welcome!
- Centralized Management: Subscribe to external iCal/WebCal feeds once and mirror them internally.
- Automated Sync: Background synchronization via Nextcloud cron.
- Group Sharing: Automatic read-only sharing with any Nextcloud groups.
- Efficient: Diff-based sync and ETag/Last-Modified support prevent redundant downloads.
- Privacy: Optional stripping of
ATTENDEE/ORGANIZERemail addresses before storage. - Security: Support for HTTP Basic Auth and strict SSRF protections.
- Nextcloud 30 – 32
- PHP 8.1+
- Reliable Nextcloud cron (systemd timer or crontab recommended)
- DAV app enabled
Once published: Apps → Organization → Calendar Bridge → Enable.
cd /var/www/nextcloud/apps
git clone https://github.com/joe7ean/calendarbridge.git calendarbridge
cd calendarbridge
composer install --no-dev
npm ci && npm run buildThen enable the app in the Nextcloud interface.
The app requires a dedicated Nextcloud user to own the relay calendars. This account should not be used for regular logins.
# Create the user
php occ user:add --display-name="Calendar Bridge Service" calbridge-service
# Secure the login (set a random password)
RNDPW=$(openssl rand -base64 48)
OC_PASS="$RNDPW" php occ user:resetpassword --password-from-env calbridge-service
unset RNDPW OC_PASSGo to Settings → Administration → Calendar Bridge:
- Default service user: Enter the newly created user (e.g.,
calbridge-service). - Adjust other global settings like the sync interval as needed.
In the admin panel under Add feed:
- Enter the URL (
https://...orwebcal://...). - Set the name, color, and target groups.
The Calendar Bridge Admin Panel UI:
Requirements: Node.js 20+, PHP 8.1+, Composer.
git clone https://github.com/joe7ean/calendarbridge.git
cd calendarbridge
composer install
npm ci
npm run build