
DingTalk Calendar
FreeManage meetings and schedules efficiently with DingTalk.
Free · Opens the source repo
What DingTalk Calendar does
The DingTalk Calendar skill provides a suite of commands to facilitate scheduling and managing meetings within the DingTalk ecosystem. It allows users to create, view, and modify calendar events directly through command inputs. This skill is particularly useful for teams that rely on DingTalk for communication and collaboration, as it integrates seamlessly with the platform's existing functionalities.
Users can utilize various shortcuts to quickly access their agendas, check availability, and book meeting rooms. For instance, commands like dws calendar +today or dws calendar +book enable users to retrieve today’s schedule or create a new meeting, respectively. The skill also supports checking for free time slots among participants, making it easier to coordinate meetings without the back-and-forth typically involved in scheduling.
To ensure proper usage, the skill mandates a specific sequence of operations when interacting with calendar events. This includes verifying the existence of events before cancellation and ensuring that all commands are executed with the correct parameters. The skill also emphasizes the importance of using JSON format for command outputs, which aids in maintaining data consistency and clarity.
Overall, the DingTalk Calendar skill is designed for users who need a reliable method for managing their schedules and meetings within the DingTalk platform. It streamlines the process of event creation and management, reducing the time spent on administrative tasks and allowing users to focus on more critical aspects of their work.
When to use it
Use this skill when you need to manage meetings, check schedules, or find free time slots for participants in DingTalk.
When not to use it
This skill is not suitable for initiating video conferences or managing tasks that fall outside of calendar functionalities.
What you can build with it
Checking Today's Agenda
Quickly retrieve a list of all meetings scheduled for today using the command `dws calendar +today`.
Scheduling a New Meeting
Create a new meeting and invite attendees by using the command `dws calendar +book` with the necessary parameters.
Finding Free Time Slots
Determine when participants are available by executing the command `python scripts/calendar_free_slot_finder.py` with their user IDs.
How to install DingTalk Calendar
View source1. Install with the skills CLI
npx skills add dingtalk-real-ai/dingtalk-workspace-cli/dingtalk-calendar --agent claude-code2. Or install it manually
Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.
Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs
Inside SKILL.md
Written by dingtalk-real-ai钉钉日历 Skill
前置条件 — 执行操作前必读
**CRITICAL — 执行任何
dws操作前,MUST 先用 Read 工具完整读取dingtalk-shared。**该轻量文件包含全局执行契约、安全底线及 shared references 的按需加载导航;不要预加载其全部 references。
<!-- VISIBLE_SHORTCUTS_START -->命令参考:calendar.md;剧本:03-meeting.md。
Shortcuts(无专用脚本/recipe 时优先)
以下 shortcut 同时进入公开 catalog 与 Runtime Schema。先按本 skill 的意图表、脚本和 recipe 路由:存在精确覆盖该场景的专用脚本/recipe 时按其执行;否则用户意图命中时,shortcut 优先于手写原子命令。命令已选中时直接执行;只在参数或安全语义不确定时读取 Agent leaf Schema(例如 dws schema --cli-path "calendar +<shortcut>" --compact --format json),在当前 Cobra flags 不确定时读取 dws calendar <shortcut> --help。只有参数映射、接口绑定或 provenance 审计才省略 --compact。仅当现有路由和 reference 都无法定位低频能力时,才用 dws shortcut list --service calendar --format json 批量发现。
| Shortcut | 风险 | 适用场景 |
|---|---|---|
dws calendar +agenda | read | 查询日程列表(不传时间默认查询今天) |
dws calendar +attendee-list | read | 查看日程参会人 |
dws calendar +book | write | 创建日程,并可按姓名邀请参会人(自动解析 userId,失败自动回滚删除日程) |
dws calendar +book-list | read | 查询用户的日历本列表 |
dws calendar +book-search | read | 按名称模糊搜索日历本 |
dws calendar +cancel-event | high-risk-write | 取消(删除)一个已有日程(删除前先确认它真实存在) |
dws calendar +conflicts | read | 检测我某天日程的时间冲突(重叠/双重预订,默认今天) |
dws calendar +free | read | 按姓名查询某人在指定时间段内的忙闲状态(自动解析 userId) |
dws calendar +free-slots | read | 找我某天工作时段内的空闲时间段(默认今天 09:00-18:00) |
dws calendar +freebusy | read | 查询用户 / 会议室闲忙状态(--users 与 --rooms 至少其一) |
dws calendar +invite | write | 按姓名把参会人加入已有日程(自动解析 userId 后批量添加) |
dws calendar +my-free | read | 查我自己在某时间段的忙闲(默认今天,无需输入姓名) |
dws calendar +next-event | read | 查看接下来最近的一个日程(默认扫描未来 7 天) |
dws calendar +reschedule | write | 改一个已有日程的时间(只动开始/结束时间,其他字段不变) |
dws calendar +room-groups | read | 会议室分组列表 |
dws calendar +room-search | read | 按名称模糊搜索会议室(不检查可用性) |
dws calendar +suggest-time | read | 按姓名解析多位参与者,推荐大家都有空的可开会时间段(自动解析 userId) |
dws calendar +today | read | 列出我今天的日程(自动计算今天的起止时间,无需手动填时间范围) |
dws calendar +tomorrow | read | 列出我明天的日程(自动计算明天的起止时间,无需手动填时间范围) |
dws calendar +week | read | 列出我本周的日程(自动按周一为周首计算本周起止时间,无需手动填时间范围) |
意图表
| 用户说 | 命令 |
|---|---|
| "今天 / 明天 / 本周日程" | python scripts/calendar_today_agenda.py [today|tomorrow|week] |
| "约会议(含参会人 + 会议室)" | python scripts/calendar_schedule_meeting.py --title "<主题>" --start "<起>" --end "<止>" [--users <ids>] [--book-room] |
| "多人共同空闲" | python scripts/calendar_free_slot_finder.py --users <ids> --date <yyyy-MM-dd> |
| "查闲忙" | dws calendar busy search --users <userIds> --start "<ISO>" --end "<ISO>" |
| "加参会人" / "订房" / "取消" | dws calendar attendee add / room add / event delete |
标准 SOP(必遵流程)
命中以下意图必须按对应 SOP 顺序执行;禁止跳步、替换命令、编造 userId/eventId。每条命令必须带
--format json,时间参数必须是 ISO-8601(如2026-07-03T14:00:00+08:00)。
SOP-1 查日程(list-events)
触发:今天/明天/本周日程/我有什么会/某时段日程。
- 首选脚本(必须):
python scripts/calendar_today_agenda.py today|tomorrow|week(聚合今日议程)。 - 降级 CLI(必须):脚本不可用时
dws calendar event list --start "<起始ISO>" --end "<结束ISO>" --format json;不传--start/--end默认查今天(00:00:00~23:59:59)。hasMore=true用--limit/翻页。 - 解析(必须):取真实
eventId、attendees[]、start/end;按需抽取,禁止把整段 JSON 原样贴出。
禁止:用 event list 替代闲忙查询(查闲忙走 SOP-3)、编造时间窗口、用非 ISO 时间格式。
SOP-2 建日程(create-event)
触发:建日程/约会议/加日程。
- 解析与会人(必须):对每个姓名
dws aisearch person --keyword "<姓名>" --dimension name --format json取userId,多人逗号拼接。 - 执行(必须):
dws calendar event create --title "<主题>" --start "<ISO>" --end "<ISO>" --attendees <userId1,userId2> --format json(按需加--location/--desc/--rooms)。 - 验证(必须):从返回
result.id取日程 ID(下游参数语义称eventId),再执行dws calendar event list --start "<ISO>" --end "<ISO>" --format json复核标题、描述和时段。
禁止:跳过与会人 userId 解析直接传姓名、编造会议室 roomId。
SOP-3 查闲忙(check-busy)
触发:某人/会议室是否有空/找空闲时段/避免冲突。
- 解析对象(必须):姓名 →
dws aisearch person --keyword "<姓名>" --dimension name --format json取userId;会议室用roomId。 - 收敛时段(必须):
--start/--end必须由用户给出或明确收敛;时段不明确必须先追问,禁止默认全天窗口。 - 执行(必须):
dws calendar busy search --users <userId1,userId2> --start "<ISO>" --end "<ISO>" --format json(查会议室换--rooms <roomId...>,可同时传)。禁止用event list扫日程替代闲忙查询。 - 空闲时段(必须):找共同空闲用
python scripts/calendar_free_slot_finder.py。
禁止:用 event list 冒充 busy search、未确认时段就默认全天查询。
执行硬约束
- 多轮日程任务必须保留
eventId,后续加人、移人、订房、换房、改描述、删除都基于同一个eventId执行;不要重新创建重复日程。 - 用户明确说"帮我订一个空闲会议室"时,
room search返回可用会议室后直接选择第一个可预订且不需要自定义审批的roomId执行room add;不要把选择权抛回用户导致任务停住。 - 已有日程订房:
dws calendar room search --start ... --end ... --format json→dws calendar room add --event <EVENT_ID> --rooms <ROOM_ID> --format json→event get或room/busy验证。 - 换会议室:先
room delete --event <EVENT_ID> --rooms <OLD_ROOM_ID>,再room add --event <EVENT_ID> --rooms <NEW_ROOM_ID>,最后回查;不要只更新--location。 - 参会人变化用
attendee add/delete,日程描述变化用event update --desc,删除日程用event delete --id。用户当前消息已明确要求删除/取消时可直接执行;否则先确认。 - 脚本失败或参数不完整时,立即降级到明确的
dws calendar event/attendee/room命令,不要停在"我要查看用法"。 - 所有 dws 命令带
--format json;查询时间必须显式--start/--end。
跨产品协作
- 视频会议发起 / 入会链接 / 邀请入会 / 会中控制 → 当前 CLI 不支持;请在钉钉客户端完成
- 会后摘要 / 待办 → 切到
dingtalk-minutes - 参会人按人名 → 先用
dingtalk-aisearch解析
注意
schedule-meeting 必须读 03-meeting.md 中的「两准则」「搜房失败硬门禁」,禁止假设 roomId。
局部意图与短流程
Frequently asked questions about DingTalk Calendar
Similar skills
Weekly Prep Brief
Streamline your weekly meeting preparations with ease.
Meetings
Optimize your meeting planning and execution.
Deep Work
Maximize focus and minimize distractions with structured time-blocking.
Lark Video Conference
Manage and interact with Lark video meetings seamlessly.
Lark Calendar
Manage your calendar events and meeting rooms efficiently.
Daily Prep
Streamline your next day's meetings and tasks.
