电脑手机日历同步-跨端日历同步方案

2024-03-17 | 27分钟 | yrobot | 电脑,手机,日历,同步,跨端,pc,calendar,phone,mac,windows,sync,caldav

需求明确

近期有需求需要管理会议并在电脑手机日历直接查看近期会议安排,及时提醒

会议用的是 zoom

期望是 zoom 直接发出会议邀请,自动新建日历事件,然后在电脑手机日历中查看

而且希望用手机端自带日历软件,这样方便使用语音助手添加事件

方案思考

zoom 自动同步 支持 google calendar 和 outlook

会议日程可能只能从 这两者 中选择,如果使用顺利,日常日程也可以直接使用两者

如果两者无法顺利读写,退而求其次 只读这两者日历 + 读写其他账号

一些软件和协议

日历+邮箱 共同协议

Microsoft Exchange: Microsoft Exchange 是一种用于管理邮件、日历和联系人的服务器软件。Exchange 服务器支持多种协议,包括 IMAP、POP3 和 SMTP,以及 Microsoft 的 MAPI 和 EAS 协议。Exchange 服务器还支持 CalDAV 和 CardDAV 协议,以便在不同的日历和联系人应用程序之间同步数据。

单独使用邮箱的协议:

POP3 (Post Office Protocol version 3): POP3 是一种用于从邮件服务器接收邮件的协议。您可以使用 POP3 协议在单独的邮件客户端中接收邮件,而不将邮件与日历应用程序集成。

IMAP (Internet Message Access Protocol): IMAP 是另一种用于接收和管理邮件的协议,与 POP3 类似,但提供更多的功能,如在多个设备之间同步邮件状态。您可以在单独的邮件客户端中使用 IMAP 协议来管理邮件。

单独使用日历的协议:

iCalendar (.ics): 您可以使用 iCalendar 格式来创建和管理日历事件,而不将其与任何特定的日历应用程序或服务集成。通过 .ics 文件 或者 指向.ics 的 url ,您可以在单独的日历应用程序中导入和管理日历事件。通常通过 .ics 订阅的日历事件是只读的,您无法在其中创建或编辑事件。

CalDAV: 基于 WebDAV 的一种协议。如果您需要在多个设备之间同步日历事件,但仍希望保持日历功能的独立性,您可以使用 CalDAV 协议。通过 CalDAV,您可以在不同的日历应用程序之间同步日历事件,而不必与邮箱功能集成。

常用的邮件日历服务商

  • google
  • outlook
  • apple
  • 163
  • qq
  • Yahoo
  • Zoho
  • aliyun
  • 自己启一个 CalDAV 服务

一些客观事实

  • outlook 不支持 caldav
  • outlook Microsoft Exchange 非常不稳定,经常掉线
  • outlook 在手机端用 Exchange 无法登陆,用 OAuth 登陆又不支持日历
  • google 日历在国内没有网络环境
  • 163/yeah.net 没有 日历功能,所以也没有 caldav

方案选择

首先避坑

aliyun 邮箱 caldav 同步逻辑很奇葩,客服只会把不正常的说成正常,不推荐使用

Y9Uj16-18-52-23

YSXEzd-18-53-11

eBfkR9-18-53-30

zoom 会议日程

  • 其实网上大多建议使用 outlook+exchange 来直接在 pc 和手机端管理日程,但是我在手机端无法登陆 outlook,而且电脑端的体验非常差,同步经常掉线(即使有网络环境
  • 由于 zoom 日程同步只支持 google 和 outlook,所以只能选择 google calendar
  • 对于会议日程的管理需求,基本电脑端游读写操作,手机端基本只读提醒即可
  • 日常电脑网络环境比较可控,手机端的网络环境不太容易全天支持 google calendar

所以在电脑端 使用 caldav 同步 google calendar

手机端使用 .ics 订阅 google calendar(订阅的是 https://$proxy_to_google_calendar_url/xxx)

日常日程

  • 其他几个日历服务商基本都不支持 exchange,所以直接考虑 caldav 同步日程,而且 caldav 是开放协议,支持普遍性比较好
  • 可选的服务商有 apple、qq、自建 caldav 服务,等

由于我是 macbook 和手机同步,所以选用 icloud 的话,电脑端就无需额外配置里,只要在手机端使用 caldav 连接 icloud 即可。小米手机在日历客户端中添加 caldav 账户很方便,只需要 输入邮箱+应用密码(icloud 的应用密码在 icloud 网页端生成),服务器地址直接填写icloud.com即可

经过测试使用非常稳定

自建 caldav 服务

我也尝试了自建 caldav 服务,使用的是 docker ckulka/baikal:nginx,值要服务器稳定,这个也是很稳定的,在哪要用就在客户端配置一下 caldav 就好了,就是分享日历事件有点麻烦,没有找到好的方案。这个不如 icloud 方便

常见邮箱服务商的 caldav 地址

QQ 邮箱

dav.qq.com

阿里云邮箱

caldav.mxhichina.com

Yahoo 邮箱

caldav.calendar.yahoo.com

Zoho 邮箱

calendar.zoho.com