老杨说话的地方
  • 首页
  • 关于老杨
  • 博客时间
  • 文章分类
    • 人生感悟
    • 信息技术
    • 往事随风
    • 情感随笔
    • 文学创作
    • 生活记录
    • 评论杂谈
    • 人工智能
  • 留言本
我是老杨
张驰有度 宠辱不惊
  1. 首页
  2. 信息技术
  3. 开源开发
  4. 正文

同步日历-我的第一款鸿蒙应用

2026年10月19日 8点热度 0人点赞 0条评论

这话,似乎是一种暗示,就是还有其他的鸿蒙应用会上架。

我是有数据洁癖的,就是,数据能掌握在自己手中,就不会放在平台上,自从我搞了一个自己的服务器,并买了一个NAS,我就把很多数据都放在自己这里了。

日程是我认为比较重要的数据,但是我发现很多人并不重视,好在群晖的NAS有日历的功能,于是我就用这个日历来管理我的日程。之前在各类设备上使用都没问题,可是手机升级成为鸿蒙系统,竟然一个好用的CalDav客户端都没有,华为官方的那个,只能读取,并不能编辑,有点残废,后面实在忍不了,自己做一个吧。

于是就有了「同步日历」。自己用了一段时间,感觉还行,这里写篇文章介绍一下,也给有同样需求的朋友参考。

本文目录

  • 1. 它到底是什么
  • 2. 几个特点
    • 2.1. 时间轴:日程不是列表,是时间
    • 2.2. 可选地“镜像”到系统日历
    • 2.3. 四张服务卡片
    • 2.4. 后台同步
  • 3. 关于隐私
  • 4. 最后

它到底是什么

一句话:面向鸿蒙(HarmonyOS NEXT)的 CalDAV 日历同步应用。

它不提供云端托管,也不需要注册任何账号。你把它连到你自己的 CalDAV 服务器上(群晖、Nextcloud、Radicale、Baïkal,或者任何支持标准 CalDAV 的服务),它就负责把日程同步下来、显示出来,再把你的修改推回服务器。数据自始至终在你的设备和你的服务器之间流动,中间没有第三个地方。

手机和平板都能装,源码是开放的。

几个特点

时间轴:日程不是列表,是时间

这是我做这个 App 最主要的原因。

大部分日历软件把一天的日程“一条一行”地列出来。这样能看清“有哪些事”,但看不清“什么时候、多长时间、跟什么撞上了”。比如上午十点你有个会,同时也约了一通电话,列表里它们就是相邻的两行,你得自己在脑子里换算时间才知道重了。

「同步日历」默认用一种我把它叫做时间轴的方式来画:

  • 一条日程按真实时长画成一块竖着的色块,块越高,时间越长;
  • 时间重叠的日程,会自动左右并排,各占一半宽度,不会互相盖住;
  • 全天、跨天的日程单独画在时间轴上方,不跟日内日程混在一起;
  • 如果是“今天”,刻度上还有一条红色的当前时刻线,随时间自动往下走,一眼就知道现在进行到哪、下一件事还有多久。

色块的颜色取自所属日历本的默认色,所以看一眼颜色就知道这条日程来自哪个本。刻度范围默认是 8:00 到 18:00,如果某天在 8 点前或 18 点后有日程,才会把那段刻度一并显示出来——这样即使一天只有一两件事,也不会只剩短短的一条刻度。

如果你就是想快速扫读、或者日程标题特别长,可以在「设置 → 日程显示方式」里一键切成列表方式:同一天的日程改成逐条排列,不受时间刻度约束,长标题不容易被挤成省略号。

两种方式共用同一套数据和操作,切换只改变“怎么画”,不会动到任何日程。而且这个开关是全局的,主界面和桌面卡片会一起生效。

可选地“镜像”到系统日历

这里要解释一个我这边的取舍。

鸿蒙系统里有些入口——比如小艺、桌面上的系统日历卡片、手表、负一屏——它们只认系统日历,不认第三方 App 自己存的日程。也就是说,你在这个 App 里安排得再清楚,小艺也看不见。

所以「同步日历」做了一个可选的日历镜像:开启后,把你选中的日历本写进系统日历里一个由本应用创建的独立账户,这样上述那些系统入口就都能看到你的日程了;每个日历本保持各自的颜色,彼此分得清。系统日历里的改动,也会在下次同步时回读、写回你的 CalDAV 服务器,形成闭环。

这个功能默认是关闭的,需要你自己在设置里打开;打开时会单独申请“写入日历”权限。不想要了可以随时关掉,并且一键清除已经镜像出去的内容。

四张服务卡片

不看手机也能知道今天有什么安排:2×2 今日速览、2×4 正在进行、4×4 今日时间轴、6×4 全天时间轴,四种尺寸。其中 4×4 和 6×4 会在桌面上画一个迷你时间轴,冲突日程左右并排、还有当前时刻的红线,支持前后翻页。

