openclaw-nextcloud
Manage Notes, Tasks, Calendar, Files, and Contacts in your Nextcloud instance via CalDAV, WebDAV.
Installation
npx clawhub@latest install openclaw-nextcloudView the full skill documentation and source below.
Documentation
OpenClaw Nextcloud Skill
This skill provides integration with a Nextcloud instance. It supports access to Notes, Tasks (Todos), Calendars, Files, and Contacts.
Configuration
The skill requires the following environment variables:
NEXTCLOUD_URL: The base URL of your Nextcloud instance (e.g.,). -NEXTCLOUD_USER: Your Nextcloud username. -NEXTCLOUD_TOKEN: An App Password (recommended) or your login password. ## Features ### 1. Notes (Read/Write) - List, get, create, update, and delete notes. - API:index.php/apps/notes/api/v1/notes### 2. Tasks / Todos (Read/Write) - List, create, update, delete, and complete tasks. - API: CalDAV (VTODO). ### 3. Calendar (Read/Write) - List, create, update, and delete events. - API: CalDAV (VEVENT). ### 4. Files (Read/Write) - List, search, upload, download, and delete files. - API: WebDAV. ### 5. Contacts (Read/Write) - List, get, create, update, delete, and search contacts. - API: CardDAV. ## Usage Run the skill via the bundled script. __CODE_BLOCK_0__ ## Commands ### Notes -notes list-notes get --id-notes create --title --content [--category ]-notes edit --id [--title ] [--content ] [--category ]-notes delete --id### Tasks -tasks list [--calendar ]-tasks create --title [--calendar ] [--due ] [--priority] [--description ]
-tasks edit --uid [--calendar ] [--title ] [--due ] [--priority] [--description ]
-tasks delete --uid [--calendar ]-tasks complete --uid [--calendar ]### Calendar Events -calendar list [--from ] [--to ](Defaults to next 7 days) -calendar create --summary --start --end [--calendar ] [--description ]-calendar edit --uid [--calendar ] [--summary ] [--start ] [--end ] [--description ]-calendar delete --uid [--calendar ]### Calendars (list available calendars) -calendars list [--type ]### Files -files list [--path ]-files search --query-files get --path(download file content) -files upload --path --content-files delete --path### Contacts -contacts list [--addressbook ]-contacts get --uid [--addressbook ]-contacts search --query [--addressbook ]-contacts create --name [--addressbook ] [--email ] [--phone] [--organization ] [--title ] [--note ]
-contacts edit --uid [--addressbook ] [--name ] [--email ] [--phone] [--organization ] [--title ] [--note ]
-contacts delete --uid [--addressbook ]### Address Books (list available address books) -addressbooks list## Output Format All outputs are JSON formatted. ### Tasks List Output __CODE_BLOCK_1__ -due: CalDAV format date (YYYYMMDDTHHmmssZ) or null -priority: 0-9 (0 = undefined, 1 = highest, 9 = lowest) or null ### Calendar Events List Output __CODE_BLOCK_2__ ### Contacts List Output __CODE_BLOCK_3__ -phones: Array of phone numbers or null -emails: Array of email addresses or null -name: Structured name in vCard format (Last;First;Middle;Prefix;Suffix) ### General Format __CODE_BLOCK_4__ or __CODE_BLOCK_5__ ## Agent Behavior: Default Calendar Selection When creating tasks or calendar events, if the user does not specify a calendar: 1. **First time (no default set):** - Runcalendars list --type tasks(for tasks) orcalendars list --type events(for events) - Ask the user which calendar to use from the list - Ask if they want to set it as the default for future operations - Remember their choice in memory 2. **If user sets a default:** - Rememberdefault_task_calendarand/ordefault_event_calendar- Use automatically for subsequent operations without asking 3. **If user declines to set a default:** - Ask again next time they create a task/event without specifying a calendar 4. **User can always override:** - Explicitly specifying--calendaralways takes precedence over the default ### Memory Keys -default_task_calendar: Default calendar name for tasks (VTODO) -default_event_calendar: Default calendar name for events (VEVENT) ## Agent Behavior: Default Address Book Selection When creating contacts, if the user does not specify an address book: 1. **First time (no default set):** - Runaddressbooks list- Ask the user which address book to use from the list - Ask if they want to set it as the default for future operations - Remember their choice in memory 2. **If user sets a default:** - Rememberdefault_addressbook- Use automatically for subsequent operations without asking 3. **If user declines to set a default:** - Ask again next time they create a contact without specifying an address book 4. **User can always override:** - Explicitly specifying--addressbookalways takes precedence over the default ### Memory Keys -default_addressbook: Default address book name for contacts ## Agent Behavior: Presenting Information When displaying data to the user, format it in a readable way. Output may be sent to messaging platforms (Telegram, WhatsApp, etc.) where markdown does not render, so avoid markdown formatting. ### General Guidelines - Use emojis to make output scannable and friendly - Do NOT use markdown formatting (no **bold**, *italic*,code`, tables, or lists with - or *)- Use plain text with line breaks for structure
- Convert technical formats (like CalDAV dates) to human-readable formats
- Group related items logically
Emoji Reference
Tasks: β (completed), β¬ (pending), π΄ (high priority), π‘ (medium), π’ (low) Calendar: π (event), β° (time), π (location) Notes: π (note), π (category) Files: π (file), π (folder), πΎ (size) Contacts: π€ (person), π§ (email), π± (phone), π’ (organization) Status: β¨ (created), βοΈ (updated), ποΈ (deleted), β (error)Example Presentations
Tasks:
π Your Tasks
β¬ π΄ Buy groceries β Due: Tomorrow 3:30 PM
β¬ π‘ Review PR #42 β Due: Feb 5
β
Send email to client
Calendar Events:
π
Upcoming Events
ποΈ Team Standup
β° Mon, Feb 3 β’ 10:00 AM - 10:30 AM
π Zoom
ποΈ Project Review
β° Wed, Feb 5 β’ 2:00 PM - 3:00 PM
Contacts:
π€ John Doe
π§ john@example.com
π± +1 234 567 890
π’ ACME Inc β Developer
Files:
π Documents/
π report.pdf (2.3 MB)
π notes.txt (4 KB)
π Archive/