
Dingtalk Calendar
This handles DingTalk's calendar API so you can create, update, and delete events, check availability, book meeting rooms, and manage video conferences. The implementation is thorough: it covers recurring events with recurrence rules, sign-in/sign-out links for attendance tracking, and meeting room availability queries. The routing logic is smart about distinguishing between user availability versus room booking, which matters because they hit different endpoints. One thing to know upfront is that all user identifiers in paths must be unionIds, not staffIds, and timestamps need full UTC ISO8601 with milliseconds or you'll hit parsing errors. The helper script manages tokens and configuration, and the documentation includes grep commands to jump straight to the API section you need.
- skills.sh installs
- 276
- GitHub stars
- 102
- last updated
- Aug 21, 2026
Install
$ npx -y skills add breath57/dingtalk-skills --skill dingtalk-calendar --agent claude-codeInstalls into .claude/skills of the current project.
Files
钉钉日程技能
负责钉钉日历(Calendar)API 的操作。本文件为策略指南;完整请求格式见 references/api.md。
dt_helper.sh位于本SKILL.md同级目录的scripts/dt_helper.sh。
核心概念
- 路径中的
userId:日程 API 路径/v1.0/calendar/users/{userId}/...中的{userId}为 unionId(与待办、文档一致),不是 staffId。 - 主日历:个人默认日历的
calendarId固定使用字符串primary(小写)。创建/查询/列表/更新/删除均针对.../calendars/primary/events...。 - 时间格式:
start/end、闲忙的startTime/endTime、列表的timeMin/timeMax须使用 UTC ISO8601 且含毫秒,例如2026-03-24T07:02:48.000Z。省略毫秒易触发ParsedISO8601TimestampError。 - 修改日程:HTTP 方法为 PUT(与「部分更新」语义对应的路径相同),请求体需包含日程
id及要改的字段(如summary)。 - 视频会议:创建日程时在请求体中加
"onlineMeetingInfo":{"type":"dingtalk"},响应含onlineMeetingInfo.url等。 - 会议室:先通过 会议室忙闲 接口按
roomIds+ 时间窗查询;再在已有日程上 添加会议室(需企业内会议室roomId,管理后台或开放平台可查)。集成测试可用环境变量TEST_MEETING_ROOM_IDS(逗号分隔)。 - 签到/签退:日程创建后,可 GET 签到/签退链接 分发参会人;组织者/参与者 POST 签到;详情用 GET signin / signOut 列表接口(见 api.md)。是否与线下会议、审批流联动以钉钉侧能力为准。
场景路由(先分类再调 API)
Sponsors
Details
- Repository
- github.com/breath57/dingtalk-skills
- Categories
- Backend & APIs, Automation & Workflows
- First seen
- Jun 3, 2026