📦 Apple Calendar CLI — 日历命令行

v1.0.0

在 macOS 上通过 CLI 操作 Apple 日历:列出日历、查看事件、增删改日程及查询空闲时间。

11· 5.2k·49 当前·49 累计
by @joargp·MIT-0
下载技能包
License
MIT-0
最后更新
2026/2/27
0
安全扫描
VirusTotal
无害
查看报告
OpenClaw
可疑
medium confidence
该技能的说明看似合理的 macOS 日历 CLI,但包元数据与安装指引不一致,且要求安装来源不明的 npm 包——安装前需谨慎。
评估建议
该 SKILL.md 描述了一个合理的 Apple Calendar CLI,但安装和使用前请注意以下红旗: - 元数据与说明不匹配:技能元数据未声明所需二进制文件或安装方式,而文档却要求运行 `accli` 并通过 npm 安装 `@joargp/accli`。请向发布者索要明确的安装规范或可信的主页/源码。 - 未知 npm 包:执行 `npm install -g @joargp/accli` 会从公共 npm 仓库拉取并运行代码。安装前请先验证该包及其所有者(查看 npm 上的包、仓库、近期版本),寻找可信迹象:GitHub 仓库、维护者历史、README、无恶意 postinstall 脚本。 - 全局 npm 安装可能运行安装脚本并修改系统状态。建议先在沙盒或本地检查包内容,再授予系统级安装权限。 - 日历访问为本地操作,需 macOS 权限;技能不要求云凭据,这是合适的。但仍需注意,一旦授权,所装 CLI 可读写本地日历数据。 若决定使用:请索要包源码或签名二进制,安装前检查 npm 包内容及 postinstall 脚本,优先本地/沙盒安装,并在非生产账户测试。若发...
详细分析 ▾
用途与能力
SKILL.md 描述了一个 macOS Apple Calendar CLI (accli),并指示使用 accli 二进制文件和 npm 安装 @joargp/accli,但技能元数据未声明所需二进制文件,也未提供安装规范或源码/主页。这种不匹配(仅通过说明依赖外部 npm 包)不一致:代理/安装程序需要 accli/npm 执行所述操作,而注册表元数据未声明这些依赖或可信来源。
指令范围
运行时指令范围仅限于日历操作(列表、查询、创建、更新、删除、空闲/忙碌),未指示代理读取无关文件或外泄数据。然而,它指示用户/代理运行 shell 命令(accli、date)并从 npm 安装包,安装过程中可能执行任意代码(postinstall 脚本)。SKILL.md 建议在对破坏性操作前与用户确认,这是好的做法。
安装机制
技能元数据中无安装规范,但 SKILL.md 告诉用户运行 `npm install -g @joargp/accli`。这是隐式安装机制,会从公共 npm 仓库拉取并运行代码;此处未验证包及所有者。全局 npm 安装可能运行安装脚本并在系统放置二进制文件——当包来源不明时属于中等风险。注册表中缺乏明确、经过审查的安装规范是警告信号。
凭证需求
技能未请求任何环境变量、凭据或配置路径。对 macOS 日历的访问为本地操作,需用户授予系统权限(未以环境变量声明),与其所述目的相符。
持久化与权限
技能未请求 always=true,也未提供安装时持久化或跨技能配置更改。它似乎依赖用户安装的 CLI 二进制文件,而非被平台强制启用。
安全有层次,运行前请审查代码。

License

MIT-0

可自由使用、修改和再分发,无需署名。

运行时依赖

无特殊依赖

版本

latestv1.0.02026/1/5
无害

安装命令

点击复制
官方npx clawhub@latest install accli
镜像加速npx clawhub@latest install accli --registry https://cn.longxiaskill.com

技能文档

