DevOps & CloudDocumentedScanned

openclaw-nextcloud

Manage Notes, Tasks, Calendar, Files, and Contacts in your Nextcloud instance via CalDAV, WebDAV.

Share:

Installation

npx clawhub@latest install openclaw-nextcloud

View 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):** - Run calendars list --type tasks (for tasks) or calendars 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:** - Remember default_task_calendar and/or default_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 --calendar always 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):** - Run addressbooks 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:** - Remember default_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 --addressbook always 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/

Date/Time Formatting

Convert CalDAV format 20260205T100000Z to readable format like Wed, Feb 5 β€’ 10:00 AM Show relative dates when helpful: "Tomorrow", "Next Monday", "In 3 days" Use the user's local timezone when possible