macos原生日历配合快捷指令和say命令可实现本地化语音通知:创建含提醒的日历事件→用快捷指令筛选带标识词的事件→调用ting-ting语音引擎播报→通过自动化或launchd定时执行。

要在电脑上为日历中的重要事项设置语音通知,避免错过关键日程,你不需要依赖联网语音助手或第三方云服务——macOS原生日历配合系统快捷指令和语音合成(say命令)即可实现本地化、零延迟的语音播报。
确认日历事件已创建并启用提醒
打开“日历”应用→点击左上角“文件”→选择“新建日历事件”→填写标题、日期、时间;在右下角“提醒”栏中,点击“+”添加至少一项提醒,例如“事件开始前15分钟”。【若此处未添加任何提醒,后续语音触发将无触发依据】
确保该事件所属日历未被设为“隐藏”,且iCloud同步已开启(系统设置→Apple ID→iCloud→勾选“日历”)。
用快捷指令自动触发语音播报
这一步必须在macOS Ventura或更新系统中操作。打开“快捷指令”应用→点击左上角“+”新建快捷指令→在搜索框输入“日历”→拖入“获取日历事件”动作→设置“开始日期”为“今天”,“结束日期”为“今天”,勾选“包括已完成事件”(防止漏播刚标记完成的重要项)。
接着拖入“过滤日历事件”动作→点“添加筛选条件”→字段选“标题”,操作选“包含”,值填你约定的重要标识词,例如“【紧急】”或“❗终稿提交”。
再拖入“对于每个项目”动作→内部嵌套“文本”动作,输入:“注意:$(当前项目.标题)将在$(当前项目.开始时间)开始”。
最后拖入“运行Shell脚本”动作→shell选“zsh”,脚本内容写:say -v "Ting-Ting" "$1"→在下方“传递输入”选“作为参数”,这样每条匹配事件都会调用中文语音引擎朗读。
保存快捷指令,命名为“播报今日紧急事项”。
设置自动化定时运行
方法一:使用“快捷指令”内置自动化
点击快捷指令App侧边栏“自动化”→点击“+”→选“特定时间”→设定每日执行时间(如每天8:55)→关闭“运行前询问”→添加操作→搜索并选择你刚保存的“播报今日紧急事项”→完成。
方法二:用launchd后台守护(更稳定,不依赖GUI登录)
在终端中执行:mkdir -p ~/Library/LaunchAgents→用nano创建plist文件:nano ~/Library/LaunchAgents/com.user.urgent-reminder.plist→粘贴配置后保存退出→执行launchctl load ~/Library/LaunchAgents/com.user.urgent-reminder.plist启用。此方式即使电脑锁屏、无用户登录也能准时播报。
注意:launchd方式需将快捷指令导出为.app并改用osascript调用,否则无法后台运行。具体路径需填绝对路径,例如/usr/bin/osascript -e 'run app "/Users/xxx/快捷指令/播报今日紧急事项.app"'。











