{
  "schemaVersion": "1.0",
  "item": {
    "slug": "icloud-caldav",
    "name": "iCloud CalDav",
    "source": "tencent",
    "type": "skill",
    "category": "效率提升",
    "sourceUrl": "https://clawhub.ai/samuelhe52/icloud-caldav",
    "canonicalUrl": "https://clawhub.ai/samuelhe52/icloud-caldav",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/icloud-caldav",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=icloud-caldav",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "references/caldav-protocol.md",
      "scripts/caldav.py",
      "SKILL.md"
    ],
    "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",
      "slug": "icloud-caldav",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-01T20:56:21.226Z",
      "expiresAt": "2026-05-08T20:56:21.226Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=icloud-caldav",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=icloud-caldav",
        "contentDisposition": "attachment; filename=\"icloud-caldav-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "icloud-caldav"
      },
      "scope": "item",
      "summary": "Item download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this item.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/icloud-caldav"
    },
    "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/icloud-caldav",
    "agentPageUrl": "https://openagent3.xyz/skills/icloud-caldav/agent",
    "manifestUrl": "https://openagent3.xyz/skills/icloud-caldav/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/icloud-caldav/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": "iCloud CalDAV — Direct Calendar Access",
        "body": "Manage iCloud Calendar directly via CalDAV protocol. No third-party services, no data leaves your machine except to Apple's servers."
      },
      {
        "title": "When to Use",
        "body": "Activate when the user wants to:\n\nCheck their calendar or upcoming events\nCreate new calendar events\nDelete existing events\nList available calendars\n\nDo NOT use for:\n\nReminders (use apple-reminders skill if available)\nContacts (CalDAV is calendar-only)\nNon-iCloud calendars (Google, Outlook, etc.)"
      },
      {
        "title": "Prerequisites",
        "body": "Required credentials:\n\nAPPLE_ID — Your Apple ID email address\nAPPLE_APP_PASSWORD — An app-specific password (NOT your regular Apple ID password)\n\nTo generate app-specific password:\n\nGo to appleid.apple.com\nSign in → Sign-In and Security → App-Specific Passwords\nGenerate a new password\nUse this password (not your regular one)"
      },
      {
        "title": "Quick Start",
        "body": "# Set credentials\nexport APPLE_ID=\"your.email@icloud.com\"\nexport APPLE_APP_PASSWORD=\"xxxx-xxxx-xxxx-xxxx\"\n\n# List calendars\n./scripts/caldav.py list-calendars\n\n# List events for next 7 days\n./scripts/caldav.py list-events --days 7\n\n# Create an event\n./scripts/caldav.py create-event \\\n  --title \"Team Meeting\" \\\n  --start \"2025-07-23T14:00:00\" \\\n  --duration 60 \\\n  --calendar \"Work\""
      },
      {
        "title": "Available Operations",
        "body": "OperationCommandDescriptionList calendarslist-calendarsShow all iCloud calendarsList eventslist-eventsEvents in a date rangeCreate eventcreate-eventAdd new calendar eventDelete eventdelete-eventRemove event by filename or UID"
      },
      {
        "title": "Creating Events",
        "body": "# Basic event\n./scripts/caldav.py create-event \\\n  --title \"Dentist Appointment\" \\\n  --start \"2025-07-25T09:30:00\" \\\n  --duration 30\n\n# With location and description\n./scripts/caldav.py create-event \\\n  --title \"Project Review\" \\\n  --start \"2025-07-26T14:00:00\" \\\n  --duration 60 \\\n  --location \"Conference Room B\" \\\n  --description \"Q3 planning review\" \\\n  --calendar \"Work\"\n\n# All-day event\n./scripts/caldav.py create-event \\\n  --title \"Vacation\" \\\n  --start \"2025-08-01\" \\\n  --all-day"
      },
      {
        "title": "Batch Operations",
        "body": "Note: CalDAV does not support native batch operations. To create multiple events, run the script multiple times:\n\n# Create multiple events by running the command multiple times\n./scripts/caldav.py create-event --title \"Meeting 1\" --start \"2025-07-26T10:00:00\" --duration 60\n./scripts/caldav.py create-event --title \"Meeting 2\" --start \"2025-07-26T14:00:00\" --duration 60\n./scripts/caldav.py create-event --title \"Meeting 3\" --start \"2025-07-27T09:00:00\" --duration 60\n\niCloud handles rapid sequential requests well, but there is no single API call for creating multiple events."
      },
      {
        "title": "Deleting Events",
        "body": "# Delete by filename\n./scripts/caldav.py delete-event \\\n  --file \"event-name.ics\" \\\n  --calendar \"Calendar\"\n\n# Delete by UID (searches calendar for matching event)\n./scripts/caldav.py delete-event \\\n  --uid \"openclaw-xxx@openclaw.local\" \\\n  --calendar \"Calendar\"\n\nWarning: Deletions are permanent. iCloud may have its own backup, but standard CalDAV DELETE immediately removes the event."
      },
      {
        "title": "Date/Time Formats",
        "body": "ISO 8601: 2025-07-23T14:00:00 (assumes local timezone if none specified)\nWith timezone: 2025-07-23T14:00:00+08:00\nAll-day: 2025-07-23 (date only)"
      },
      {
        "title": "Security Notes",
        "body": "Credentials are read from environment variables only\nNo credentials are logged or stored\nAll communication is HTTPS to caldav.icloud.com\nApp-specific passwords can be revoked anytime at appleid.apple.com"
      },
      {
        "title": "Error Handling",
        "body": "ErrorCauseSolution401 UnauthorizedBad credentialsCheck APPLE_ID and APPLE_APP_PASSWORD404 Not FoundCalendar/event doesn't existList calendars/events first403 ForbiddenRead-only calendarTry a different calendarTimeoutNetwork issueRetry the request"
      },
      {
        "title": "References",
        "body": "See references/caldav-protocol.md for CalDAV implementation details\nSee references/icloud-endpoints.md for iCloud-specific endpoints"
      }
    ],
    "body": "iCloud CalDAV — Direct Calendar Access\n\nManage iCloud Calendar directly via CalDAV protocol. No third-party services, no data leaves your machine except to Apple's servers.\n\nWhen to Use\n\nActivate when the user wants to:\n\nCheck their calendar or upcoming events\nCreate new calendar events\nDelete existing events\nList available calendars\n\nDo NOT use for:\n\nReminders (use apple-reminders skill if available)\nContacts (CalDAV is calendar-only)\nNon-iCloud calendars (Google, Outlook, etc.)\nPrerequisites\n\nRequired credentials:\n\nAPPLE_ID — Your Apple ID email address\nAPPLE_APP_PASSWORD — An app-specific password (NOT your regular Apple ID password)\n\nTo generate app-specific password:\n\nGo to appleid.apple.com\nSign in → Sign-In and Security → App-Specific Passwords\nGenerate a new password\nUse this password (not your regular one)\nQuick Start\n# Set credentials\nexport APPLE_ID=\"your.email@icloud.com\"\nexport APPLE_APP_PASSWORD=\"xxxx-xxxx-xxxx-xxxx\"\n\n# List calendars\n./scripts/caldav.py list-calendars\n\n# List events for next 7 days\n./scripts/caldav.py list-events --days 7\n\n# Create an event\n./scripts/caldav.py create-event \\\n  --title \"Team Meeting\" \\\n  --start \"2025-07-23T14:00:00\" \\\n  --duration 60 \\\n  --calendar \"Work\"\n\nAvailable Operations\nOperation\tCommand\tDescription\nList calendars\tlist-calendars\tShow all iCloud calendars\nList events\tlist-events\tEvents in a date range\nCreate event\tcreate-event\tAdd new calendar event\nDelete event\tdelete-event\tRemove event by filename or UID\nWorkflow Patterns\nCreating Events\n# Basic event\n./scripts/caldav.py create-event \\\n  --title \"Dentist Appointment\" \\\n  --start \"2025-07-25T09:30:00\" \\\n  --duration 30\n\n# With location and description\n./scripts/caldav.py create-event \\\n  --title \"Project Review\" \\\n  --start \"2025-07-26T14:00:00\" \\\n  --duration 60 \\\n  --location \"Conference Room B\" \\\n  --description \"Q3 planning review\" \\\n  --calendar \"Work\"\n\n# All-day event\n./scripts/caldav.py create-event \\\n  --title \"Vacation\" \\\n  --start \"2025-08-01\" \\\n  --all-day\n\nBatch Operations\n\nNote: CalDAV does not support native batch operations. To create multiple events, run the script multiple times:\n\n# Create multiple events by running the command multiple times\n./scripts/caldav.py create-event --title \"Meeting 1\" --start \"2025-07-26T10:00:00\" --duration 60\n./scripts/caldav.py create-event --title \"Meeting 2\" --start \"2025-07-26T14:00:00\" --duration 60\n./scripts/caldav.py create-event --title \"Meeting 3\" --start \"2025-07-27T09:00:00\" --duration 60\n\n\niCloud handles rapid sequential requests well, but there is no single API call for creating multiple events.\n\nDeleting Events\n# Delete by filename\n./scripts/caldav.py delete-event \\\n  --file \"event-name.ics\" \\\n  --calendar \"Calendar\"\n\n# Delete by UID (searches calendar for matching event)\n./scripts/caldav.py delete-event \\\n  --uid \"openclaw-xxx@openclaw.local\" \\\n  --calendar \"Calendar\"\n\n\nWarning: Deletions are permanent. iCloud may have its own backup, but standard CalDAV DELETE immediately removes the event.\n\nDate/Time Formats\nISO 8601: 2025-07-23T14:00:00 (assumes local timezone if none specified)\nWith timezone: 2025-07-23T14:00:00+08:00\nAll-day: 2025-07-23 (date only)\nSecurity Notes\nCredentials are read from environment variables only\nNo credentials are logged or stored\nAll communication is HTTPS to caldav.icloud.com\nApp-specific passwords can be revoked anytime at appleid.apple.com\nError Handling\nError\tCause\tSolution\n401 Unauthorized\tBad credentials\tCheck APPLE_ID and APPLE_APP_PASSWORD\n404 Not Found\tCalendar/event doesn't exist\tList calendars/events first\n403 Forbidden\tRead-only calendar\tTry a different calendar\nTimeout\tNetwork issue\tRetry the request\nReferences\nSee references/caldav-protocol.md for CalDAV implementation details\nSee references/icloud-endpoints.md for iCloud-specific endpoints"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/samuelhe52/icloud-caldav",
    "publisherUrl": "https://clawhub.ai/samuelhe52/icloud-caldav",
    "owner": "samuelhe52",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/icloud-caldav",
    "downloadUrl": "https://openagent3.xyz/downloads/icloud-caldav",
    "agentUrl": "https://openagent3.xyz/skills/icloud-caldav/agent",
    "manifestUrl": "https://openagent3.xyz/skills/icloud-caldav/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/icloud-caldav/agent.md"
  }
}