后台同步

鸿蒙出于省电考虑,不允许普通应用在后台常驻并高频轮询,这一点我完全理解,也不打算跟系统对着干。所以用的是组合方案:前台按间隔自动同步 + 后台由系统定时唤起同步 + 回到前台/网络恢复时立刻补一次。

后台那条通道受系统省电策略约束(最短大约 2 小时一次,应用使用越频繁间隔越接近这个下限),需要在设置里把「后台自动同步」打开。老实说,如果你的场景是“日程变了要马上知道”,任何系统的普通应用都做不到,除非走厂商的推送服务——而我做这个 App 的出发点之一,恰恰是不依赖厂商云。

为了能最大限度的成功在后台同步数据,使用了卡片自带的刷新功能,每30分钟刷新一次,这样,如果你在桌面上放了一个卡片,那么就会每30分钟更新一次同步。

关于隐私

这部分我想说得具体一点,免得空喊口号:

  • App 没有自己的服务器,开发者无法访问你的日程内容;
  • CalDAV 的账号密码用 AES-256-GCM 加密后存在本机,密钥由系统硬件密钥库(HUKS / TEE)生成和保管、不可导出,只在同步时临时解密;
  • 权限只申请功能必需的:读取日历、位置(都是只在前台用);“写入日历”只在你主动开启镜像时才申请,而且只写本应用自己创建的那个账户,不会动系统日历里其它任何内容;
  • 没有集成任何第三方统计、广告或数据采集 SDK,代码完全开源,欢迎审计。

最后

这个 App 已在华为应用市场可以下载,源码也放在我自己的代码库上。

如果你也有自己的 CalDAV 服务器,或者只是不想把日程交给别人的云,欢迎试试看。用着有问题、或者有什么功能是你特别想要的,可以到官网的反馈页留言,或者给我发邮件。

  • 官网:https://synccalendar.yangyq.net/
  • 华为应用市场:https://appgallery.huawei.com/app/detail?id=synccalendar.yangyq.net
  • 开源仓库:https://code.yangyq.net/laoyang/SyncCalendar
  • 使用帮助:https://synccalendar.yangyq.net/uh.html

本人承诺,该软件,永久开源免费,永远不会有广告,永远不会搜集用户任何数据。

如有疑问,可以留言。

标签: NAS 日历 鸿蒙
最后更新:2026年10月19日

老杨

博士,非博学之士;讲师,讲所学所知。糊涂半生,虚度半世,唯愿平淡快乐,度过此生。

点赞
guest

guest

0 评论

老杨

博士,非博学之士;讲师,讲所学所知。糊涂半生,虚度半世,唯愿平淡快乐,度过此生。

搜索
最新 热点 随机
最新 热点 随机
同步日历-我的第一款鸿蒙应用 别成为AI的奴隶 给阿嬷的情书 信息焦虑综合症 PUA 人的悲喜并不相通 RIME输入法万象拼音输入方案更改自定义短语文件的方法 禁用RIME输入法万象拼音输入方案表情的办法 幸福者避让原则 WordPress插件WP-Editor.md代码语法无法高亮问题的解决方案
同步日历-我的第一款鸿蒙应用
Ubuntu下的中文桌面 WordPress2.6的中文Tag标题显示Bug 从Windows7升级到Windows Xp 搜索引擎排名 不顺 小米MIX的意义 写字 Linux系统终端没有颜色 冯巩赵本山郭德纲小沈阳 LaTex中的下划线
最新评论
  • 信息焦虑综合症上的shanshan先从减少手机使用时间开始。
  • 第二青春计划失败上的shanshan所以必须得自己下定决心痛改前非,而不是跟自己讲条件。
  • 第二青春计划失败上的老杨这种平台挺多的,但是应该没啥用,能有啥情绪价值比躺着刷手机更好呢?
  • 春秋航空让人长见识上的老杨已经遇到了,额外支付了170,托运登机行李,还不是托运行李。
  • PUA上的老杨那很好,恭喜你
  • 信息焦虑综合症上的老杨可以尝试改变。
  • 别成为AI的奴隶上的老杨现在很多人离开AI已经不知道怎么工作了。
  • 第二青春计划失败上的shanshan建议开发一个适合P人的工作生活计划平台,完不成没什么惩罚、但是完成了有…
  • 春秋航空让人长见识上的shanshan还有部分机型里20寸箱子应该上不了机,且没有免费行李托运额度。托运费超…
  • 人的悲喜并不相通上的shanshan这个世界精致利己主义者太多啦!
文章分类
关注公众号

COPYRIGHT © 2026 老杨说话的地方 版权所有

THEME KRATOS YANG Modified BY 老杨

鲁ICP备17014997号-4

鲁公网安备 37021302000754号