openclaw-nextcloud
Manage Notes, Tasks, Calendar, Files, and Contacts in your Nextcloud instance via CalDAV, WebDAV, and Notes API. Use for creating notes, managing todos and calendar events, uploading/downloading files, and managing contacts.
Best use case
openclaw-nextcloud is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Manage Notes, Tasks, Calendar, Files, and Contacts in your Nextcloud instance via CalDAV, WebDAV, and Notes API. Use for creating notes, managing todos and calendar events, uploading/downloading files, and managing contacts.
Teams using openclaw-nextcloud should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/openclaw-nextcloud/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How openclaw-nextcloud Compares
| Feature / Agent | openclaw-nextcloud | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Manage Notes, Tasks, Calendar, Files, and Contacts in your Nextcloud instance via CalDAV, WebDAV, and Notes API. Use for creating notes, managing todos and calendar events, uploading/downloading files, and managing contacts.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# 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., `https://cloud.example.com`).
- `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.
```bash
node scripts/nextcloud.js <command> <subcommand> [options]
```
## Commands
### Notes
- `notes list`
- `notes get --id <id>`
- `notes create --title <t> --content <c> [--category <cat>]`
- `notes edit --id <id> [--title <t>] [--content <c>] [--category <cat>]`
- `notes delete --id <id>`
### Tasks
- `tasks list [--calendar <c>]`
- `tasks create --title <t> [--calendar <c>] [--due <d>] [--priority <p>] [--description <d>]`
- `tasks edit --uid <u> [--calendar <c>] [--title <t>] [--due <d>] [--priority <p>] [--description <d>]`
- `tasks delete --uid <u> [--calendar <c>]`
- `tasks complete --uid <u> [--calendar <c>]`
### Calendar Events
- `calendar list [--from <iso>] [--to <iso>]` (Defaults to next 7 days)
- `calendar create --summary <s> --start <iso> --end <iso> [--calendar <c>] [--description <d>]`
- `calendar edit --uid <u> [--calendar <c>] [--summary <s>] [--start <iso>] [--end <iso>] [--description <d>]`
- `calendar delete --uid <u> [--calendar <c>]`
### Calendars (list available calendars)
- `calendars list [--type <tasks|events>]`
### Files
- `files list [--path <path>]`
- `files search --query <q>`
- `files get --path <path>` (download file content)
- `files upload --path <path> --content <content>`
- `files delete --path <path>`
### Contacts
- `contacts list [--addressbook <ab>]`
- `contacts get --uid <u> [--addressbook <ab>]`
- `contacts search --query <q> [--addressbook <ab>]`
- `contacts create --name <n> [--addressbook <ab>] [--email <e>] [--phone <p>] [--organization <o>] [--title <t>] [--note <n>]`
- `contacts edit --uid <u> [--addressbook <ab>] [--name <n>] [--email <e>] [--phone <p>] [--organization <o>] [--title <t>] [--note <n>]`
- `contacts delete --uid <u> [--addressbook <ab>]`
### Address Books (list available address books)
- `addressbooks list`
## Output Format
All outputs are JSON formatted.
### Tasks List Output
```json
{
"status": "success",
"data": [
{
"uid": "unique-task-id",
"calendar": "Calendar Name",
"summary": "Task title",
"status": "NEEDS-ACTION",
"due": "20260201T153000Z",
"priority": 0
}
]
}
```
- `due`: CalDAV format date (YYYYMMDDTHHmmssZ) or null
- `priority`: 0-9 (0 = undefined, 1 = highest, 9 = lowest) or null
### Calendar Events List Output
```json
{
"status": "success",
"data": [
{
"uid": "unique-event-id",
"calendar": "Calendar Name",
"summary": "Event title",
"start": "20260205T100000Z",
"end": "20260205T110000Z"
}
]
}
```
### Contacts List Output
```json
{
"status": "success",
"data": [
{
"uid": "unique-contact-id",
"addressBook": "Address Book Name",
"fullName": "John Doe",
"name": "Doe;John;;;",
"phones": ["+1234567890"],
"emails": ["john@example.com"],
"organization": "ACME Inc",
"title": "Developer",
"note": "Met at conference"
}
]
}
```
- `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
```json
{
"status": "success",
"data": [ ... ]
}
```
or
```json
{
"status": "error",
"message": "Error description"
}
```
## 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 possibleRelated Skills
OpenClaw-Finnhub
OpenClaw skill for real-time stock quote, and financials via Finnhub API.
openclaw-safety-coach
Safety coach for OpenClaw users. Refuses harmful, illegal, or unsafe requests and provides practical guidance to reduce ecosystem risk (malicious skills, tool abuse, secret exfiltration, prompt injection).
openclaw
openclaw
openclaw-spacesuit
**A framework scaffold for OpenClaw workspaces.**
nutrient-openclaw
Document processing for OpenClaw — convert, extract, OCR, redact, sign, and watermark PDFs and Office documents using the Nutrient DWS API. Use when asked to convert documents (DOCX/XLSX/PPTX to PDF, PDF to images or Office formats), extract text or tables from PDFs, apply OCR to scanned documents, redact sensitive information or PII, add watermarks, or digitally sign documents. Triggers on "convert to PDF", "extract text", "OCR this", "redact PII", "watermark", "sign document", or any document processing request.
openclaw-setup
Set up a complete OpenClaw personal AI assistant from scratch using Claude Code. Walks through AWS provisioning, OpenClaw installation, Telegram bot creation, API configuration, Google Workspace integration, security hardening, and all power features. Give this to Claude Code and it handles the rest.
OpenClaw Optimizer Skill
## Overview
openclaw-backup
Enhanced backup and restore for openclaw configuration, skills, commands, and settings. Sync across devices, version control with git, automate backups, and migrate to new machines with advanced compression.
openclaw-trakt
Track and recommend TV shows and movies using Trakt.tv. Use when the user asks for show/movie recommendations, wants to track what they're watching, check their watchlist, or get personalized suggestions based on their viewing history. Requires Trakt.tv account with Pro subscription for full functionality.
OpenClaw Claude Code Skill
## Description
OpenClaw Async Task
## Description
OpenClaw Cloud Setup Skill
Deploy OpenClaw to GCP with Tailscale and Brave Search.