核心用法
calmly 是一款面向 macOS 的命令行日历管理工具,直接调用 Apple EventKit 框架,无需依赖 AppleScript 或图形界面。主要功能包括:
- 日历枚举:
calmly list列出所有可用日历 - 事件查询:
calmly events <日历名> [天数]查看未来事件,默认30天 - 事件创建:
- 全天事件:
calmly add <日历> "标题" YYYY-MM-DD - 多全天事件:
calmly add <日历> "标题" 开始日期 结束日期 - 定时事件:
calmly addtimed <日历> "标题" YYYY-MM-DD HH:MM 结束时间 - 批量脚本:支持 bash 循环批量创建重复事件
显著优点
1. 零UI干扰:完全静默执行,无权限弹窗(首次授权后)、无确认对话框
2. 原生集成:直接写入系统日历数据库,iCloud同步即时生效
3. 格式友好:ISO 8601日期 + 24小时制时间,脚本友好
4. 安装便捷:Homebrew 一键安装,自动处理依赖
潜在缺点与局限性
- 只增不删:暂无删除/修改事件命令,需回退到 Calendar.app 或 iCloud Web
- macOS独占:依赖 EventKit 框架,无跨平台能力
- 首次授权:仍需用户手动在系统设置中授予日历权限(一次性)
- 无提醒设置:不支持创建带提醒通知的事件
适合人群
- 习惯终端工作流的开发者/运维人员
- 需要批量导入课程表、排班表、训练计划的重度日历用户
- 编写自动化脚本(如结合 cron、launchd)的进阶用户
- 厌倦 AppleScript 卡顿和 ICS 导入弹窗的效率追求者
常规风险
- 数据持久性:直接写入系统日历,误操作需手动回滚
- 隐私合规:工具本身不收集数据,但需授予完整日历访问权限
- 同步延迟:极端情况下 iCloud 同步可能有分钟级延迟
- 无撤销机制:命令执行即生效,建议先用
events命令核对日历名和日期