# 让 iPhone 在会议开始时自动进入勿扰模式

> 本文公开全文。

原文：https://utgd.net/article/20219

本文的步骤属于中等复杂程度，如果遇到问题，请加入会员（Beta 价格 ¥248/年）详细询问。本站作者会对会员进行文字/语音答疑。

## iOS 17 带来“真・自动化”

群友 @AlonAN 从 iOS 16 时期开始就提出了一个这样的需求：

> 能不能让 iPhone 在开会时自动进入勿扰模式？在会议结束后退出勿扰模式？

在当时，Shortcuts 的自动化可以说是个“伪・自动化”所以不能做到。“伪・自动化”的意思是，你设置了一个触发一系列操作的条件，它满足了这个条件也不会真的自动触发，而是会有一个通知，需要你点开通知同意运行。比如“当我到家连上了家里的 Wi\-Fi，就关上了流量”这个自动化。如果你到家里连上家里的 Wi\-Fi，它不会自动关上蜂窝，而是会弹出一个通知，问你同意不同意这个 Shortcuts 运行？如果你同意，它才会帮你切换。很明显，这个自动化里包括了手动成分，哪怕只有一下。

直到 iOS 16，大多数的自动化触发条件，特别是牵涉到“发送消息”相关的，都是“伪・自动化”。但是在 iOS 17，绝大多数的自动化条件，可以设置“立即运行”。这样，人们就不需要再“确认”那一下。自动化变成了“真・自动化”。

这样一来，@AlonAN 的需求就可以满足了。

## 流程概览

注：因为原理基本一样，同时为了篇幅、结构和阅读方便。本文先写最 tricky 的部分，也就是怎么样做到“日历日程开始 → 开启勿扰模式”。自动关闭的部分可以按此方法反推，也有更好的办法，需求高的话另写。

理论上，这个需求的思路极其简单：

- 指定某个日历

- 当这个指定的日历中的任何事件开始

- 打开勿扰模式

但是目前（iOS 17 Dev Beta 2）是不支持用日历当作自动化触发条件的。所以这个思路目前不可行，需要找一些替代方案。说这个思路目前不可行，是因为它没有永远不可行的道理。从隐私、安全各个角度来看，Shortcuts 都是完全可以用日历日程作为触发条件的。所以当未来一旦 Shortcuts 可以用日历作为触发条件，我会毫不意外，而且也建议有这个需求的换为系统内置的日历日程作为触发条件。因为环节更少、第三方环节更少，也就更稳定。

那么，目前的代替方案，思路如下：

- 用 Zapier 关联 Gmail 或者 Outlook

- 当日历日程开始时，发送一封特制的邮件给自己

- 把 Shortcuts 的自动化设置为，当收到这封特制的邮件，开启勿扰模式

这个方案的 Zapier 可以换成 Microsoft 的 Power Automate或者任何其它的可以读取你邮件服务的自动化服务。

## 具体步骤

第一步：通过 Zapier 关联日历。

因为基础步骤很多，比如“注册、登陆、按这个按钮新建自动化、搜索 Gmail、关联账户”……相信本站读者比特素养很高了，所以在第一步里，先只写需要特殊注意的关键步骤。

这里有 2 个需要注意的步骤： 1\. 我们不只是关联日历账户，我们要指定日历账户中的某个日历。 2\. Zapier 的免费账户限制：Zapier 的免费账户不是实时推送而是在事件发生的（至少） 16 分钟之前推送。

这里对上述两个问题配图详细说明一下。

Zapier 有要求选择指定的日历，这里要注意一下。这就相当于一个 Todo 软件里有多个 List 来组织管理不同上下文的任务一样。一个日历账户里也会有多个目的的日历。用的人都明白啦，不用的人来群里提醒我写相关文章。

然后是 16 分钟限制，Zapier 要求设置在日历开始多久前触发动作：

免费账户的限制是 16 分钟，所以这里最短填16。虽然不是实时触发，我倒是觉得提前一点没什么不好的。用 Outlook 的可以用 Microsoft 的 Power Automate，估计实时程度要高一点。

第二步：当日历日程开始，给自己发一封邮件。

用发邮件这一招是因为 Shortcuts 可以用邮件的相关信息做为触发 Shortcuts 的条件，比如发信人、关键字等。根据这个特点，我们可以设计一封不会和其它邮件混淆的特殊邮件，来作为触发自动化的条件。

这个邮件模板首先要在 Zapier 里确定。你可以关联任意的邮件账户，因为我们对发信邮箱没有任何要求。当你关联好账户，我们开始看发送邮件的细节：

- 收件人：最好是 Gmail，其它也可以，但都要在 iOS 的邮件客户端里设置好账户

- 标题：ShortcutsDoNotDisturb。标题的关键就是不可能和别的重复。直接复制我这个应该也不会重复，也可以稍作微调。以防万一，请用英文。

- 内容：其实可设可不设，但害怕邮件直接被当作垃圾邮件被处理，可以添加一些内容，但不重要。

设计好这两个细节即可。下面来看 Shortcuts 里的相应设置。

第三步：在 Shortcuts 里设置收到邮件后的自动化

在 Shortcuts 里找到自动化，添加新的自动化，选择“电子邮件”，再进行如下详细设置：

首先是触发条件相关，这里当然是要和 Zapier 里的内容完全一致：

- 收件人：你在 Zapier 中设置的收件人

- 标题：ShortcutsDoNotDisturb

- 勾选 “立即运行”

随后，选择下一步，设置当条件满足时触发什么动作。在这里，我们要触发的是“勿扰模式”，所以把勿扰模式开启即可。

## 收尾

自此，核心步骤就完成了。但如果追求高一点，还需要至少作以下两件事：

- 把这些标题为“ShortcutsDoNotDisturb”自动归档。

- 设置事件结束后关闭勿扰模式。

自动归档是肯定要的，不然收件箱里会塞一堆标题为“ShortcutsDoNotDisturb”的邮件。自动 Archive，也有很多解决方法各位可以自行搜索，我用的是 Gmail 的 Filter 功能。

日历日程结束后关闭勿扰模式，实际上是简单的，就是在开启勿扰模式的 Shortcuts 里加以下几个动作：

- 获取临近日程：获取某个日历（你开启勿扰模式的那个日历）的下一个日历日程，也就是你会议这个日程

- 设置打开勿扰模式直到日程结束：把日程设为上一步获取的临近日程即可。

## 小结

“能让 iPhone 在开会时自动进入勿扰模式，在会议结束后退出勿扰模式”这个需求是合理的来自于真实工作场景的需求。可以在 iOS 17 基本得到解决。但也可以看到，通过嫁接第三方服务来解决需求，还是多少不太方便。需求强的可以先用着，不强的可以等等。以日历日程为自动化的触发条件这么合理的设计，希望苹果赶快意识到。

---

[前往标准阅读页](https://utgd.net/article/20219?audience=web)
