Dingtalk Calendar

钉钉日程管理(创建日程、查询闲忙、会议室预订)。使用 mcporter CLI 连接钉钉 MCP server 执行日程管理、日程查询、会议室预订等操作。使用场景:日程创建管理、会议预订、查询他人闲忙、会议室预约等。

MIT-0 · Free to use, modify, and redistribute. No attribution required.
0 · 52 · 0 current installs · 0 all-time installs
MIT-0
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
high confidence
Purpose & Capability
Name/description state the skill uses the mcporter CLI to talk to DingTalk MCP services; the SKILL.md exclusively instructs installing and using mcporter and configuring DingTalk MCP URLs — these are coherent and expected for a calendar/meeting-room management skill.
Instruction Scope
Instructions ask the user to install mcporter and to add two MCP service endpoints (calendar and contacts). The skill does not instruct reading unrelated system files or environment variables. Note: SKILL.md tells the user to paste 'Streamable HTTP URL' values (these URLs likely contain access tokens and are the credentials used by mcporter) but the skill does not itself declare or manage any credentials — this is expected for an instruction-only wrapper but worth awareness.
Install Mechanism
This is an instruction-only skill (no install spec). The README recommends installing mcporter via npm or bun (user-run installation). package.json lists mcporter as a dependency even though there is no automated install step — this is a modest inconsistency but not malicious. The real install risk is from installing mcporter from npm; verify mcporter's trustworthiness before global install.
Credentials
The skill declares no required environment variables or secrets, which matches the bundle. The only credential-like inputs are the MCP 'Streamable HTTP URL's the user must supply to mcporter; those are service-specific and appropriate for this functionality. The skill does not request unrelated credentials or broad environment access.
Persistence & Privilege
always is false and the skill is user-invocable. There is no install-time script or code that would make persistent changes to the agent. All persistent configuration is handled by the mcporter tool (outside the skill), which is expected for this workflow.
Assessment
This skill is an instruction wrapper that expects you to install and configure the third-party mcporter CLI to connect to DingTalk MCP services. Before proceeding: 1) Verify that the mcporter package (and its npm author) are trustworthy — installing any global npm package runs third-party code on your machine. 2) The SKILL.md asks you to copy 'Streamable HTTP URL' values from the DingTalk MCP console — those URLs likely contain tokens/credentials. Treat them like secrets: only paste them into mcporter if you trust the environment, and review what mcporter stores (where it writes config) so you can delete or rotate credentials later. 3) Because the skill is instruction-only and does not itself ship code that exfiltrates data, the primary risk is the external mcporter tool; inspect mcporter's docs/source and prefer least-privilege, scoped service URLs if possible. 4) If you want stronger isolation, install mcporter in a controlled environment (container or VM) rather than globally on your workstation.

Like a lobster shell, security has layers — review code before you run it.

Current versionv2.0.0
Download zip
latestvk97dhnzwfa901c661m2q948a1h83qk82

License

MIT-0
Free to use, modify, and redistribute. No attribution required.

SKILL.md

钉钉日程管理

使用 mcporter CLI 调用钉钉日历 MCP 创建和管理日程。

前置要求

安装 mcporter CLI

本技能依赖 mcporter 工具。请在终端中手动执行以下命令安装:

# 使用 npm 安装
npm install -g mcporter

# 或使用 bun 安装
bun install -g mcporter

验证安装:

mcporter --version

配置 MCP Server

本技能需要配置两个 MCP 服务:钉钉日历钉钉通讯录

步骤一:获取 Streamable HTTP URL

  1. 访问钉钉 MCP 广场:https://mcp.dingtalk.com
  2. 搜索 钉钉日历,点击进入服务详情页
  3. 在页面右侧找到 Streamable HTTP URL,点击复制按钮
  4. 同样的方法,获取 钉钉通讯录 的 URL

步骤二:使用 mcporter 配置 MCP 服务

# 添加钉钉日历 MCP 服务
mcporter config add dingtalk-calendar --url "这里粘贴钉钉日历的URL"

# 添加钉钉通讯录 MCP 服务  
mcporter config add dingtalk-contacts --url "这里粘贴钉钉通讯录的URL"

步骤三:验证配置

# 查看已配置的服务
mcporter config list

# 测试连接(列出可用工具)
mcporter call dingtalk-calendar list_tools --output json
mcporter call dingtalk-contacts list_tools --output json

