{
  "schemaVersion": "1.0",
  "item": {
    "slug": "caldav-cli",
    "name": "Caldav Cli",
    "source": "tencent",
    "type": "skill",
    "category": "效率提升",
    "sourceUrl": "https://clawhub.ai/cyberash-dev/caldav-cli",
    "canonicalUrl": "https://clawhub.ai/cyberash-dev/caldav-cli",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/caldav-cli",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=caldav-cli",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "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",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-23T16:43:11.935Z",
      "expiresAt": "2026-04-30T16:43:11.935Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
        "contentDisposition": "attachment; filename=\"4claw-imageboard-1.0.1.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/caldav-cli"
    },
    "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/caldav-cli",
    "agentPageUrl": "https://openagent3.xyz/skills/caldav-cli/agent",
    "manifestUrl": "https://openagent3.xyz/skills/caldav-cli/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/caldav-cli/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": "caldav-cli",
        "body": "A CalDAV CLI client. Manages multiple accounts with secure OS keychain storage. Supports iCloud, Google (OAuth2), Yandex and any custom CalDAV server."
      },
      {
        "title": "Installation",
        "body": "Requires Node.js >= 18.\n\nnpm install -g caldav-cli\n\nAfter installation the caldav-cli command is available globally."
      },
      {
        "title": "Quick Start",
        "body": "caldav-cli account add          # Interactive wizard: pick provider, enter credentials\ncaldav-cli events list          # Show events for the next 7 days\ncaldav-cli events create        # Interactive wizard: create a new event"
      },
      {
        "title": "Account Management",
        "body": "Add account (interactive wizard — prompts for provider, credentials, tests connection):\n\ncaldav-cli account add\n\nList configured accounts:\n\ncaldav-cli account list\n\nRemove an account:\n\ncaldav-cli account remove <name>"
      },
      {
        "title": "View Events",
        "body": "caldav-cli events list                           # Next 7 days (default)\ncaldav-cli events list --from 2026-02-10 --to 2026-02-20\ncaldav-cli events list -a work                   # Specific account\ncaldav-cli events list -c \"Team Calendar\"        # Filter by calendar name\ncaldav-cli events list -a work -c Personal --from 2026-03-01 --to 2026-03-31\n\nJSON output (for scripting):\n\ncaldav-cli events list --json\ncaldav-cli events list --json --from 2026-02-10 --to 2026-02-20"
      },
      {
        "title": "Create Events",
        "body": "Interactive wizard (prompts for all fields):\n\ncaldav-cli events create\n\nNon-interactive (all options via flags):\n\ncaldav-cli events create \\\n  --title \"Team standup\" \\\n  --start \"2026-02-10T10:00\" \\\n  --end \"2026-02-10T10:30\" \\\n  --account work \\\n  --calendar \"Team Calendar\" \\\n  --description \"Daily sync\" \\\n  --location \"Room 42\"\n\nPartial flags (wizard prompts for the rest):\n\ncaldav-cli events create --title \"Lunch\" --account work\n\nJSON output after creation:\n\ncaldav-cli events create --json --title \"Event\" --start \"2026-02-10T10:00\" --end \"2026-02-10T11:00\""
      },
      {
        "title": "Supported Providers",
        "body": "ProviderAuthServer URLApple iCloudBasic (app-specific password)https://caldav.icloud.comGoogle CalendarOAuth2 (Client ID + Secret)https://apidata.googleusercontent.com/caldav/v2Yandex CalendarBasic (app password)https://caldav.yandex.ruCustomBasicUser provides URL"
      },
      {
        "title": "Google Calendar Setup",
        "body": "Google requires OAuth2. Before running caldav-cli account add:\n\nGo to https://console.cloud.google.com/\nCreate a project, enable CalDAV API\nCreate OAuth client ID (Desktop app type)\nNote the Client ID and Client Secret\n\nThe wizard will ask for these, then open a browser for authorization. The refresh token is stored securely in the OS keychain."
      },
      {
        "title": "Data Storage",
        "body": "Passwords, OAuth2 refresh tokens, and OAuth2 client credentials (Client ID, Client Secret, Token URL): OS keychain (macOS Keychain, Linux libsecret, Windows Credential Vault) via @napi-rs/keyring. Never written to disk in plaintext.\nAccount metadata (name, provider ID, username, server URL): ~/.config/caldav-cli/config.json (file permissions 0600).\n\nNo secrets are stored on disk. Existing installations that stored OAuth2 client credentials in config.json are automatically migrated to the keychain on first run."
      },
      {
        "title": "events list",
        "body": "FlagShortDescriptionDefault--account <name>-aAccount namedefault account--from <date>Start date (YYYY-MM-DD)today--to <date>End date (YYYY-MM-DD)today + 7 days--calendar <name>-cFilter by calendar nameall calendars--jsonOutput as JSONfalse"
      },
      {
        "title": "events create",
        "body": "FlagShortDescription--title <title>-tEvent title--start <datetime>-sStart (YYYY-MM-DDTHH:mm)--end <datetime>-eEnd (YYYY-MM-DDTHH:mm)--account <name>-aAccount name--calendar <name>-cCalendar name--description <text>-dEvent description--location <text>-lEvent location--jsonOutput as JSON\n\nAll events create flags are optional. Omitted values trigger interactive prompts."
      }
    ],
    "body": "caldav-cli\n\nA CalDAV CLI client. Manages multiple accounts with secure OS keychain storage. Supports iCloud, Google (OAuth2), Yandex and any custom CalDAV server.\n\nInstallation\n\nRequires Node.js >= 18.\n\nnpm install -g caldav-cli\n\n\nAfter installation the caldav-cli command is available globally.\n\nQuick Start\ncaldav-cli account add          # Interactive wizard: pick provider, enter credentials\ncaldav-cli events list          # Show events for the next 7 days\ncaldav-cli events create        # Interactive wizard: create a new event\n\nAccount Management\n\nAdd account (interactive wizard — prompts for provider, credentials, tests connection):\n\ncaldav-cli account add\n\n\nList configured accounts:\n\ncaldav-cli account list\n\n\nRemove an account:\n\ncaldav-cli account remove <name>\n\nView Events\ncaldav-cli events list                           # Next 7 days (default)\ncaldav-cli events list --from 2026-02-10 --to 2026-02-20\ncaldav-cli events list -a work                   # Specific account\ncaldav-cli events list -c \"Team Calendar\"        # Filter by calendar name\ncaldav-cli events list -a work -c Personal --from 2026-03-01 --to 2026-03-31\n\n\nJSON output (for scripting):\n\ncaldav-cli events list --json\ncaldav-cli events list --json --from 2026-02-10 --to 2026-02-20\n\nCreate Events\n\nInteractive wizard (prompts for all fields):\n\ncaldav-cli events create\n\n\nNon-interactive (all options via flags):\n\ncaldav-cli events create \\\n  --title \"Team standup\" \\\n  --start \"2026-02-10T10:00\" \\\n  --end \"2026-02-10T10:30\" \\\n  --account work \\\n  --calendar \"Team Calendar\" \\\n  --description \"Daily sync\" \\\n  --location \"Room 42\"\n\n\nPartial flags (wizard prompts for the rest):\n\ncaldav-cli events create --title \"Lunch\" --account work\n\n\nJSON output after creation:\n\ncaldav-cli events create --json --title \"Event\" --start \"2026-02-10T10:00\" --end \"2026-02-10T11:00\"\n\nSupported Providers\nProvider\tAuth\tServer URL\nApple iCloud\tBasic (app-specific password)\thttps://caldav.icloud.com\nGoogle Calendar\tOAuth2 (Client ID + Secret)\thttps://apidata.googleusercontent.com/caldav/v2\nYandex Calendar\tBasic (app password)\thttps://caldav.yandex.ru\nCustom\tBasic\tUser provides URL\nGoogle Calendar Setup\n\nGoogle requires OAuth2. Before running caldav-cli account add:\n\nGo to https://console.cloud.google.com/\nCreate a project, enable CalDAV API\nCreate OAuth client ID (Desktop app type)\nNote the Client ID and Client Secret\n\nThe wizard will ask for these, then open a browser for authorization. The refresh token is stored securely in the OS keychain.\n\nData Storage\nPasswords, OAuth2 refresh tokens, and OAuth2 client credentials (Client ID, Client Secret, Token URL): OS keychain (macOS Keychain, Linux libsecret, Windows Credential Vault) via @napi-rs/keyring. Never written to disk in plaintext.\nAccount metadata (name, provider ID, username, server URL): ~/.config/caldav-cli/config.json (file permissions 0600).\n\nNo secrets are stored on disk. Existing installations that stored OAuth2 client credentials in config.json are automatically migrated to the keychain on first run.\n\nFlag Reference\nevents list\nFlag\tShort\tDescription\tDefault\n--account <name>\t-a\tAccount name\tdefault account\n--from <date>\t\tStart date (YYYY-MM-DD)\ttoday\n--to <date>\t\tEnd date (YYYY-MM-DD)\ttoday + 7 days\n--calendar <name>\t-c\tFilter by calendar name\tall calendars\n--json\t\tOutput as JSON\tfalse\nevents create\nFlag\tShort\tDescription\n--title <title>\t-t\tEvent title\n--start <datetime>\t-s\tStart (YYYY-MM-DDTHH:mm)\n--end <datetime>\t-e\tEnd (YYYY-MM-DDTHH:mm)\n--account <name>\t-a\tAccount name\n--calendar <name>\t-c\tCalendar name\n--description <text>\t-d\tEvent description\n--location <text>\t-l\tEvent location\n--json\t\tOutput as JSON\n\nAll events create flags are optional. Omitted values trigger interactive prompts."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/cyberash-dev/caldav-cli",
    "publisherUrl": "https://clawhub.ai/cyberash-dev/caldav-cli",
    "owner": "cyberash-dev",
    "version": "0.1.5",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/caldav-cli",
    "downloadUrl": "https://openagent3.xyz/downloads/caldav-cli",
    "agentUrl": "https://openagent3.xyz/skills/caldav-cli/agent",
    "manifestUrl": "https://openagent3.xyz/skills/caldav-cli/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/caldav-cli/agent.md"
  }
}