详细分析 ▾
运行时依赖
版本
安装命令
点击复制技能文档
# 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 ``