基本命令模式

所有操作通过 mcporter call dingtalk-calendar <tool> 执行:

# 创建日程
mcporter call dingtalk-calendar create_calendar_event \
  --args '{"summary":"会议","startDateTime":"2026-02-28T14:00:00+08:00","endDateTime":"2026-02-28T15:00:00+08:00"}' \
  --output json

# 查询日程
mcporter call dingtalk-calendar list_calendar_events \
  --args '{"startTime":1738128000000,"endTime":1738214400000}' \
  --output json

# 查询闲忙
mcporter call dingtalk-calendar query_busy_status \
  --args '{"userIds":["userId1"],"startTime":1738128000000,"endTime":1738214400000}' \
  --output json

核心工具

1. 创建日程

# 基本创建
mcporter call dingtalk-calendar create_calendar_event \
  --args '{
    "summary": "项目评审会议",
    "startDateTime": "2026-02-28T14:00:00+08:00",
    "endDateTime": "2026-02-28T15:00:00+08:00",
    "description": "讨论 Q1 进度",
    "attendees": ["userId1", "userId2"]
  }' \
  --output json

参数说明:

参数必填说明
summary日程标题(最长 2048 字符)
startDateTime开始时间(ISO-8601 格式,如 2026-02-28T14:00:00+08:00
endDateTime结束时间(ISO-8601 格式)
description日程描述(最长 5000 字符)
attendees参与人 userId 列表(最多 500 人)

2. 查询日程列表

# 查询指定时间范围的日程
mcporter call dingtalk-calendar list_calendar_events \
  --args '{
    "startTime": 1738128000000,
    "endTime": 1738214400000
  }' \
  --output json

3. 查询他人闲忙

mcporter call dingtalk-calendar query_busy_status \
  --args '{
    "userIds": ["userId1", "userId2"],
    "startTime": 1738128000000,
    "endTime": 1738214400000
  }' \
  --output json

4. 查询空闲会议室

mcporter call dingtalk-calendar query_available_meeting_room \
  --args '{
    "startTime": "1738128000000",
    "endTime": "1738131600000"
  }' \
  --output json

5. 为日程添加会议室

mcporter call dingtalk-calendar add_meeting_room \
  --args '{
    "eventId": "日程ID",
    "roomIds": ["会议室ID1"]
  }' \
  --output json

6. 更新日程

mcporter call dingtalk-calendar update_calendar_event \
  --args '{
    "eventId": "日程ID",
    "summary": "新标题",
    "description": "新描述"
  }' \
  --output json

7. 删除日程

mcporter call dingtalk-calendar delete_calendar_event \
  --args '{"eventId": "日程ID"}' \
  --output json

通讯录工具

搜索用户

mcporter call dingtalk-contacts search_user_by_key_word \
  --args '{"keyWord": "张三"}' \
  --output json

获取用户详情

mcporter call dingtalk-contacts get_user_info_by_user_ids \
  --args '{"user_id_list": ["userId1", "userId2"]}' \
  --output json

常用时间格式

import time
from datetime import datetime

# 获取当前时间戳(毫秒)
int(time.time() * 1000)

# 时间戳转 ISO 8601
datetime.fromtimestamp(1738128000000 / 1000).strftime("%Y-%m-%dT%H:%M:%S+08:00")

# ISO 8601 转时间戳(毫秒)
int(datetime.fromisoxt("2026-02-28T14:00:00+08:00").timestamp() * 1000)

使用示例

创建会议并预订会议室

# 1. 查询14:00-15:00的空闲会议室
mcporter call dingtalk-calendar query_available_meeting_room \
  --args '{"startTime":"1738128000000","endTime":"1738131600000"}' \
  --output json

# 2. 创建日程(假设获取到会议室ID: room123)
mcporter call dingtalk-calendar create_calendar_event \
  --args '{
    "summary": "周会",
    "startDateTime": "2026-02-28T14:00:00+08:00",
    "endDateTime": "2026-02-28T15:00:00+08:00"
  }' \
  --output json

# 3. 添加会议室(假设日程ID: event123)
mcporter call dingtalk-calendar add_meeting_room \
  --args '{"eventId":"event123","roomIds":["room123"]}' \
  --output json

Files

5 total
Select a file
Select a file to preview.

Comments

Loading comments…