CaiMingshen/dsh-icloud-calendar ↗★ 1

dsh-icloud-calendar

DeepSeek Harness (DSH) plugin: read and write Apple iCloud Calendar over CalDAV, with a cross-platform credential store, request timeouts/retries, and a confirm-gated delete. 适合需要授权AI智能体直接管理和同步其iCloud日程表的用户。

Package
dsh-icloud-calendar
Compatibility
Unverified
Harness peer range
0.2.0-rc.2
Cordis peer range
~4.0.4
Version
0.1.0
License
MIT
Last updated
Oct 1, 2026

Install

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:CaiMingshen/dsh-icloud-calendar

配置

插件是 bundle:dsh.bundle.patch → cordis.patch.yml 插入两行。

行作用
dsh-icloud-calendar/host连接、缓存、策略:注册 ctx.icloudCalendar 服务
dsh-icloud-calendar/tools把服务暴露成 5 个模型可见的工具

只装 host 行不装 tools 行,日历就能被代码使用但对模型不可见 —— 这是一个有用的开关。

完整可复制的配置见 examples/cordis.patch.example.yml。常用项:

- insert:
    - id: icloud-calendar-host
      name: 'dsh-icloud-calendar/host'
      config:
        account: 'you@example.com'      # 也可留空,用 $ICLOUD_ACCOUNT
        secretEnv: ICLOUD_APP_PASSWORD  # 密码所在的环境变量名
        secretSource: auto              # auto | env | store
        allowWrites: true
        allowDeletes: false             # 默认关闭删除
        maxDeletesPerCall: 1
        timeoutMs: 30000
        retries: 2
        proxyUrl: ''                    # 例:http://127.0.0.1:7890
    - id: icloud-calendar-tools
      name: 'dsh-icloud-calendar/tools'

配置里没有密码字段,这是故意的:profile 补丁是磁盘上的文件,把 App 专用密码写进去就等于绕过了系统凭据存储。改配置需要重载 profile(这些字段没有标 .volatile(),因此不会出现在设置页表单里)。

serverUrl 的取值规则:远程主机必须 HTTPS;只有 127.0.0.1 / ::1 / localhost 允许明文 HTTP —— 自建 CalDAV(Radicale、Nextcloud、Baikal)经常就在本机跑明文,而凭据仍走 Authorization 头,所以只对回环开这个口子。想连局域网里的自建服务,请给它配上 HTTPS。