需求明确#
近期有需求需要管理会议并在电脑手机日历直接查看近期会议安排,及时提醒
会议用的是 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,您可以在不同的日历应用程序之间同步日历事件,而不必与邮箱功能集成。
常用的邮件日历服务商#
- outlook
- apple
- 163
- Yahoo
- Zoho
- aliyun
- 自己启一个 CalDAV 服务
一些客观事实#
- outlook 不支持 caldav
- outlook Microsoft Exchange 非常不稳定,经常掉线
- outlook 在手机端用 Exchange 无法登陆,用 OAuth 登陆又不支持日历
- google 日历在国内没有网络环境
- 163/yeah.net 没有 日历功能,所以也没有 caldav
方案选择#
首先避坑#
aliyun 邮箱 caldav 同步逻辑很奇葩,客服只会把不正常的说成正常,不推荐使用#
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