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

如何编写AppleScript检测iCal今日事件并触发执行对应任务

iCal AppleScript 日程检测逻辑实现方案

完全可以通过原生AppleScript实现两类日程判断+任务触发逻辑,macOS下的Calendar(原iCal,系统更名后AppleScript调用接口保持向下兼容)原生支持事件查询能力,不需要安装第三方依赖。

核心实现逻辑

  • 先生成当日0点、当日23点59分59秒两个时间节点,作为日程筛选的时间边界
  • 调用Calendar的脚本接口,拉取所有时间落在当日范围内的日程事件
  • 根据返回的事件列表长度做分支判断:列表非空则执行有日程的正向任务,列表为空则执行无日程的反向任务

可直接复用的基础脚本

-- 初始化当日时间范围
set todayStart to current date
set time of todayStart to 0 * hours + 0 * minutes + 0 * seconds
set todayEnd to todayStart + (23 * hours + 59 * minutes + 59 * seconds)

-- 查询当日日程,如需筛选指定日历,把下方"*"替换为对应日历的准确名称即可
tell application "Calendar"
    set todayEvents to every event of calendar "*" where its start date ≥ todayStart and its start date ≤ todayEnd
end tell

-- 分支执行逻辑
if (count of todayEvents) > 0 then
    -- 正向逻辑区:检测到今日日程时要执行的任务写在此处
    display notification "今日共有" & (count of todayEvents) & "个已安排日程" with title "日程检测"
    -- 可自行追加操作:比如启动工作类应用、打开会议软件、触发工作专注模式等
    -- 示例:启动飞书:tell application "Lark" to activate
else
    -- 反向逻辑区:未检测到今日日程时要执行的任务写在此处
    display notification "今日无已安排日程" with title "日程检测"
    -- 可自行追加操作:比如开启免打扰、打开休闲应用、触发休息模式等
end if

自定义调整注意事项

  • 跨天事件统计:如果需要把开始时间在昨日、但持续到今日的跨天事件也纳入检测范围,把查询条件修改为where its start date ≤ todayEnd and its end date ≥ todayStart即可
  • 任务扩展写法:两个逻辑分支内支持所有AppleScript合法操作:启动/退出应用、执行Shell命令、调用系统快捷指令、弹出交互弹窗都可以直接编写,执行Shell命令的写法为do shell script "你的终端命令内容"
  • 自动触发配置:可以把脚本导出为.app格式应用,搭配macOS自带的「自动操作」日历触发器或者「提醒事项」的定时提醒,实现每日固定时间自动运行检测,不需要手动点击执行

内容的提问来源于stack exchange,提问作者Ben Jo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 23:51:24