用 CalDAV 打造跨平台待办体验

前天 17:14

冲着出色的多平台支持,我曾长期使用微软待办(及其前身奇妙清单)——几乎所有主流操作系统都有客户端,并且能与Outlook邮箱深度集成。然而,自微软收购奇妙清单并将其改造为微软待办后,产品功能几乎停滞不 ...


冲着出色的多平台支持,我曾长期使用微软待办(及其前身奇妙清单)——几乎所有主流操作系统都有客户端,并且能与 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 原本是 Apple 生态的专属应用,近期也已登陆 Windows 平台。其免费版就已支持 CalDAV 协议,可以创建和管理日历及待办事项。

使用 CalDAV 账户登录 Fantastical 后,在 Settings > Calendars & Lists 中,可以看到日历(Calendars)和任务列表(Tasks)。点击下方的「+」按钮,即可创建新的待办清单,并为其设定颜色、名称,以及最重要的——到期提醒。

设置完成后,就可以在日历视图中快速添加待办事项了。Fantastical 提供了多种创建待办的途径:

点击侧边栏上方的「+」按钮,输入标题时点按切换为任务(Task),即可设置截止日期、提醒时间、所属清单、重复规则、优先级和备注等信息。

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

另外,点击系统托盘中的 Fantastical 图标,在弹出的迷你视图中也可以切换到 Tasks 视图。

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

会员专属文章,欢迎加入少数派会员。
优质内容
权益周边
会员社群
power+
评论区
全部评论0
成为少数派会员方可评论,立即加入 。若已是少数派会员,点击登录
还没有评论,来发表第一个评论吧
全部评论
还没有评论,来发表第一个评论吧
成为少数派会员方可评论,立即加入 。若已是少数派会员,点击登录
会员新功能
内容侧边栏
点击这里拉开侧边栏,即可查看会员内容列表,快速切换内容。