使用链接直接添加
使用链接生成的事件,相同的问题:
- 因为没有UID和SEQUENCE,所以无法更新,如有变更只能新增事件,新老事件并存。
- 使用链接在拼接事件的description时,如果有链接需要先decode,不然一些特殊字符&?=会被编译丢失或乱码
生成日历链接工具:
https://parcel.io/tools/calendar
https://www.labnol.org/calendar/
google calendar:
demo link: https://calendar.google.com/c...
demo 效果:
链接参数文档: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效果:
链接参数文档: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文件,利用邮件去添加事件
个人经验,有不对的地方请指出,欢迎交流~
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。