冲着出色的多平台支持,我曾长期使用 微软待办 (及其前身奇妙清单)——几乎所有主流操作系统都有客户端,并且能与 Outlook 邮箱深度集成。
然而,自微软收购奇妙清单并将其改造为微软待办后,产品功能几乎停滞不前,鲜有实质性优化。此外,服务在国内偶尔会遇到同步不畅的问题。这些因素促使我开始寻找替代方案。
既然大厂服务不尽如人意,支持自部署、数据自主可控的方案便显得尤为重要。一番探寻后,我想起了曾用 NAS 部署过的 CalDAV 日历服务。作为一项互联网标准,CalDAV 协议本身就包含了待办事项(To-Do)相关的内容。那么,我们能否基于此打造一个「私有化」的待办服务呢?
为什么是 CalDAV
首先,我们来了解一下什么是 CalDAV 协议。根据官方定义,CalDAV 全称为「日历分布式创作和版本协议」,是一种基于 WebDAV 的网络协议,并基于 RFC 4791 定义访问规则。
不过,CalDAV 本身并不包含待办任务功能,之所以能用 CalDAV 做待办,是因为它使用 iCalendar (iCal) 格式存储日历信息,后者作为一项「日历数据交换」标准(RFC 5545),其技术规范中恰好定义了待办事项(VTODO)。

根据 官方说明 ,VTODO 包含了常见待办工具的基础信息字段,如截止时间、标题、类别、地理位置、描述、组织者、优先级、重复规则、状态、摘要、链接等。

但同样是因为 iCal 本身并不是专门的待办标准,基于 VTODO 的待办功能相比现代主流待办服务有所欠缺。例如,子任务、附件这些主流任务管理工具的常见功能就无法实现。此外,由于提醒规则无法同步,你需要在每个平台的客户端上单独设置。这也是我们在下文中为各平台挑选客户端的重要考量之一。
了解以上基本信息和限制后,我们就可以开始搭建基于 CalDAV 协议的跨平台私有化待办服务了。
创建 CalDAV 账户
要基于 CalDAV 构建待办服务,第一步自然是创建自己的 CalDAV 账户。
如果你和我一样拥有 NAS 作为私有数据平台,那么直接通过 NAS 套件即可实现。以我使用的群晖(Synology)为例,只需在「套件中心」>「所有套件」中找到「Synology Calendar」并安装。

安装完成后,打开 Synology Calendar,在右侧边栏点击日历的下拉菜单,即可看到「CalDAV 账户」信息和所需的 CalDAV 链接。
此链接默认仅限局域网访问。如需从公网访问,则要通过 DDNS 或内网穿透等方式将其暴露至公网,具体方法本文不再赘述,感兴趣的读者可以参考我之前的文章。
扩展阅读: 一日一技 | 把日历同步交给私有云:群晖 NAS 配置 Synology Calendar
当然,如果你不用 NAS,也有很多其他的选择,包括自托管服务 Baïkal、NextCloud,或者借助 Gmail、iCloud 等商业邮箱服务的 CalDAV 支持等。具体 服务列表和登录方式 可以参看 Android 平台 CalDAV 同步工具 DAVx⁵(后文会介绍)的文档。
打造跨平台使用体验
Windows:Fantastical
由于 Windows 原生的邮件和日历应用已停止支持,我们需要借助第三方软件来使用 CalDAV 服务。除了开源的 Mozilla Thunderbird,兼具美观与实用的 Fantastical 是当下的理想之选。
Fantastical - Calendar & Tasks
Fantastical 原本是 Apple 生态的专属应用,近期也已登陆 Windows 平台。其免费版就已支持 CalDAV 协议,可以创建和管理日历及待办事项。

使用 CalDAV 账户登录 Fantastical 后,在 Settings > Calendars & Lists 中,可以看到日历(Calendars)和任务列表(Tasks)。点击下方的「+」按钮,即可创建新的待办清单,并为其设定颜色、名称,以及最重要的——到期提醒。
设置完成后,就可以在日历视图中快速添加待办事项了。Fantastical 提供了多种创建待办的途径:
点击侧边栏上方的「+」按钮,输入标题时点按切换为任务(Task),即可设置截止日期、提醒时间、所属清单、重复规则、优先级和备注等信息。

当然,你也可以在日历视图中双击快速创建,流程与前者一致。创建的待办事项默认与日历事件一同显示。如果觉得混杂,可以切换到专门的待办视图进行管理:点击侧边栏左下角的对勾图标,即可按清单查看所有待办任务,其中 All Tasks 会显示所有未完成项。
另外,点击系统托盘中的 Fantastical 图标,在弹出的迷你视图中也可以切换到 Tasks 视图。

任务到期时的系统通知效果如下:

Fantastical 应该是现阶段 Windows 平台最好的 CalDAV 客户端之一。它的缺点在于,如果只用待办功能会显得有些重,并且没有中文界面,对不熟悉英文的用户有一定门槛。
Android: Tasks.org
相比 Windows 需要借用日历应用,Android 平台则有专门支持 CalDAV 的待办应用。这里我更推荐仍在积极维护的 Tasks.org ,而非已停止更新的 OpenTask。
Tasks.org: Open-source To-Do Lists & Reminders
Tasks.org 是一款开源待办应用,其一大优点是支持多种同步协议,其中就包括 CalDAV。Tasks.org 提供两种 CalDAV 同步方式:一是直接在应用内添加 CalDAV 账户;二是通过 DAVx⁵ 这款应用同步。如果你已在使用 DAVx⁵ 同步日历,推荐采用后一种方案。

