0

如果通过 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 用逗号 (,) 分隔每个类别。

这是正确的吗?

4

1 回答 1

0

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

同时,有许多 rfc 5545 属性允许多次指定,例如ATTENDEE. 因此解析器已经学会了处理多个属性。查看rfc 7986 第 5.6 节CATEGORIES,明确允许使用多个属性。

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

于 2020-08-19T07:04:58.730 回答