核心用法
caldav-cli 是一款跨平台的 CalDAV 命令行客户端,允许用户直接在终端管理 iCloud、Google、Yandex、Fastmail、Nextcloud、Baikal 等主流日历服务。工具采用交互式向导设计,大幅降低配置门槛:
- 账户管理:
caldav-cli account add启动交互式配置,支持 Basic 认证与 OAuth2 双模式,凭证自动存入系统密钥链 - 事件查询:
events list支持时间范围、指定账户、日历筛选,输出格式可选友好表格或结构化 JSON - 事件创建:
events create支持全命令行参数或纯交互模式,灵活适配脚本自动化与日常手动操作
显著优点
1. 安全存储架构:敏感凭证(密码、OAuth refresh token)通过 @napi-rs/keyring 存入操作系统级密钥链,配置文件仅保留非敏感元数据,杜绝明文泄露风险
2. 多账户与多服务商支持:单一工具覆盖个人 iCloud、企业 Google Workspace、自建 Nextcloud/Baikal 等场景,便于统一运维
3. 脚本友好:完整的 JSON 输出模式、非交互式参数支持,易于集成至 CI/CD、定时任务或数据同步管道
4. 现代技术栈:基于 Node.js,npm 全局安装便捷,跨 Linux/macOS 兼容
潜在局限
- 依赖 Node.js 运行时:相比原生二进制工具,环境安装体积较大,对极简容器场景不够轻量
- OAuth 配置门槛:Google Calendar 需用户自行在 Google Cloud Console 创建项目并启用 API,对非技术用户存在学习成本
- 功能边界:当前版本聚焦于读取与创建事件,暂不支持复杂操作(循环事件编辑、参会者管理、日历共享权限配置等)
- 无 Windows 支持:元数据明确标注仅支持 Linux/macOS,Windows 用户需 WSL 方案
适合人群
- 开发者与运维工程师:需将日历数据纳入自动化工作流
- 隐私敏感用户:偏好命令行工具、排斥浏览器/桌面端持久登录
- 多日历服务用户:希望在单一界面统一管理个人与工作日历
常规风险
- 凭证泄露风险:虽采用密钥链存储,但 Node.js 运行时恶意包或本地提权攻击仍可能窃取内存中的访问令牌
- OAuth 令牌权限:Google OAuth 令牌默认继承所配置项目的 API 范围,若项目配置不当可能导致过度授权
- 数据完整性:命令行操作缺乏图形界面的撤销/确认机制,批量脚本中的逻辑错误可能导致非预期事件创建或覆盖
- 供应链安全:npm 依赖树的第三方包更新需持续审计,
@napi-rs/keyring等原生模块的预编译二进制存在潜在篡改风险