前言¶
DeepSeek Harness (DSH) 生态强调模块化,处理日程安排通常需要连接外部日历服务或自行实现复杂的 iCalendar 规则。johnxu22786/calendar 是一个针对 DSH 的插件,它将 CalDAV 协议集成与中文日历特性结合,作为独立的 npm 包提供。
核心功能¶
CalDAV 集成¶
插件支持标准的 CalDAV 协议,通过 REPORT/PROPFIND/GET/PUT/DELETE 方法实现事件的列表、创建、更新、删除和搜索。它内置了自动发现机制(well-known → current-user-principal → calendar-home-set → calendars),并支持 Basic 认证和 Google OAuth2 设备流。
RRULE 扩展与单实例编辑¶
插件包含一个从零实现的 RFC 5545 重复规则引擎,支持 FREQ、INTERVAL、COUNT、UNTIL、BYDAY、BYMONTH 等参数。在编辑或删除单个实例时,它通过 RECURRENCE-ID 生成覆盖项(STATUS:CANCELLED),而不会修改系列主事件。
中文日历支持¶
针对中文用户,插件内置了天文计算的农历转换(覆盖 2000-2100 年)、中国节假日(春节、国庆等)、干支/生肖(基于立春锚定)以及默认时区 Asia/Shanghai。
冲突检测与时区¶
插件能检测重叠事件(包括全天事件和跨重复实例的重叠)。它拥有嵌入式、无运行时依赖的时区引擎,能正确处理夏令时(DST)转换。
安装与启用¶
先决条件:确保已安装并配置好 DeepSeek Harness (DSH)。
- 进入插件目录。
- 安装依赖并构建。
- 将插件安装到指定的 DSH 配置文件中。
npm install
npm run build
dsh plugin --profile <name> add ./calendar
配置¶
配置通过插件的 Config schema 设置(通常在 cordis.patch.yml 或配置覆盖层中)。
- insert:
- id: calendar
name: dsh-calendar
config:
defaultTimezone: Asia/Shanghai
serverUrl: https://nextcloud.example.com/remote.php/dav/
authMode: basic # basic | google
凭证通过环境变量或 DSH 凭证服务管理(绝不记录到日志)。
| 环境变量 | 含义 |
|---|---|
CALDAV_URL |
CalDAV 日历集合完整 URL(Basic 认证) |
CALDAV_USERNAME / CALDAV_PASSWORD |
Basic 认证凭据 |
GOOGLE_CLIENT_ID |
Google OAuth 客户端 ID |
GOOGLE_CALDAV_REFRESH_TOKEN |
长期刷新令牌 |
Google OAuth2 设备流(适用于无头环境)配置如下:
dsh-calendar auth google --device --client-id <CLIENT_ID>
典型用法¶
列出事件¶
dsh-calendar list [--start "2026-01-01" --end "2026-01-31" --tz Asia/Shanghai]
创建重复事件¶
dsh-calendar create --summary "Team sync" --start "2026-03-02 10:00" --end "2026-03-02 11:00" --rrule "FREQ=WEEKLY;COUNT=4"
更新单实例¶
dsh-calendar update <uid> --summary "Renamed" --recurrence-id "2026-03-09 10:00" --start "2026-03-09 15:00"
检查冲突¶
dsh-calendar conflicts --start "2026-06-01 14:00" --end "2026-06-01 15:00"
获取节假日与干支¶
dsh-calendar holidays --days 60
适用场景与注意事项¶
适用场景:
* 需要连接 Google Calendar、iCloud、Nextcloud 或自定义 CalDAV 服务器的 DSH 智能体。
* 需要处理复杂的重复规则(RRULE)并支持单实例修改。
* 需要农历、中国节假日及干支计算功能。
注意事项:
* 无运行时依赖: 插件本身无运行时依赖,peerDependencies 由 DSH 运行时提供。
* Google OAuth2: 在无头环境中,Google 认证必须使用设备流。
* 权限安全: 插件以当前 DSH 进程的权限运行。安装前请检查源码与许可证,确保信任。
* 凭证安全: 所有凭证通过环境变量或 DSH 凭证服务处理,输出中会自动脱敏。
总结¶
该插件为 DSH 提供了一套完整的日历工具链,解决了外部日历集成与中文日历处理的痛点,同时通过嵌入式引擎避免了运行时依赖。