要通过 DAVx⁵ 同步,需先在 DAVx⁵ 中添加 CalDAV 服务器地址,然后在设置中授权 Tasks.org 集成。最后,回到 DAVx⁵ 的账户界面,刷新日历/任务列表并手动同步一次即可。

Tasks.org 的主界面与其他待办应用类似。创建任务时,可设置的字段非常丰富,包括标题、起止日期、重复规则、优先级、所属清单、标签、提醒、备注、地点,甚至还支持附件和计时器。
我个人认为,它在重复任务设置上比微软待办更为出色。以我为例,我需要为「少数派早报」撰稿,并习惯在前一个工作日的 13:00 提交素材。这项任务并非每天都有,而是集中在周一至周四。微软待办无法实现这种「仅在部分工作日重复」的设置,而 Tasks.org 则可以轻松搞定,能灵活地应对各种复杂的重复场景。

在通知提醒方面,Tasks.org 同样提供了丰富的配置选项,例如合并多个通知、为提醒添加语音播报、设置滑动延后时长等。

此外,Tasks.org 还提供了任务默认值、列表选项、编辑界面、导航抽屉等大量自定义设置,以满足不同用户的使用习惯。设置好后,待办到期时就会收到提醒通知,点击通知卡片可选择编辑、延后或完成,整体体验与其他主流待办应用无异。

总而言之,Tasks.org 在 Android 上基本可以完美实现 CalDAV 待办管理。唯一的缺点是,通过 DAVx⁵ 的同步是周期性的(最短 15 分钟),而非即时推送,这可能导致你在 Android 端标记完成的任务状态,无法立刻同步到其他设备。如果追求实时同步,直接在 Tasks.org 中添加 CalDAV 账户是更好的选择。
扩展阅读: 不花钱做好任务管理,强大、开源的效率利器:Tasks.org
iOS | macOS:使用原生的「提醒事项」
与 Windows 和 Android 不同,iOS 和 macOS 原生支持 CalDAV 协议。因此,我们可以直接使用系统自带的「提醒事项」App 来管理 CalDAV 待办任务。

以 macOS 为例,首先打开「系统设置」>「互联网账户」>「添加其他账户…」,选择「CalDAV 账户」并根据提示完成添加。之后,系统会询问你希望将该账户用于哪些 App,我们在此勾选「提醒事项」即可。

完成设置后,打开「提醒事项」App,你之前在其他平台创建的 CalDAV 待办清单和任务项便会同步显示于此。

点击单个任务,即可对其进行编辑,可设置的选项(如日期、时间、重复规则、优先级等)与其他平台的待办应用类似。设置完成后,任务到期就会收到系统提醒,效果如下:

然而,使用原生「提醒事项」管理 CalDAV 任务存在一个致命缺陷:同步不及时。系统日历可以设置 CalDAV 的同步频率,但「提醒事项」却没有任何相关设置,甚至连手动刷新按钮都没有。这在跨平台使用时问题尤为突出:你在 Android 上完成的任务,可能过了很久在 macOS 的「提醒事项」里仍是未完成状态,造成信息不同步的混乱。好在,我们可以借助第三方应用来解决这个问题。
iOS | macOS:用 2Do 实现实时同步
Apple 自然希望用户全面拥抱 iCloud,但我们仍有选择。在 iOS 和 macOS 上, 2Do 就是一款能够可靠、即时同步 CalDAV 任务的第三方应用。
需要注意的是,2Do 自 2023 年起已基本停止功能更新,仅提供基础维护(其开发者正专注于另一款日历应用 BusyCal)。因此,2Do 的界面设计稍显过时,与当下的 macOS 风格不甚协调。我们先在「偏好设置」>「同步」中添加自定义 CalDAV 账户。

首次同步时,2Do 会询问是否用服务器数据覆盖本地。由于我的 CalDAV 账户中已有任务,我选择了覆盖,稍后便看到了在其他平台创建的待办清单。


如前文所述,CalDAV 协议本身不包含提醒规则的同步。因此,同步到 2Do 的任务,其提醒时间会被默认设为截止日期的零点。我们需要手动逐一调整这些任务的提醒时间。

在创建任务方面,2Do 的交互也颇具特色。它不像许多应用那样弹出对话框或表单,而是直接在列表中新建一个任务条目,然后通过点击不同区域的图标来配置详细信息。设置好提醒后,待办到期时会通过 macOS 的通知中心弹出提醒,效果如下:

虽然手动修改提醒有些麻烦,但考虑到原生「提醒事项」那不靠谱的同步机制,2Do 的同步即时高效,反而是管理 CalDAV 待办事项的最佳选择。不过 2Do 并非免费应用,其 iOS 版本售价 68 元,macOS 版也需单独购买授权。
结语
通过以上在各平台的设置,一套完整的私有化待办服务就搭建完成了。从后端服务到前端数据均由自己掌控,网络访问速度和稳定性也更有保障。如果你同样看重数据安全与访问质量,并且是一位 GTD 服务的重度用户,不妨动手搭建一套属于自己的待办系统。
作者
阅读信息
全文字数 3244字
阅读本文共需 5分钟
字号选择
作者
目录 4
-
为什么是 CalDAV
-
创建 CalDAV 账户
-
打造跨平台使用体验
- Windows:Fantastical
- Android: Tasks.org
- iOS | macOS:使用原生的「提醒事项」
- iOS | macOS:用 2Do 实现实时同步
-
结语