使用链接直接添加

使用链接生成的事件,相同的问题:

  • 因为没有UID和SEQUENCE,所以无法更新,如有变更只能新增事件,新老事件并存。
  • 使用链接在拼接事件的description时,如果有链接需要先decode,不然一些特殊字符&?=会被编译丢失或乱码

生成日历链接工具:
https://parcel.io/tools/calendar
https://www.labnol.org/calendar/

google calendar:

demo link: https://calendar.google.com/c...
demo 效果:image.png

链接参数文档:google calendar使用链接生成event没有官方文档,但是老的API延续下来一直能用。location可以填写会议地址
https://github.com/Interactio...

遇到的问题:

  • google calendar link在移动端浏览器打开时,如果手机中装有google calendar的app,会被拦截打开app,链接中要带有action=TEMPLATE,不然只能打开但无法自动生成事件。
  • google calendar 事件的description换行符是decode过的'\n'

outlook

这里记录是office365的相关文档,个人的outlook邮箱在上面的工具中有demo链接👆👆

demo link:https://outlook.office.com/ca...
demo效果:
image.png

链接参数文档:https://interactiondesignfoun...

遇到的问题:

  • outlook事件的description换行符是decode过的"\<br />"(没有前面的\,但编写的时候没有\会被编译为换行)

.ics文件

.ics(Internet Calendar Scheduling)是日历事件文件,是一个特殊格式的文档,可以用txt打开查看和编辑。可以被主流日历Microsoft Outlook, Google Calendar, Apple Calendar识别

ics文件格式是遵循rfc规范的,文档地址:
https://www.rfc-editor.org/rf...

开发时遇到的METHOD参数问题:

  • 我们设置的METHOD是REQUEST类型,即询问用户是否接受/拒绝/忽略该事件,这种方式在ICalendar中无法导入到calendar目录下,只有PUBLISH可以导入,PUBLISH即不询问直接添加事件。但REQUEST对后续的日历事件更新更友好,使用.ics中的"UID" 和 "SEQUENCE"来更新事件,UID相同,SEQUENCE值大的覆盖值小的。
  • 使用CANCEL去取消订阅的日历事件。

其他问题:

  • IOS下载.ics文件之后没有导入到icalendar的入口,只能往本机的邮箱发送这个.ics文件,利用邮件去添加事件

个人经验,有不对的地方请指出,欢迎交流~


玛德致
280 声望6 粉丝