You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AppleScript能否在特定账户创建日历?macOS Calendar 10.0 API疑问

在特定账户中创建日历的AppleScript方案(High Sierra)

嘿,我刚好踩过这个坑——你完全没漏看内容,Calendar 10.0(High Sierra)的原生AppleScript字典确实没有直接指定账户创建日历的显式API,默认创建操作只会落到「我的Mac」账户里。不过别灰心,有个社区摸索出来的间接方法能实现你要的功能,原理是利用账户本身作为日历的容器对象。

具体实现步骤&代码示例

  1. 定位目标账户
    首先你需要通过账户名称找到对应的容器对象,Calendar里的账户名称可以在「日历偏好设置」→「账户」面板里查看。示例代码如下:

    tell application "Calendar"
        -- 把这里的"iCloud"替换成你的目标账户名称(比如CalDAV账户名)
        set targetAccount to first account whose name is "iCloud"
        -- 在目标账户下创建新日历,可自定义名称、颜色等属性
        set newCalendar to make new calendar at targetAccount with properties {name:"我的专属日历", color:orange}
    end tell
    
  2. 关键注意点

    • 账户名称必须完全匹配,大小写、空格都不能错,不确定的话可以先跑这段代码列出所有账户:
      tell application "Calendar" to get name of every account
      
    • 部分CalDAV或企业账户可能有服务器端权限限制,需要确保你的账户拥有创建日历的权限
    • 如果创建失败,先检查目标账户是否在Calendar里正常同步,有没有报错提示

为什么字典里没显示这个方法?

High Sierra时期的Calendar AppleScript接口确实比较受限,很多账户相关的操作是通过container这个隐式属性支持的,官方文档当时并没有明确标注这个用法,但实际测试下来是稳定有效的。如果这个方法对你不管用,大概率是账户本身的权限或同步问题,而不是脚本的问题。

内容的提问来源于stack exchange,提问作者A Bowler Cat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 03:40:52