系统日历的尴尬:只能导入,不能导出

安卓手机厂商自带的系统日历只支持从其他软件导入功能,没有导出日程到其他软件的功能,使用项目管理软件的时候无法对系统日历的日程进行查看和修改。当然,你也可以使用全平台的项目管理软件,但是这就无法享受到系统日历的语音助手创建功能与系统级别的提醒功能,所以本文提供了一套只要支持CalDAV 协议的应用,就可以在这些支持协议的任何应用上,对日程进行修改的时候都可以进行同步。

安卓手机厂商自带的系统日历只支持从其他软件导入功能,没有导出日程到其他软件的功能,这带来一个尴尬局面:

  • 系统日历里用语音助手创建的日程,无法同步到项目管理软件;
  • 反过来,在项目管理软件里修改的日程,也回不到系统日历。

有人会说:那就直接用全平台的项目管理软件不就行了?但这样一来,你就放弃了系统日历的两个关键能力——语音助手快速创建系统级提醒

本文的方案是:用 DAVx5 把系统日历接入 CalDAV 协议,只要对方服务支持 CalDAV,就能实现日程在系统日历与第三方应用之间的双向同步。

用 DAVx5 把系统日历接入 CalDAV

CalDAV 可以理解为“日历界的通用语言”。它基于 HTTP/WebDAV,规定了客户端如何从远程服务器读取、修改、共享日历和待办。只要两边都支持 CalDAV,就能互相同步,而且几乎所有的日程管理软件都支持这一协议,如果你正在使用的软件不支持,那你最好换一个软件。

CalDAV是本文方案的基础。

选一个支持 CalDAV 的服务

国内原生支持 CalDAV 的服务不算多,大致分两类:

开箱即用型

服务说明
钉钉日历免费,与钉钉生态绑定
飞书日历免费,与飞书生态绑定
中国移动 139 邮箱部分账户支持,需自行确认

自托管型

服务说明
Radicale轻量开源 CalDAV/CardDAV 服务器
Cal.com开源日程平台,支持自托管

QQ 邮箱部分账户已下线该功能,其他国内邮箱也常有额外限制。如果你不想折腾服务器,建议直接在钉钉日历飞书日历中选一个;愿意自己部署,再考虑 Radicale 或 Cal.com

手机端配置:DAVx5 安装与同步

安卓系统日历本身提供“添加 CalDAV 账户”的入口,但是不提供对 CalDAV 账户的日程进行修改的功能,所以需要 DAVx5 作为中间层:它负责与 CalDAV 服务通信,再把日历暴露给系统日历,也可以反过来与系统日历通信,把日历暴露给 CalDAV 服务 。

安装

  • Google Play 搜索 DAVx5
  • 或从 F-Droid 安装(开源版)

动手配置:安装 DAVx5 → 添加账户 → 授权 → 选日历 → 系统日历选分类。

关键坑

在系统日历中新建日程时,​必须选择 DAVx5 同步过来的那个日历分类​,否则日程只会留在本地,不会同步到 CalDAV 服务。很多人配置完发现“没同步”,都是因为这一步选错了日历。

如何验证同步成功?

  • 在系统日历新建一个日程,选择 DAVx5 日历分类;
  • 等待几秒到几分钟,登录钉钉/飞书日历网页端查看是否出现;
  • 反向在网页端修改,观察手机系统日历是否更新。

常见问题

  • 同步不生效:检查 DAVx5 是否被系统省电策略限制,建议设为“无限制”。
  • 日历不显示:确认 DAVx5 中已勾选该日历,且系统日历中该分类未被隐藏。
  • 只能单向:部分服务对 CalDAV 支持不完整,优先选钉钉/飞书。

电脑端(以 Super Productivity 为例)

Super Productivity 是一款开源、免费、无账号、无追踪的任务管理与时间追踪工具,支持 Windows、macOS、Linux、Android、iOS 及网页端。它由开发者 Johannes Millan 自 2016 年起持续维护,GitHub 星标超过 18,000,采用 MIT 许可,永久免费且无广告。

它的核心能力包括:

  • 任务管理​:支持子任务、标签、项目、截止日期、时间估算,全局快捷键(默认 ​Ctrl+Shift+A​)可随时快速捕获任务。
  • 时间盒与每日计划​:将任务拖拽到日程表的时段中,规划专注时间块。
  • 番茄钟与时间追踪​:内置番茄钟计时器(含休息提醒),一键追踪每个任务的实际耗时,自动生成时间表并可导出 CSV/JSON。
  • 看板与优先级视图​:提供看板(Kanban)和艾森豪威尔矩阵两种板视图,方便可视化任务流和决定优先级。
  • 隐私优先​:不收集任何数据、无需注册账号,任务默认只保存在本地设备;可选通过 WebDAV、Dropbox 或 CalDAV 同步。

尽管Super Productivity 更加偏向代办和项目管理,但是对代办事项配置时间断之后,支持将代办事项添加到 CalDAV 中。

配置过程:

打开​显示问题看板​(Issue Provider 面板)。

点击最右侧的​加号​。

在“配置 Issue Provider”区域选择 ​CalDAV​(注意不是 iCal/Calendar,两者用途不同:iCal 走订阅只读,CalDAV 走认证可读写)。

在配置对话框中填入:

  • URL​:​https://calendar.dingtalk.com/dav/{你的用户名}/primary/
  • 用户名与​密码​:钉钉日历 CalDAV 同步设置中生成的专属凭证。

点击 Test ConnectionLoad Calendars 加载日历列表,保存即可。

⚠️ ​钉钉日历的 URL 格式注意​:结尾必须带 ​/primary/​,中间的用户名替换为你钉钉账号对应的用户名。

 

待解决的问题

1. 语音助手无法选择 DAVx5 日历

在 OPPO 系统日历中,通过语音助手创建日程时,日历选项里找不到 DAVx5 同步过来的日历分类。这意味着语音创建的日程默认落在系统本地日历,无法自动同步到 CalDAV 服务。

2. 日程创建后短暂“消失”

在系统日历中新建日程后,虽然手动选择了 DAVx5 日历分类,但日程会在创建后短暂消失,过一段时间才重新出现在同步列表中。

第二个问题的本质可能是:​系统日历的本地展示逻辑与 DAVx5 的同步刷新存在时间差​。系统日历先在本地区写入一条记录并展示,DAVx5 开始同步时,该记录被纳入同步队列,本地展示层可能因为“等待服务器确认”而暂时隐藏它,等同步完成后才重新渲染。这不是数据丢失,而是 UI 刷新时序问题。

以上方案在 OPPO 系统日历上验证时,遇到两个尚未完全解决的问题。它们不影响同步本身,但会影响使用体验,记录如下,供遇到相同情况的读者参考。