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.
Install
mkdir -p .claude/skills/openclaw-nextcloud && curl -L -o skill.zip "https://mcp.directory/api/skills/download/3198" && unzip -o skill.zip -d .claude/skills/openclaw-nextcloud && rm skill.zipInstalls to .claude/skills/openclaw-nextcloud
About this skill
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.
node scripts/nextcloud.js <command> <subcommand> [options]
Commands
Notes
notes listnotes 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
{
"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 nullpriority: 0-9 (0 = undefined, 1 = highest, 9 = lowest) or null
Calendar Events List Output
{
"status": "success",
"data": [
{
"uid": "unique-event-id",
"calendar": "Calendar Name",
"summary": "Event title",
"start": "20260205T100000Z",
"end": "20260205T110000Z"
}
]
}
Contacts List Output
{
"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 nullemails: Array of email addresses or nullname: Structured name in vCard format (Last;First;Middle;Prefix;Suffix)
General Format
{
"status": "success",
"data": [ ... ]
}
or
{
"status": "error",
"message": "Error description"
}
Agent Behavior: Default Calendar Selection
When creating tasks or calendar events, if the user does not specify a calendar:
-
First time (no default set):
- Run
calendars 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
- Run
-
If user sets a default:
- Remember
default_task_calendarand/ordefault_event_calendar - Use automatically for subsequent operations without asking
- Remember
-
If user declines to set a default:
- Ask again next time they create a task/event without specifying a calendar
-
User can always override:
- Explicitly specifying
--calendaralways takes precedence over the default
- Explicitly specifying
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:
-
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
- Run
-
If user sets a default:
- Remember
default_addressbook - Use automatically for subsequent operations without asking
- Remember
-
If user declines to set a default:
- Ask again next time they create a contact without specifying an address book
-
User can always override:
- Explicitly specifying
--addressbookalways takes precedence over the default
- Explicitly specifying
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
More by openclaw
View all skills by openclaw →You might also like
flutter-development
aj-geddes
Build beautiful cross-platform mobile apps with Flutter and Dart. Covers widgets, state management with Provider/BLoC, navigation, API integration, and material design.
drawio-diagrams-enhanced
jgtolentino
Create professional draw.io (diagrams.net) diagrams in XML format (.drawio files) with integrated PMP/PMBOK methodologies, extensive visual asset libraries, and industry-standard professional templates. Use this skill when users ask to create flowcharts, swimlane diagrams, cross-functional flowcharts, org charts, network diagrams, UML diagrams, BPMN, project management diagrams (WBS, Gantt, PERT, RACI), risk matrices, stakeholder maps, or any other visual diagram in draw.io format. This skill includes access to custom shape libraries for icons, clipart, and professional symbols.
ui-ux-pro-max
nextlevelbuilder
"UI/UX design intelligence. 50 styles, 21 palettes, 50 font pairings, 20 charts, 8 stacks (React, Next.js, Vue, Svelte, SwiftUI, React Native, Flutter, Tailwind). Actions: plan, build, create, design, implement, review, fix, improve, optimize, enhance, refactor, check UI/UX code. Projects: website, landing page, dashboard, admin panel, e-commerce, SaaS, portfolio, blog, mobile app, .html, .tsx, .vue, .svelte. Elements: button, modal, navbar, sidebar, card, table, form, chart. Styles: glassmorphism, claymorphism, minimalism, brutalism, neumorphism, bento grid, dark mode, responsive, skeuomorphism, flat design. Topics: color palette, accessibility, animation, layout, typography, font pairing, spacing, hover, shadow, gradient."
godot
bfollington
This skill should be used when working on Godot Engine projects. It provides specialized knowledge of Godot's file formats (.gd, .tscn, .tres), architecture patterns (component-based, signal-driven, resource-based), common pitfalls, validation tools, code templates, and CLI workflows. The `godot` command is available for running the game, validating scripts, importing resources, and exporting builds. Use this skill for tasks involving Godot game development, debugging scene/resource files, implementing game systems, or creating new Godot components.
nano-banana-pro
garg-aayush
Generate and edit images using Google's Nano Banana Pro (Gemini 3 Pro Image) API. Use when the user asks to generate, create, edit, modify, change, alter, or update images. Also use when user references an existing image file and asks to modify it in any way (e.g., "modify this image", "change the background", "replace X with Y"). Supports both text-to-image generation and image-to-image editing with configurable resolution (1K default, 2K, or 4K for high resolution). DO NOT read the image file first - use this skill directly with the --input-image parameter.
fastapi-templates
wshobson
Create production-ready FastAPI projects with async patterns, dependency injection, and comprehensive error handling. Use when building new FastAPI applications or setting up backend API projects.
Related MCP Servers
Browse all serversEnhance software testing with Playwright MCP: Fast, reliable browser automation, an innovative alternative to Selenium s
Easily automate Microsoft 365 tasks with simplified Graph API authentication. Access email, calendar, OneDrive, and more
Sub-Agents delegates tasks to specialized AI assistants, automating workflow orchestration with performance monitoring a
Tasks offers project tracking software and time management tools using the Eisenhower Matrix across Markdown, JSON, and
Integrate with Tana's Input API to automate data input and manage structured notes in Tana workspaces effortlessly.
TaskFlow manages tasks with project plan templates, subtasks, dependencies, and approval for systematic tracking and use
Stay ahead of the MCP ecosystem
Get weekly updates on new skills and servers.