微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

CalDav:Nextcloud和Thunderbird Lightning

如何解决CalDav:Nextcloud和Thunderbird Lightning

如果通过nextcloud Ui创建事件,则Caldav服务器响应如下所示(输出缩短):

BEGIN:VCALENDAR

VERSION:2.0

PRODID:-//Mozilla.org/NONSGML Mozilla Calendar V1.1//EN

BEGIN:VTIMEZONE

TZID:Europe/Berlin

BEGIN:DAYLIGHT

TZOFFSETFROM:+0100

TZOFFSETTO:+0200

TZNAME:CEST

DTSTART:19700329T020000

RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=3

END:DAYLIGHT

BEGIN:STANDARD

SUMMARY:Test
.....

CATEGORIES:Jg. 5  <-- // here

CATEGORIES:Jg. 6  <-- // here

....

END:VEVENT

END:VCALENDAR

如果事件是在Thunderbird中创建的,则它看起来像这样(输出缩短):

BEGIN:VCALENDAR

VERSION:2.0

CALSCALE:GREGORIAN

PRODID:-//Mozilla.org/NONSGML Mozilla Calendar V1.1//EN

DTSTART:19700329T020000

RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU

DTSTART:19701025T030000

RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU

END:STANDARD

END:VTIMEZONE

BEGIN:VEVENT

CREATED:20200813T111910Z

LAST-MODIFIED:20200817T084432Z

DTSTAMP:20200817T084432Z

UID:584589d3-54a6-4f5a-bd4c-03e478938b07

SUMMARY:Test

CATEGORIES:Jg. 5,Jg. 6 <-- // here

....    
END:VEVENT

END:VCALENDAR

如您所见,Nextcloud为每个类别创建自己的字段,而Thunderbird用逗号(,)分隔每个类别。

这是对的吗

解决方法

根据rfc 5545 section 3.8.1.2CATEGORIES属性可以具有多个逗号分隔的值。这就是雷鸟所做的。

同时,允许多次指定多个rfc 5545属性,例如ATTENDEE。因此,解析器已学会处理多种属性。从rfc 7986 section 5.6看,CATEGORIES的多个属性被明确允许。

某些解析器可能会在内部将多个CATEGORIES属性转换为单个属性(反之亦然?),这在编辑事件时会很明显。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。