n8n nodes for CalDAV and CardDAV (WebDAV) operations with custom HTTP methods (REPORT, PROPFIND)
npm install hblackfox-n8n-nodes-webdavCustom n8n nodes for CalDAV and CardDAV (WebDAV) operations.
These nodes support custom HTTP methods (REPORT, PROPFIND) that are not available in the standard n8n HTTP Request node.
``bash`
npm install n8n-nodes-webdav
1. Build the package:
`bash`
cd n8n-nodes-webdav
npm install
npm run build
2. Copy to n8n custom nodes folder:
`bashLinux/Mac
mkdir -p ~/.n8n/custom
cp -r dist/* ~/.n8n/custom/
3. Restart n8n
$3
Add to your Dockerfile:
`dockerfile
FROM n8nio/n8n:latestCopy custom nodes
COPY n8n-nodes-webdav /home/node/.n8n/custom/n8n-nodes-webdav
WORKDIR /home/node/.n8n/custom/n8n-nodes-webdav
RUN npm install && npm run build
`Or mount as volume in docker-compose:
`yaml
services:
n8n:
volumes:
- ./n8n-nodes-webdav:/home/node/.n8n/custom/n8n-nodes-webdav
`Configuration
$3
Create a WebDAV API credential in n8n with:
- Base URL: Your WebDAV server URL (e.g.,
https://mail.example.com/SOGo/dav/user@example.com/)
- Username: Your WebDAV username
- Password: Your WebDAV password$3
For SOGo servers:
- Base URL:
https://mail.blockhat.io/SOGo/dav/contact@boukri.me/
- Calendar Path: Calendar/personal/
- Contacts Path: Contacts/personal/Usage Examples
$3
1. Add a CalDAV node
2. Select Query Events operation
3. Set Calendar Path:
Calendar/personal/
4. Set Start Date: 2026-01-20
5. Set End Date: 2026-01-27Output:
`json
{
"success": true,
"events": [
{
"uid": "event-123",
"summary": "Meeting",
"start": "2026-01-21T10:00:00",
"end": "2026-01-21T11:00:00"
}
]
}
`$3
1. Add a CardDAV node
2. Select Create Contact operation
3. Set Contacts Path:
Contacts/personal/
4. Set Full Name: John Doe
5. Set Email: john@example.com
6. Set Phone: +33612345678Output:
`json
{
"success": true,
"contactUid": "contact-1706123456789-abc12",
"contact": {
"fullName": "John Doe",
"email": "john@example.com",
"phone": "+33612345678"
}
}
`Compatibility
- n8n: v1.0.0+
- Node.js: 18+
- Tested with: SOGo, Nextcloud, Radicale, Baikal
Why Custom Nodes?
The standard n8n HTTP Request node only supports these methods:
- DELETE, GET, HEAD, OPTIONS, PATCH, POST, PUT
CalDAV and CardDAV require:
- REPORT - For querying calendar events with time-range filters
- PROPFIND - For listing contacts with full vCard data
Custom nodes have access to
this.helpers.httpRequest()` which supports any HTTP method.MIT
Kodixar - https://kodixar.fr