{
  "schemaVersion": "1.0",
  "item": {
    "slug": "openclaw-nextcloud",
    "name": "Openclaw Nextcloud",
    "source": "tencent",
    "type": "skill",
    "category": "效率提升",
    "sourceUrl": "https://clawhub.ai/keithvassallomt/openclaw-nextcloud",
    "canonicalUrl": "https://clawhub.ai/keithvassallomt/openclaw-nextcloud",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/openclaw-nextcloud",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=openclaw-nextcloud",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "scripts/nextcloud.js"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/openclaw-nextcloud"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/openclaw-nextcloud",
    "agentPageUrl": "https://openagent3.xyz/skills/openclaw-nextcloud/agent",
    "manifestUrl": "https://openagent3.xyz/skills/openclaw-nextcloud/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/openclaw-nextcloud/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "OpenClaw Nextcloud Skill",
        "body": "This skill provides integration with a Nextcloud instance. It supports access to Notes, Tasks (Todos), Calendars, Files, and Contacts."
      },
      {
        "title": "Configuration",
        "body": "The skill requires the following environment variables:\n\nNEXTCLOUD_URL: The base URL of your Nextcloud instance (e.g., https://cloud.example.com).\nNEXTCLOUD_USER: Your Nextcloud username.\nNEXTCLOUD_TOKEN: An App Password (recommended) or your login password."
      },
      {
        "title": "1. Notes (Read/Write)",
        "body": "List, get, create, update, and delete notes.\nAPI: index.php/apps/notes/api/v1/notes"
      },
      {
        "title": "2. Tasks / Todos (Read/Write)",
        "body": "List, create, update, delete, and complete tasks.\nAPI: CalDAV (VTODO)."
      },
      {
        "title": "3. Calendar (Read/Write)",
        "body": "List, create, update, and delete events.\nAPI: CalDAV (VEVENT)."
      },
      {
        "title": "4. Files (Read/Write)",
        "body": "List, search, upload, download, and delete files.\nAPI: WebDAV."
      },
      {
        "title": "5. Contacts (Read/Write)",
        "body": "List, get, create, update, delete, and search contacts.\nAPI: CardDAV."
      },
      {
        "title": "Usage",
        "body": "Run the skill via the bundled script.\n\nnode scripts/nextcloud.js <command> <subcommand> [options]"
      },
      {
        "title": "Notes",
        "body": "notes list\nnotes get --id <id>\nnotes create --title <t> --content <c> [--category <cat>]\nnotes edit --id <id> [--title <t>] [--content <c>] [--category <cat>]\nnotes delete --id <id>"
      },
      {
        "title": "Tasks",
        "body": "tasks list [--calendar <c>]\ntasks create --title <t> [--calendar <c>] [--due <d>] [--priority <p>] [--description <d>]\ntasks edit --uid <u> [--calendar <c>] [--title <t>] [--due <d>] [--priority <p>] [--description <d>]\ntasks delete --uid <u> [--calendar <c>]\ntasks complete --uid <u> [--calendar <c>]"
      },
      {
        "title": "Calendar Events",
        "body": "calendar list [--from <iso>] [--to <iso>] (Defaults to next 7 days)\ncalendar create --summary <s> --start <iso> --end <iso> [--calendar <c>] [--description <d>]\ncalendar edit --uid <u> [--calendar <c>] [--summary <s>] [--start <iso>] [--end <iso>] [--description <d>]\ncalendar delete --uid <u> [--calendar <c>]"
      },
      {
        "title": "Calendars (list available calendars)",
        "body": "calendars list [--type <tasks|events>]"
      },
      {
        "title": "Files",
        "body": "files list [--path <path>]\nfiles search --query <q>\nfiles get --path <path> (download file content)\nfiles upload --path <path> --content <content>\nfiles delete --path <path>"
      },
      {
        "title": "Contacts",
        "body": "contacts list [--addressbook <ab>]\ncontacts get --uid <u> [--addressbook <ab>]\ncontacts search --query <q> [--addressbook <ab>]\ncontacts create --name <n> [--addressbook <ab>] [--email <e>] [--phone <p>] [--organization <o>] [--title <t>] [--note <n>]\ncontacts edit --uid <u> [--addressbook <ab>] [--name <n>] [--email <e>] [--phone <p>] [--organization <o>] [--title <t>] [--note <n>]\ncontacts delete --uid <u> [--addressbook <ab>]"
      },
      {
        "title": "Address Books (list available address books)",
        "body": "addressbooks list"
      },
      {
        "title": "Output Format",
        "body": "All outputs are JSON formatted."
      },
      {
        "title": "Tasks List Output",
        "body": "{\n  \"status\": \"success\",\n  \"data\": [\n    {\n      \"uid\": \"unique-task-id\",\n      \"calendar\": \"Calendar Name\",\n      \"summary\": \"Task title\",\n      \"status\": \"NEEDS-ACTION\",\n      \"due\": \"20260201T153000Z\",\n      \"priority\": 0\n    }\n  ]\n}\n\ndue: CalDAV format date (YYYYMMDDTHHmmssZ) or null\npriority: 0-9 (0 = undefined, 1 = highest, 9 = lowest) or null"
      },
      {
        "title": "Calendar Events List Output",
        "body": "{\n  \"status\": \"success\",\n  \"data\": [\n    {\n      \"uid\": \"unique-event-id\",\n      \"calendar\": \"Calendar Name\",\n      \"summary\": \"Event title\",\n      \"start\": \"20260205T100000Z\",\n      \"end\": \"20260205T110000Z\"\n    }\n  ]\n}"
      },
      {
        "title": "Contacts List Output",
        "body": "{\n  \"status\": \"success\",\n  \"data\": [\n    {\n      \"uid\": \"unique-contact-id\",\n      \"addressBook\": \"Address Book Name\",\n      \"fullName\": \"John Doe\",\n      \"name\": \"Doe;John;;;\",\n      \"phones\": [\"+1234567890\"],\n      \"emails\": [\"john@example.com\"],\n      \"organization\": \"ACME Inc\",\n      \"title\": \"Developer\",\n      \"note\": \"Met at conference\"\n    }\n  ]\n}\n\nphones: Array of phone numbers or null\nemails: Array of email addresses or null\nname: Structured name in vCard format (Last;First;Middle;Prefix;Suffix)"
      },
      {
        "title": "General Format",
        "body": "{\n  \"status\": \"success\",\n  \"data\": [ ... ]\n}\n\nor\n\n{\n  \"status\": \"error\",\n  \"message\": \"Error description\"\n}"
      },
      {
        "title": "Agent Behavior: Default Calendar Selection",
        "body": "When creating tasks or calendar events, if the user does not specify a calendar:\n\nFirst time (no default set):\n\nRun calendars list --type tasks (for tasks) or calendars list --type events (for events)\nAsk the user which calendar to use from the list\nAsk if they want to set it as the default for future operations\nRemember their choice in memory\n\n\n\nIf user sets a default:\n\nRemember default_task_calendar and/or default_event_calendar\nUse automatically for subsequent operations without asking\n\n\n\nIf user declines to set a default:\n\nAsk again next time they create a task/event without specifying a calendar\n\n\n\nUser can always override:\n\nExplicitly specifying --calendar always takes precedence over the default"
      },
      {
        "title": "Memory Keys",
        "body": "default_task_calendar: Default calendar name for tasks (VTODO)\ndefault_event_calendar: Default calendar name for events (VEVENT)"
      },
      {
        "title": "Agent Behavior: Default Address Book Selection",
        "body": "When creating contacts, if the user does not specify an address book:\n\nFirst time (no default set):\n\nRun addressbooks list\nAsk the user which address book to use from the list\nAsk if they want to set it as the default for future operations\nRemember their choice in memory\n\n\n\nIf user sets a default:\n\nRemember default_addressbook\nUse automatically for subsequent operations without asking\n\n\n\nIf user declines to set a default:\n\nAsk again next time they create a contact without specifying an address book\n\n\n\nUser can always override:\n\nExplicitly specifying --addressbook always takes precedence over the default"
      },
      {
        "title": "Memory Keys",
        "body": "default_addressbook: Default address book name for contacts"
      },
      {
        "title": "Agent Behavior: Presenting Information",
        "body": "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."
      },
      {
        "title": "General Guidelines",
        "body": "Use emojis to make output scannable and friendly\nDo NOT use markdown formatting (no bold, italic, code, tables, or lists with - or *)\nUse plain text with line breaks for structure\nConvert technical formats (like CalDAV dates) to human-readable formats\nGroup related items logically"
      },
      {
        "title": "Emoji Reference",
        "body": "Tasks: ✅ (completed), ⬜ (pending), 🔴 (high priority), 🟡 (medium), 🟢 (low)\nCalendar: 📅 (event), ⏰ (time), 📍 (location)\nNotes: 📝 (note), 📁 (category)\nFiles: 📄 (file), 📂 (folder), 💾 (size)\nContacts: 👤 (person), 📧 (email), 📱 (phone), 🏢 (organization)\nStatus: ✨ (created), ✏️ (updated), 🗑️ (deleted), ❌ (error)"
      },
      {
        "title": "Example Presentations",
        "body": "Tasks:\n\n📋 Your Tasks\n\n⬜ 🔴 Buy groceries — Due: Tomorrow 3:30 PM\n⬜ 🟡 Review PR #42 — Due: Feb 5\n✅ Send email to client\n\nCalendar Events:\n\n📅 Upcoming Events\n\n🗓️ Team Standup\n   ⏰ Mon, Feb 3 • 10:00 AM - 10:30 AM\n   📍 Zoom\n\n🗓️ Project Review\n   ⏰ Wed, Feb 5 • 2:00 PM - 3:00 PM\n\nContacts:\n\n👤 John Doe\n   📧 john@example.com\n   📱 +1 234 567 890\n   🏢 ACME Inc — Developer\n\nFiles:\n\n📂 Documents/\n   📄 report.pdf (2.3 MB)\n   📄 notes.txt (4 KB)\n   📂 Archive/"
      },
      {
        "title": "Date/Time Formatting",
        "body": "Convert CalDAV format 20260205T100000Z to readable format like Wed, Feb 5 • 10:00 AM\nShow relative dates when helpful: \"Tomorrow\", \"Next Monday\", \"In 3 days\"\nUse the user's local timezone when possible"
      }
    ],
    "body": "OpenClaw Nextcloud Skill\n\nThis skill provides integration with a Nextcloud instance. It supports access to Notes, Tasks (Todos), Calendars, Files, and Contacts.\n\nConfiguration\n\nThe skill requires the following environment variables:\n\nNEXTCLOUD_URL: The base URL of your Nextcloud instance (e.g., https://cloud.example.com).\nNEXTCLOUD_USER: Your Nextcloud username.\nNEXTCLOUD_TOKEN: An App Password (recommended) or your login password.\nFeatures\n1. Notes (Read/Write)\nList, get, create, update, and delete notes.\nAPI: index.php/apps/notes/api/v1/notes\n2. Tasks / Todos (Read/Write)\nList, create, update, delete, and complete tasks.\nAPI: CalDAV (VTODO).\n3. Calendar (Read/Write)\nList, create, update, and delete events.\nAPI: CalDAV (VEVENT).\n4. Files (Read/Write)\nList, search, upload, download, and delete files.\nAPI: WebDAV.\n5. Contacts (Read/Write)\nList, get, create, update, delete, and search contacts.\nAPI: CardDAV.\nUsage\n\nRun the skill via the bundled script.\n\nnode scripts/nextcloud.js <command> <subcommand> [options]\n\nCommands\nNotes\nnotes list\nnotes get --id <id>\nnotes create --title <t> --content <c> [--category <cat>]\nnotes edit --id <id> [--title <t>] [--content <c>] [--category <cat>]\nnotes delete --id <id>\nTasks\ntasks list [--calendar <c>]\ntasks create --title <t> [--calendar <c>] [--due <d>] [--priority <p>] [--description <d>]\ntasks edit --uid <u> [--calendar <c>] [--title <t>] [--due <d>] [--priority <p>] [--description <d>]\ntasks delete --uid <u> [--calendar <c>]\ntasks complete --uid <u> [--calendar <c>]\nCalendar Events\ncalendar list [--from <iso>] [--to <iso>] (Defaults to next 7 days)\ncalendar create --summary <s> --start <iso> --end <iso> [--calendar <c>] [--description <d>]\ncalendar edit --uid <u> [--calendar <c>] [--summary <s>] [--start <iso>] [--end <iso>] [--description <d>]\ncalendar delete --uid <u> [--calendar <c>]\nCalendars (list available calendars)\ncalendars list [--type <tasks|events>]\nFiles\nfiles list [--path <path>]\nfiles search --query <q>\nfiles get --path <path> (download file content)\nfiles upload --path <path> --content <content>\nfiles delete --path <path>\nContacts\ncontacts list [--addressbook <ab>]\ncontacts get --uid <u> [--addressbook <ab>]\ncontacts search --query <q> [--addressbook <ab>]\ncontacts create --name <n> [--addressbook <ab>] [--email <e>] [--phone <p>] [--organization <o>] [--title <t>] [--note <n>]\ncontacts edit --uid <u> [--addressbook <ab>] [--name <n>] [--email <e>] [--phone <p>] [--organization <o>] [--title <t>] [--note <n>]\ncontacts delete --uid <u> [--addressbook <ab>]\nAddress Books (list available address books)\naddressbooks list\nOutput Format\n\nAll outputs are JSON formatted.\n\nTasks List Output\n{\n  \"status\": \"success\",\n  \"data\": [\n    {\n      \"uid\": \"unique-task-id\",\n      \"calendar\": \"Calendar Name\",\n      \"summary\": \"Task title\",\n      \"status\": \"NEEDS-ACTION\",\n      \"due\": \"20260201T153000Z\",\n      \"priority\": 0\n    }\n  ]\n}\n\ndue: CalDAV format date (YYYYMMDDTHHmmssZ) or null\npriority: 0-9 (0 = undefined, 1 = highest, 9 = lowest) or null\nCalendar Events List Output\n{\n  \"status\": \"success\",\n  \"data\": [\n    {\n      \"uid\": \"unique-event-id\",\n      \"calendar\": \"Calendar Name\",\n      \"summary\": \"Event title\",\n      \"start\": \"20260205T100000Z\",\n      \"end\": \"20260205T110000Z\"\n    }\n  ]\n}\n\nContacts List Output\n{\n  \"status\": \"success\",\n  \"data\": [\n    {\n      \"uid\": \"unique-contact-id\",\n      \"addressBook\": \"Address Book Name\",\n      \"fullName\": \"John Doe\",\n      \"name\": \"Doe;John;;;\",\n      \"phones\": [\"+1234567890\"],\n      \"emails\": [\"john@example.com\"],\n      \"organization\": \"ACME Inc\",\n      \"title\": \"Developer\",\n      \"note\": \"Met at conference\"\n    }\n  ]\n}\n\nphones: Array of phone numbers or null\nemails: Array of email addresses or null\nname: Structured name in vCard format (Last;First;Middle;Prefix;Suffix)\nGeneral Format\n{\n  \"status\": \"success\",\n  \"data\": [ ... ]\n}\n\n\nor\n\n{\n  \"status\": \"error\",\n  \"message\": \"Error description\"\n}\n\nAgent Behavior: Default Calendar Selection\n\nWhen creating tasks or calendar events, if the user does not specify a calendar:\n\nFirst time (no default set):\n\nRun calendars list --type tasks (for tasks) or calendars list --type events (for events)\nAsk the user which calendar to use from the list\nAsk if they want to set it as the default for future operations\nRemember their choice in memory\n\nIf user sets a default:\n\nRemember default_task_calendar and/or default_event_calendar\nUse automatically for subsequent operations without asking\n\nIf user declines to set a default:\n\nAsk again next time they create a task/event without specifying a calendar\n\nUser can always override:\n\nExplicitly specifying --calendar always takes precedence over the default\nMemory Keys\ndefault_task_calendar: Default calendar name for tasks (VTODO)\ndefault_event_calendar: Default calendar name for events (VEVENT)\nAgent Behavior: Default Address Book Selection\n\nWhen creating contacts, if the user does not specify an address book:\n\nFirst time (no default set):\n\nRun addressbooks list\nAsk the user which address book to use from the list\nAsk if they want to set it as the default for future operations\nRemember their choice in memory\n\nIf user sets a default:\n\nRemember default_addressbook\nUse automatically for subsequent operations without asking\n\nIf user declines to set a default:\n\nAsk again next time they create a contact without specifying an address book\n\nUser can always override:\n\nExplicitly specifying --addressbook always takes precedence over the default\nMemory Keys\ndefault_addressbook: Default address book name for contacts\nAgent Behavior: Presenting Information\n\nWhen 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.\n\nGeneral Guidelines\nUse emojis to make output scannable and friendly\nDo NOT use markdown formatting (no bold, italic, code, tables, or lists with - or *)\nUse plain text with line breaks for structure\nConvert technical formats (like CalDAV dates) to human-readable formats\nGroup related items logically\nEmoji Reference\n\nTasks: ✅ (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)\n\nExample Presentations\n\nTasks:\n\n📋 Your Tasks\n\n⬜ 🔴 Buy groceries — Due: Tomorrow 3:30 PM\n⬜ 🟡 Review PR #42 — Due: Feb 5\n✅ Send email to client\n\n\nCalendar Events:\n\n📅 Upcoming Events\n\n🗓️ Team Standup\n   ⏰ Mon, Feb 3 • 10:00 AM - 10:30 AM\n   📍 Zoom\n\n🗓️ Project Review\n   ⏰ Wed, Feb 5 • 2:00 PM - 3:00 PM\n\n\nContacts:\n\n👤 John Doe\n   📧 john@example.com\n   📱 +1 234 567 890\n   🏢 ACME Inc — Developer\n\n\nFiles:\n\n📂 Documents/\n   📄 report.pdf (2.3 MB)\n   📄 notes.txt (4 KB)\n   📂 Archive/\n\nDate/Time Formatting\n\nConvert 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"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/keithvassallomt/openclaw-nextcloud",
    "publisherUrl": "https://clawhub.ai/keithvassallomt/openclaw-nextcloud",
    "owner": "keithvassallomt",
    "version": "0.1.3",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/openclaw-nextcloud",
    "downloadUrl": "https://openagent3.xyz/downloads/openclaw-nextcloud",
    "agentUrl": "https://openagent3.xyz/skills/openclaw-nextcloud/agent",
    "manifestUrl": "https://openagent3.xyz/skills/openclaw-nextcloud/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/openclaw-nextcloud/agent.md"
  }
}