{
  "schemaVersion": "1.0",
  "item": {
    "slug": "dingtalk-calendar",
    "name": "钉钉日程管理",
    "source": "tencent",
    "type": "skill",
    "category": "效率提升",
    "sourceUrl": "https://clawhub.ai/JavaZhengwu/dingtalk-calendar",
    "canonicalUrl": "https://clawhub.ai/JavaZhengwu/dingtalk-calendar",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/dingtalk-calendar",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=dingtalk-calendar",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "CHANGELOG.md",
      "SKILL.md",
      "package.json"
    ],
    "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/dingtalk-calendar"
    },
    "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/dingtalk-calendar",
    "agentPageUrl": "https://openagent3.xyz/skills/dingtalk-calendar/agent",
    "manifestUrl": "https://openagent3.xyz/skills/dingtalk-calendar/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/dingtalk-calendar/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": "钉钉日程管理",
        "body": "使用 mcporter CLI 调用钉钉日历 MCP 创建和管理日程。"
      },
      {
        "title": "安装 mcporter CLI",
        "body": "本技能依赖 mcporter 工具。请在终端中手动执行以下命令安装：\n\n# 使用 npm 安装\nnpm install -g mcporter\n\n# 或使用 bun 安装\nbun install -g mcporter\n\n验证安装：\n\nmcporter --version"
      },
      {
        "title": "配置 MCP Server",
        "body": "本技能需要配置两个 MCP 服务：钉钉日历 和 钉钉通讯录。\n\n步骤一：获取 Streamable HTTP URL\n\n访问钉钉 MCP 广场：https://mcp.dingtalk.com\n搜索 钉钉日历，点击进入服务详情页\n在页面右侧找到 Streamable HTTP URL，点击复制按钮\n同样的方法，获取 钉钉通讯录 的 URL\n\n步骤二：使用 mcporter 配置 MCP 服务\n\n# 添加钉钉日历 MCP 服务\nmcporter config add dingtalk-calendar --url \"这里粘贴钉钉日历的URL\"\n\n# 添加钉钉通讯录 MCP 服务  \nmcporter config add dingtalk-contacts --url \"这里粘贴钉钉通讯录的URL\"\n\n步骤三：验证配置\n\n# 查看已配置的服务\nmcporter config list\n\n# 测试连接（列出可用工具）\nmcporter call dingtalk-calendar list_tools --output json\nmcporter call dingtalk-contacts list_tools --output json"
      },
      {
        "title": "基本命令模式",
        "body": "所有操作通过 mcporter call dingtalk-calendar <tool> 执行：\n\n# 创建日程\nmcporter call dingtalk-calendar create_calendar_event \\\n  --args '{\"summary\":\"会议\",\"startDateTime\":\"2026-02-28T14:00:00+08:00\",\"endDateTime\":\"2026-02-28T15:00:00+08:00\"}' \\\n  --output json\n\n# 查询日程\nmcporter call dingtalk-calendar list_calendar_events \\\n  --args '{\"startTime\":1738128000000,\"endTime\":1738214400000}' \\\n  --output json\n\n# 查询闲忙\nmcporter call dingtalk-calendar query_busy_status \\\n  --args '{\"userIds\":[\"userId1\"],\"startTime\":1738128000000,\"endTime\":1738214400000}' \\\n  --output json"
      },
      {
        "title": "1. 创建日程",
        "body": "# 基本创建\nmcporter call dingtalk-calendar create_calendar_event \\\n  --args '{\n    \"summary\": \"项目评审会议\",\n    \"startDateTime\": \"2026-02-28T14:00:00+08:00\",\n    \"endDateTime\": \"2026-02-28T15:00:00+08:00\",\n    \"description\": \"讨论 Q1 进度\",\n    \"attendees\": [\"userId1\", \"userId2\"]\n  }' \\\n  --output json\n\n参数说明：\n\n参数必填说明summary✅日程标题（最长 2048 字符）startDateTime✅开始时间（ISO-8601 格式，如 2026-02-28T14:00:00+08:00）endDateTime✅结束时间（ISO-8601 格式）description❌日程描述（最长 5000 字符）attendees❌参与人 userId 列表（最多 500 人）"
      },
      {
        "title": "2. 查询日程列表",
        "body": "# 查询指定时间范围的日程\nmcporter call dingtalk-calendar list_calendar_events \\\n  --args '{\n    \"startTime\": 1738128000000,\n    \"endTime\": 1738214400000\n  }' \\\n  --output json"
      },
      {
        "title": "3. 查询他人闲忙",
        "body": "mcporter call dingtalk-calendar query_busy_status \\\n  --args '{\n    \"userIds\": [\"userId1\", \"userId2\"],\n    \"startTime\": 1738128000000,\n    \"endTime\": 1738214400000\n  }' \\\n  --output json"
      },
      {
        "title": "4. 查询空闲会议室",
        "body": "mcporter call dingtalk-calendar query_available_meeting_room \\\n  --args '{\n    \"startTime\": \"1738128000000\",\n    \"endTime\": \"1738131600000\"\n  }' \\\n  --output json"
      },
      {
        "title": "5. 为日程添加会议室",
        "body": "mcporter call dingtalk-calendar add_meeting_room \\\n  --args '{\n    \"eventId\": \"日程ID\",\n    \"roomIds\": [\"会议室ID1\"]\n  }' \\\n  --output json"
      },
      {
        "title": "6. 更新日程",
        "body": "mcporter call dingtalk-calendar update_calendar_event \\\n  --args '{\n    \"eventId\": \"日程ID\",\n    \"summary\": \"新标题\",\n    \"description\": \"新描述\"\n  }' \\\n  --output json"
      },
      {
        "title": "7. 删除日程",
        "body": "mcporter call dingtalk-calendar delete_calendar_event \\\n  --args '{\"eventId\": \"日程ID\"}' \\\n  --output json"
      },
      {
        "title": "搜索用户",
        "body": "mcporter call dingtalk-contacts search_user_by_key_word \\\n  --args '{\"keyWord\": \"张三\"}' \\\n  --output json"
      },
      {
        "title": "获取用户详情",
        "body": "mcporter call dingtalk-contacts get_user_info_by_user_ids \\\n  --args '{\"user_id_list\": [\"userId1\", \"userId2\"]}' \\\n  --output json"
      },
      {
        "title": "常用时间格式",
        "body": "import time\nfrom datetime import datetime\n\n# 获取当前时间戳（毫秒）\nint(time.time() * 1000)\n\n# 时间戳转 ISO 8601\ndatetime.fromtimestamp(1738128000000 / 1000).strftime(\"%Y-%m-%dT%H:%M:%S+08:00\")\n\n# ISO 8601 转时间戳（毫秒）\nint(datetime.fromisoxt(\"2026-02-28T14:00:00+08:00\").timestamp() * 1000)"
      },
      {
        "title": "创建会议并预订会议室",
        "body": "# 1. 查询14:00-15:00的空闲会议室\nmcporter call dingtalk-calendar query_available_meeting_room \\\n  --args '{\"startTime\":\"1738128000000\",\"endTime\":\"1738131600000\"}' \\\n  --output json\n\n# 2. 创建日程（假设获取到会议室ID: room123）\nmcporter call dingtalk-calendar create_calendar_event \\\n  --args '{\n    \"summary\": \"周会\",\n    \"startDateTime\": \"2026-02-28T14:00:00+08:00\",\n    \"endDateTime\": \"2026-02-28T15:00:00+08:00\"\n  }' \\\n  --output json\n\n# 3. 添加会议室（假设日程ID: event123）\nmcporter call dingtalk-calendar add_meeting_room \\\n  --args '{\"eventId\":\"event123\",\"roomIds\":[\"room123\"]}' \\\n  --output json"
      }
    ],
    "body": "钉钉日程管理\n\n使用 mcporter CLI 调用钉钉日历 MCP 创建和管理日程。\n\n前置要求\n安装 mcporter CLI\n\n本技能依赖 mcporter 工具。请在终端中手动执行以下命令安装：\n\n# 使用 npm 安装\nnpm install -g mcporter\n\n# 或使用 bun 安装\nbun install -g mcporter\n\n\n验证安装：\n\nmcporter --version\n\n配置 MCP Server\n\n本技能需要配置两个 MCP 服务：钉钉日历 和 钉钉通讯录。\n\n步骤一：获取 Streamable HTTP URL\n\n访问钉钉 MCP 广场：https://mcp.dingtalk.com\n搜索 钉钉日历，点击进入服务详情页\n在页面右侧找到 Streamable HTTP URL，点击复制按钮\n同样的方法，获取 钉钉通讯录 的 URL\n\n步骤二：使用 mcporter 配置 MCP 服务\n\n# 添加钉钉日历 MCP 服务\nmcporter config add dingtalk-calendar --url \"这里粘贴钉钉日历的URL\"\n\n# 添加钉钉通讯录 MCP 服务  \nmcporter config add dingtalk-contacts --url \"这里粘贴钉钉通讯录的URL\"\n\n\n步骤三：验证配置\n\n# 查看已配置的服务\nmcporter config list\n\n# 测试连接（列出可用工具）\nmcporter call dingtalk-calendar list_tools --output json\nmcporter call dingtalk-contacts list_tools --output json\n\n基本命令模式\n\n所有操作通过 mcporter call dingtalk-calendar <tool> 执行：\n\n# 创建日程\nmcporter call dingtalk-calendar create_calendar_event \\\n  --args '{\"summary\":\"会议\",\"startDateTime\":\"2026-02-28T14:00:00+08:00\",\"endDateTime\":\"2026-02-28T15:00:00+08:00\"}' \\\n  --output json\n\n# 查询日程\nmcporter call dingtalk-calendar list_calendar_events \\\n  --args '{\"startTime\":1738128000000,\"endTime\":1738214400000}' \\\n  --output json\n\n# 查询闲忙\nmcporter call dingtalk-calendar query_busy_status \\\n  --args '{\"userIds\":[\"userId1\"],\"startTime\":1738128000000,\"endTime\":1738214400000}' \\\n  --output json\n\n核心工具\n1. 创建日程\n# 基本创建\nmcporter call dingtalk-calendar create_calendar_event \\\n  --args '{\n    \"summary\": \"项目评审会议\",\n    \"startDateTime\": \"2026-02-28T14:00:00+08:00\",\n    \"endDateTime\": \"2026-02-28T15:00:00+08:00\",\n    \"description\": \"讨论 Q1 进度\",\n    \"attendees\": [\"userId1\", \"userId2\"]\n  }' \\\n  --output json\n\n\n参数说明：\n\n参数\t必填\t说明\nsummary\t✅\t日程标题（最长 2048 字符）\nstartDateTime\t✅\t开始时间（ISO-8601 格式，如 2026-02-28T14:00:00+08:00）\nendDateTime\t✅\t结束时间（ISO-8601 格式）\ndescription\t❌\t日程描述（最长 5000 字符）\nattendees\t❌\t参与人 userId 列表（最多 500 人）\n2. 查询日程列表\n# 查询指定时间范围的日程\nmcporter call dingtalk-calendar list_calendar_events \\\n  --args '{\n    \"startTime\": 1738128000000,\n    \"endTime\": 1738214400000\n  }' \\\n  --output json\n\n3. 查询他人闲忙\nmcporter call dingtalk-calendar query_busy_status \\\n  --args '{\n    \"userIds\": [\"userId1\", \"userId2\"],\n    \"startTime\": 1738128000000,\n    \"endTime\": 1738214400000\n  }' \\\n  --output json\n\n4. 查询空闲会议室\nmcporter call dingtalk-calendar query_available_meeting_room \\\n  --args '{\n    \"startTime\": \"1738128000000\",\n    \"endTime\": \"1738131600000\"\n  }' \\\n  --output json\n\n5. 为日程添加会议室\nmcporter call dingtalk-calendar add_meeting_room \\\n  --args '{\n    \"eventId\": \"日程ID\",\n    \"roomIds\": [\"会议室ID1\"]\n  }' \\\n  --output json\n\n6. 更新日程\nmcporter call dingtalk-calendar update_calendar_event \\\n  --args '{\n    \"eventId\": \"日程ID\",\n    \"summary\": \"新标题\",\n    \"description\": \"新描述\"\n  }' \\\n  --output json\n\n7. 删除日程\nmcporter call dingtalk-calendar delete_calendar_event \\\n  --args '{\"eventId\": \"日程ID\"}' \\\n  --output json\n\n通讯录工具\n搜索用户\nmcporter call dingtalk-contacts search_user_by_key_word \\\n  --args '{\"keyWord\": \"张三\"}' \\\n  --output json\n\n获取用户详情\nmcporter call dingtalk-contacts get_user_info_by_user_ids \\\n  --args '{\"user_id_list\": [\"userId1\", \"userId2\"]}' \\\n  --output json\n\n常用时间格式\nimport time\nfrom datetime import datetime\n\n# 获取当前时间戳（毫秒）\nint(time.time() * 1000)\n\n# 时间戳转 ISO 8601\ndatetime.fromtimestamp(1738128000000 / 1000).strftime(\"%Y-%m-%dT%H:%M:%S+08:00\")\n\n# ISO 8601 转时间戳（毫秒）\nint(datetime.fromisoxt(\"2026-02-28T14:00:00+08:00\").timestamp() * 1000)\n\n使用示例\n创建会议并预订会议室\n# 1. 查询14:00-15:00的空闲会议室\nmcporter call dingtalk-calendar query_available_meeting_room \\\n  --args '{\"startTime\":\"1738128000000\",\"endTime\":\"1738131600000\"}' \\\n  --output json\n\n# 2. 创建日程（假设获取到会议室ID: room123）\nmcporter call dingtalk-calendar create_calendar_event \\\n  --args '{\n    \"summary\": \"周会\",\n    \"startDateTime\": \"2026-02-28T14:00:00+08:00\",\n    \"endDateTime\": \"2026-02-28T15:00:00+08:00\"\n  }' \\\n  --output json\n\n# 3. 添加会议室（假设日程ID: event123）\nmcporter call dingtalk-calendar add_meeting_room \\\n  --args '{\"eventId\":\"event123\",\"roomIds\":[\"room123\"]}' \\\n  --output json"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/JavaZhengwu/dingtalk-calendar",
    "publisherUrl": "https://clawhub.ai/JavaZhengwu/dingtalk-calendar",
    "owner": "JavaZhengwu",
    "version": "1.0.2",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/dingtalk-calendar",
    "downloadUrl": "https://openagent3.xyz/downloads/dingtalk-calendar",
    "agentUrl": "https://openagent3.xyz/skills/dingtalk-calendar/agent",
    "manifestUrl": "https://openagent3.xyz/skills/dingtalk-calendar/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/dingtalk-calendar/agent.md"
  }
}