macOS Calendar

📅 本地隐私优先的日程管家

通过AppleScript直接操控macOS日历,支持自然语言转日程、重复事件与提醒设置,无需第三方云服务。

收藏
19.9k
安装
7.6k
版本
1.2.0
CLS 安全性认证2026-05-10
点击查看完整报告 >

使用说明

核心用法

该技能通过本地AppleScript脚本与macOS Calendar.app深度集成,提供事件创建、日历列表查询等核心功能。用户可通过自然语言指令(如"明天下午2点开会")触发自动化解析,转换为JSON参数后注入AppleScript执行。

主要工作流程:首先调用list-calendars获取可用日历(自动过滤只读日历),然后通过stdin传入JSON创建事件。支持相对日期(offset_days)、绝对日期(iso_date)、周期性规则(iCal RRULE)、提醒闹钟等完整日历功能。

显著优点

  • 零云端依赖:纯本地AppleScript执行,事件数据不经过任何第三方服务器
  • 自然语言友好:内置日期计算逻辑,支持"下周三"、"每工作日"等复杂表达
  • 重复事件支持:完整实现iCal RRULE标准,可定义周期间隔、结束条件
  • 安全设计:JSON通过stdin传递,避免命令行参数泄露敏感信息(会议主题、医生预约等)
  • 操作审计:所有操作记录本地日志,含时间戳与完整上下文

潜在缺点与局限

  • macOS独占:依赖osascript与Calendar.app,Windows/Linux完全不可用
  • 权限门槛:首次使用需用户手动授予自动化权限(系统偏好设置→安全性与隐私)
  • 无冲突检测:脚本不检查日程重叠,可能创建冲突事件
  • 日历名称敏感:必须精确匹配Calendar.app中的日历名称,无模糊匹配
  • 时区处理弱:依赖系统时区设置,跨时区场景需用户自行换算

适合人群

  • 重度macOS用户,追求原生体验与隐私保护
  • 企业/医疗/法律从业者:需避免敏感日程上云
  • 开发者/自动化爱好者:可与Alfred、Raycast等工具链整合

常规风险

1. 权限失效风险:macOS系统更新可能重置自动化权限,导致脚本静默失败
2. 数据误操作:无二次确认机制,解析错误可能创建错误时间的事件

3. 日历同步延迟:若用户依赖iCloud同步,事件创建后可能需等待同步才能在iPhone查看

4. 脚本注入隐患:虽通过stdin传递JSON,但若用户构造恶意calendar名称字段,仍存在AppleScript注入可能(脚本内已做基础过滤)

安全解读

核心用法

macOS Calendar 是专用于 macOS 平台的日历管理工具,通过 AppleScript 与系统 Calendar.app 交互,实现事件创建、列表查询和日程管理。核心命令为 "$SKILL_DIR/scripts/calendar.sh",支持 list-calendarscreate-event 两个主要子命令。

事件创建采用 JSON 配置方式,关键字段包括:

  • 时间指定:支持 offset_days(相对天数)或 iso_date(绝对日期)两种方式
  • 自然语言映射:将"明天下午 2 点"自动转换为 offset_days: 1, hour: 14
  • 重复规则:使用 iCal RRULE 标准语法(如 FREQ=WEEKLY;BYDAY=TU
  • 提醒设置:通过 alarm_minutes 设置提前通知时间

显著优点

1. 本地化执行:完全基于 macOS 系统工具(osascript、python3),无网络请求,数据零外传
2. 输入验证完善:所有 JSON 字段经类型检查、范围校验和格式验证,无效输入会被拒绝

3. 防注入设计:使用参数化调用而非字符串拼接,避免 AppleScript 注入风险

4. 操作可追溯:所有操作记录到本地日志文件,便于审计和故障排查

5. 多语言兼容:使用相对日期计算规避了 FR/EN/DE 等地区的日期格式差异

潜在缺点与局限性

1. 平台锁定:仅支持 macOS,Windows/Linux 用户无法使用
2. 日历名称依赖:需先执行 list-calendars 获取有效日历名称,无法自动创建新日历

3. 权限敏感:首次运行需用户授权访问 Calendar.app,权限被拒则功能失效

4. 无事件修改/删除:当前版本仅支持创建事件,不支持更新或删除已有事件

5. 重复规则学习成本:RRULE 语法对普通用户不够直观,需查阅参考文档

适合人群

  • 重度 macOS 用户,习惯使用 Apple Calendar 作为主力日程工具
  • 需要快速将自然语言(如"下周三下午 3 点开会")转为日历事件的用户
  • 对隐私敏感、不希望日程数据上传到第三方云服务的用户
  • 开发者或技术用户,能接受 JSON 配置和命令行操作方式

常规风险

| 风险类型 | 等级 | 说明 |
|---------|------|------|
| 权限拒绝 | 中 | Calendar.app 访问权限被拒时脚本会报错退出 |
| 只读日历误操作 | 低 | 脚本会自动检测 `[read-only]` 日历并拒绝写入 |
| 日志文件膨胀 | 低 | 当前无日志轮转机制,长期运行可能产生大文件 |
| 时间计算错误 | 极低 | 跨时区或夏令时切换时相对日期计算可能出现偏差 |

安全认证结论:经 CLS-Certify v2.1.0 扫描,获得 A 级(88分) 认证,来源可信度 T3(个人开发者/社区项目)。代码结构清晰,无危险函数调用,无敏感数据收集,符合 GDPR 数据最小化原则。

macOS Calendar 内容

references文件夹
scripts文件夹
手动下载zip · 6.2 kB
recurrence.mdtext/markdown
请选择文件