日历设置与优化Skill calendar-setup

此技能用于通过配置Python环境,授予日历访问权限,从而显著提升日历查询性能,从30秒缩短到1秒以内。它使用EventKit技术替代AppleScript,实现本地数据快速查询,适用于需要高效管理日历的开发者或用户。关键词:Python日历访问、EventKit、AppleScript、查询优化、性能提升。

DevOps 0 次安装 0 次浏览 更新于 3/20/2026

名称: 日历设置 描述: 授予Python日历访问权限以实现30倍更快的日历查询(30秒 → <1秒)

日历设置 - 启用快速查询

目的: 授予Python日历访问权限以实现30倍更快的日历查询(30秒 → <1秒)

何时运行:

  • 在初始Dex安装后
  • 如果日历查询感觉缓慢
  • 如果看到“日历访问被拒绝”错误

过程

  1. 检查当前权限状态:

    • 运行权限检查器:python3 core/mcp/scripts/check_calendar_permission.py
    • 向用户显示返回的状态
  2. 如果已授权:

    • 很好!日历查询已经优化。
    • 无需操作。
  3. 如果未确定(权限尚未请求):

    • 脚本将显示一个macOS权限对话框
    • 指导用户:“当对话框出现时,点击‘确定’以授予Python访问日历的权限”
    • 再次运行脚本以验证
  4. 如果被拒绝(之前已拒绝):

    • 显示清晰的说明:
      要启用快速日历查询:
      
      1. 打开系统设置(Command+Space,输入“System Settings”)
      2. 点击侧边栏中的“隐私与安全”
      3. 点击“日历”
      4. 在列表中找到“Python”或“python3”
      5. 启用复选框
      6. 再次运行`/calendar-setup`以验证
      
  5. 如果受限:

    • 解释:“日历访问被系统策略阻止(家长控制或企业MDM)”
    • 日历查询将使用AppleScript(较慢但功能正常)
    • 用户无法操作
  6. 成功后:

    • 确认:“✅ 日历访问已授予!查询现在快30倍。”
    • 解释:“日历查询现在使用原生EventKit而不是AppleScript”
    • 无需再次运行此操作 - 权限是持久的

技术说明

  • EventKit vs AppleScript: EventKit使用数据库查询(快速),AppleScript加载所有事件然后过滤(缓慢)
  • 权限是持久的: 一旦授予,Python保持访问权限直到明确撤销
  • 隐私: 所有日历数据保持本地 - Dex从不发送日历数据到任何地方
  • 后备方案: 如果EventKit不可用,Dex回退到AppleScript(工作但较慢)

故障排除

“模块EventKit未找到”:

  • 运行:pip3 install pyobjc-framework-EventKit
  • 这应该在Dex设置期间已安装

权限对话框未出现:

  • 系统设置可能已经显示“被拒绝”从之前的尝试
  • 按照上述手动步骤切换权限

授予访问权限后仍看到慢查询:

  • 重启您的编码工具(Cursor/Claude Code/Pi)以重新加载MCP服务器
  • 验证权限:python3 core/mcp/scripts/check_calendar_permission.py