# Apple Calendar CLI (accli) ## 安装 ``bash npm install -g @joargp/accli ` 要求: 仅支持 macOS(使用 JavaScript for Automation) ## 概述 accli 工具通过命令行访问 macOS Apple Calendar。支持列出日历、查询事件、创建/更新/删除事件,以及跨日历检查空闲/忙碌时间。 ## 快速参考 ### 日期时间格式 - 有具体时间的事件:YYYY-MM-DDTHH:mm 或 YYYY-MM-DDTHH:mm:ss - 全天事件:YYYY-MM-DD ### 全局选项 - --json - 以 JSON 输出(推荐用于解析) - --help - 显示任意命令的帮助 ## 命令 ### 列出日历 ` accli calendars [--json] ` 列出所有可用日历及其名称和持久 ID。首次运行此命令以发现可用日历及其 ID。 ### 列出事件 ` accli events [options] ` 选项: - --calendar-id - 持久日历 ID(比名称更可靠) - --from - 范围起始(默认:当前时间) - --to - 范围结束(默认:起始 + 7 天) - --max - 返回事件数上限(默认:50) - --query - 对标题/地点/描述进行大小写不敏感过滤 - --json - 输出 JSON 示例: `bash # 查看 Work 日历本周事件 accli events Work --json # 查看 1 月事件 accli events Work --from 2025-01-01 --to 2025-01-31 --json # 搜索特定事件 accli events Work --query "standup" --max 10 --json ` ### 获取单个事件 ` accli event [--json] ` 根据事件 ID 获取其详细信息。 ### 创建事件 ` accli create --summary --start --end [options] ` 必需选项: - --summary - 事件标题 - --start - 开始时间 - --end - 结束时间 可选: - --location - 事件地点 - --description - 事件描述 - --all-day - 创建全天事件 - --json - 输出 JSON 示例: `bash # 创建定时会议 accli create Work --summary "Team Standup" --start 2025-01-15T09:00 --end 2025-01-15T09:30 --json # 创建全天事件 accli create Personal --summary "Vacation" --start 2025-07-01 --end 2025-07-05 --all-day --json # 带地点和描述创建 accli create Work --summary "Client Meeting" --start 2025-01-15T14:00 --end 2025-01-15T15:00 \ --location "Conference Room A" --description "Q1 planning discussion" --json ` ### 更新事件 ` accli update [options] ` 选项(全部可选 - 仅提供需更改项): - --summary - 新标题 - --start - 新开始时间 - --end - 新结束时间 - --location - 新地点 - --description - 新描述 - --all-day - 转为全天事件 - --no-all-day - 转为定时事件 - --json - 输出 JSON 示例: `bash accli update Work event-id-123 --summary "Updated Meeting Title" --start 2025-01-15T15:00 --end 2025-01-15T16:00 --json ` ### 删除事件 ` accli delete [--json] ` 永久删除事件。执行前需与用户确认。 ### 检查空闲/忙碌 ` accli freebusy --calendar --from --to [options] ` 选项: - --calendar - 日历名称(可重复指定多个日历) - --calendar-id - 持久日历 ID(可重复) - --from - 范围起始(必需) - --to - 范围结束(必需) - --json - 输出 JSON 显示忙碌时间段,排除已取消、已拒绝及透明事件。 示例: `bash # 跨日历检查可用性 accli freebusy --calendar Work --calendar Personal --from 2025-01-15 --to 2025-01-16 --json # 检查具体时段 accli freebusy --calendar Work --from 2025-01-15T09:00 --to 2025-01-15T18:00 --json ` ### 配置 `bash # 设置默认日历(交互式) accli config set-default # 按名称设置默认日历 accli config set-default --calendar Work # 显示当前配置 accli config show # 清除默认设置 accli config clear ` 设置默认日历后,命令在未指定日历时将自动使用默认日历。 ## 使用流程指南 ### 创建事件前 1. 列出日历以获取可用日历名称/ID 2. 检查空闲/忙碌时间以找到可用时段 3. 创建前与用户确认事件详情 ### 最佳实践 - 始终使用 --json 标志以便程序解析 - 优先使用 --calendar-id 而非日历名称,更可靠 - 查询事件时,先使用合理的日期范围 - 删除操作前与用户确认 - 始终使用 ISO 8601 日期时间格式 ### 常见模式 查找空闲时段并安排: `bash # 1. 检查可用性 accli freebusy --calendar Work --from 2025-01-15T09:00 --to 2025-01-15T18:00 --json # 2. 在空闲时段创建事件 accli create Work --summary "Meeting" --start 2025-01-15T14:00 --end 2025-01-15T15:00 --json ` 查看今日日程: `bash accli events Work --from $(date +%Y-%m-%d) --to $(date -v+1d +%Y-%m-%d) --json ``

数据来源ClawHub ↗ · 中文优化:龙虾技能库