核心用法
accli 是基于 JavaScript for Automation (JXA) 的 macOS 专属 CLI 工具,通过 Node.js 包装实现与 Apple Calendar 的深度集成。主要功能模块包括:
- 日历管理:列出所有日历并获取持久化 ID,支持设置默认日历简化后续操作
- 事件操作:查询(支持时间范围过滤、关键词搜索)、创建、更新、删除全流程管理
- 空闲检测:跨多日历分析忙闲状态,自动排除已取消、已拒绝及透明事件
关键特性:
- 纯 JSON 输出模式(
--json)便于脚本集成 - 支持 ISO 8601 标准时间格式(
YYYY-MM-DDTHH:mm与YYYY-MM-DD) - 日历 ID 优先机制(比名称更稳定)
显著优点
1. 原生集成:直接调用 Apple Calendar 数据库,无需 iCloud API 或第三方同步
2. 离线可用:完全本地运行,不依赖网络连接
3. 自动化友好:JSON 输出配合标准 Unix 时间操作,适合 Shell 脚本与定时任务
4. 权限复用:继承 macOS 系统日历权限,无需额外 OAuth 流程
潜在局限
- 平台锁定:仅支持 macOS,无法跨平台使用
- 权限依赖:首次运行需用户授权访问日历,无 GUI 交互时可能阻塞
- 功能边界:不支持高级功能如会议邀请发送、附件管理、重复规则创建
- npm 分发:依赖 Node.js 生态,企业环境可能受软件源策略限制
适合人群
- macOS 重度用户需自动化日程管理
- 开发团队构建内部效率工具(如 Slack/钉钉机器人集成)
- 个人用户偏好终端工作流(配合
cron、fzf等工具)
常规风险
- 数据误操作:
delete命令永久删除,建议二次确认或先备份 - 时区歧义:未明确指定时区时依赖系统设置,跨时区场景需谨慎
- 并发冲突:无事务机制,多进程同时修改可能导致日历状态不一致
- 权限持久化:系统权限变更后需手动重新授权,自动化场景可能中断