Describe the problem/error/question
After switching from Microsoft to Nextcloud we have tried to setup a workflow using n8n to Sync Outlook/Teams calendars with our Nextcloud Calendar (the featured app) and are facing the following problem:
To both read events from and write events to our Nextcloud calendars, the only option we know of is to use http requests with Basic Auth, which seems a bit impractical, since it would require to collect login credentials of every user.
Is anyone aware of a way to circumvent this issue? For example an admin user that has read/write permissions on other users calendar?
Kind regards,
Frederic
What is the error message (if any)?
Please share your workflow
(Select the nodes on your canvas and use the keyboard shortcuts CMD+C/CTRL+C and CMD+V/CTRL+V to copy and paste the workflow.)
Share the output returned by the last node
Information on your n8n setup
- n8n version:
- Database (default: SQLite):
- n8n EXECUTIONS_PROCESS setting (default: own, main):
- Running n8n via (Docker, npm, n8n cloud, desktop app):
- Operating system:
Hi @FredericDomke Welcome!
Two separate points here. First, Basic Auth for CalDAV does not mean collecting anyone’s real login password: Nextcloud app passwords are per-user, per-device tokens created under Personal settings > Security > Devices & sessions, and they authenticate over Basic Auth exactly like a normal CalDAV client. They are revocable individually and never expose the account password, so that is the safe form of what you are already doing. The calendar endpoint is the DAV path, not the Nextcloud node (which only covers files and users): https://your-nextcloud/remote.php/dav/calendars///
Second, there is no built-in admin credential that transparently reads and writes every user’s personal calendar. The supported way to run this from a single credential is calendar sharing to a service account:
- Create one dedicated Nextcloud user, e.g. n8n-sync.
- Have each user share their calendar with n8n-sync and tick “can edit” (or move the calendars you sync into shared/group calendars the service account owns).
- Generate one app password for n8n-sync.
- In n8n, use a single HTTP Request credential (Basic Auth, user n8n-sync + that app password) and hit /remote.php/dav/calendars/n8n-sync// for both reads (REPORT/PROPFIND) and writes (PUT).
That gives you one credential covering every shared calendar, with no per-user passwords to collect.