iCal 事件重复设置为 M、W、F - 显示为 S、T、R!
我有一个以 UTC 格式指定且重复的 iCal 事件。一切似乎都正确输出,但 iCal 客户端却出现问题:重复模式是 M、W、F,但开始日期(转换为 UTC)是星期二。
计算错误的重复模式是 S,T,R。
这是无法正常工作的 ical 输出:
BEGIN:VCALENDAR
VERSION:2.0
METHOD:PUBLISH
X-WR-CALNAME: Room ICCS008
PRODID:-//Drupal iCal API//EN
BEGIN:VEVENT
UID:calendar.18861.field_date.0.8
SUMMARY:CPSC 210 L2C
DTSTAMP:20110518T123628Z
DTSTART:20110621T010000Z
DTEND:20110621T033000Z
RRULE:FREQ=WEEKLY;INTERVAL=1;BYDAY=MO,WE,FR;UNTIL=20110730T033000Z
URL;VALUE=URI:https://localhost/event/2011/06/cpsc-210-l2c
END:VEVENT
END:VCALENDAR
该活动预计于 6 月 20 日下午 6:00(太平洋标准时间)开始。日历正确地将其转换为 UTC 时间 6 月 21 日凌晨 1:00。它重复 M、W、F 一个月。然而,它似乎完全抛弃了 Google 日历和 Apple iCal 对重复事件的计算。
第一个事件出现在星期一,但第二个事件出现在星期二,第三个星期四,从那时起,它是重复模式的 S、T、R,直到结束。
这是 iCal 错误吗?这是我的 iCal 创建者(Drupal 的 Views iCal)输出错误的内容吗?
更新:好的,很多人都导入了这个,它在除 Apple iCal 和 Thunderbird Lightning 之外的所有情况下都有效。
这是因为(我相信)客户在全球范围内确定时区并正确地一次性转移所有内容。
但是,如果您使用 GCal 订阅它,它会单独确定每个事件的时间范围并进行 kerplewey,显示我上面描述的行为。
UPDAT-IER
iCal 文件本身是错误的 - 由于某种原因,某些客户端可以处理错误,而其他客户端则不能,但 UTC 中指定的事件实际上是在 1 处重复每个 T、R、S :00am,“好”客户根据本地 TZ 将此转移回来。 iCal 创建过程根据本地时区而不是转换为 UTC 的时区计算重复天数。这是 Drupal iCal 实现中的一个错误。
I have an iCal event specified in UTC with repeats. Everything appears to be output properly, yet iCal clients are flailing: the repeat pattern is M,W,F but the start date (translated to UTC) is a Tuesday.
The repeat pattern being incorrectly calculated is S,T,R.
This is the ical output that is not working properly:
BEGIN:VCALENDAR
VERSION:2.0
METHOD:PUBLISH
X-WR-CALNAME: Room ICCS008
PRODID:-//Drupal iCal API//EN
BEGIN:VEVENT
UID:calendar.18861.field_date.0.8
SUMMARY:CPSC 210 L2C
DTSTAMP:20110518T123628Z
DTSTART:20110621T010000Z
DTEND:20110621T033000Z
RRULE:FREQ=WEEKLY;INTERVAL=1;BYDAY=MO,WE,FR;UNTIL=20110730T033000Z
URL;VALUE=URI:https://localhost/event/2011/06/cpsc-210-l2c
END:VEVENT
END:VCALENDAR
The event is supposed to start June 20th at 6:00pm PST. The calendar rightly translates this to June 21st at 1:00am for UTC. It repeats M,W,F for a month. However it seems to be totally throwing off both Google Calendar and Apple iCal's calculation of the repeat events.
The first event is showing up on Monday, but the second is on Tuesday, the third Thursday, and from then on it's S,T,R for the repeating pattern until the end.
Is this an iCal bug? Is this something that is being output wrong by my iCal creator (Drupal's Views iCal)?
UPDATE: Ok, lots of people have imported this and it works in all cases except on Apple iCal and Thunderbird Lightning.
This is because on import clients are (I believe) globally-scoping the timezone and shifting everything in one go, correctly.
However if you subscribe to it with GCal, it individually-scopes each of the events' times and goes kerplewey, showing the behaviour I described above.
UPDAT-IER
The iCal file itself is wrong - for some reason certain clients can handle the wrongness and others can't, but the event as specified in UTC is actually repeating every T,R,S at 1:00am, and the "good" clients shift this back based on the local TZ. The iCal creation-process calculated the repeat days based on the local timezone rather than the converted-to-UTC-one. This is a bug in the Drupal iCal implementation.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
检查您的 CCK 日期字段。是否设置为 UTC、站点时区或用户时区?
确保将其设置为您用于输入日期的任何时区。
Check your CCK date field. Is it set to UTC, Site Time Zone or User time zone?
Make sure it's set to whatever time zone you're using to input dates.
上面的 iCal 文件是错误的。
由于某种原因,某些客户端可以处理错误,而其他客户端则不能,但 UTC 中指定的事件实际上应该指定每个 T、R、S 的重复周期(在 UTC 凌晨 1:00),而“好”客户端根据本地 TZ 将其移回 M、W、F。
输出根据输入重复的本地时区(M、W、F)而不是转换为 UTC 来计算重复天数。
所以...转到 drupal.stackexchange.com =)
The iCal file above is wrong.
For some reason certain clients can handle the wrongness and others can't, but the event as specified in UTC is should actually specify a repeating period of every T,R,S (at 1:00am UTC), and the "good" clients shift this back based on the local TZ to be M,W,F.
The output is calculating the repeat days based on the local timezone where the repeat is input (M,W,F) rather than the converted-to-UTC-one.
So... over to drupal.stackexchange.com =)