我正在使用 Ruby Rical 基本上生成一个 icalendar 作为对我正在参加(接受)邀请的原始 icalendar 的响应。
我可以正确生成响应,但时区有问题,基本上如果我让 RiCal 推断正确的时区,它会根据原始文件中指定的时区字符串正常工作。
让我举个例子:
我可以毫无问题地从 Google 日历回复此邀请:
BEGIN:VCALENDAR
PRODID:-//Google Inc//Google Calendar 70.9054//EN
VERSION:2.0
CALSCALE:GREGORIAN
METHOD:REQUEST
BEGIN:VEVENT
DTSTART:20091226T210000Z
DTEND:20091226T220000Z
DTSTAMP:20091223T191926Z
ORGANIZER;CN=xxx xxx:mailto:x...@xxxx.com
UID:4kkcos0ovgf9cvo3su6hlql...@google.com
ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;RSVP=TRUE;CN=xxxx xxxx;X-NUM-GUESTS=0:mailto:x...@xxxx.com
CREATED:20091223T191925Z
DESCRIPTION:View your event at 4NmIxMmM1ZmJiODM4OTEx&ctz=America%2FLos_Angeles&hl=en.
LAST-MODIFIED:20091223T191925Z
LOCATION:800-292-2393 pin 1234
SEQUENCE:0
STATUS:CONFIRMED
SUMMARY:test google calendar attendance response
TRANSP:OPAQUE
END:VEVENT
END:VCALENDAR
但是当我生成对 Ical (Mac Ical.app) 邀请的响应时,我收到一个错误(没有要加载的此类文件 -- tzinfo/definitions/US/Pacific):
BEGIN:VCALENDAR
CALSCALE:GREGORIAN
VERSION:2.0
METHOD:REQUEST
PRODID:-//Apple Inc.//iCal 4.0.1//EN
BEGIN:VTIMEZONE
TZID:US/Pacific
BEGIN:DAYLIGHT
TZOFFSETFROM:-0800
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
DTSTART:20070311T020000
TZNAME:PDT
TZOFFSETTO:-0700
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:-0700
RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
DTSTART:20071104T020000
TZNAME:PST
TZOFFSETTO:-0800
END:STANDARD
END:VTIMEZONE
BEGIN:VEVENT
ATTENDEE;CN="x...@xxxx.com";CUTYPE=INDIVIDUAL;PARTSTAT=NEEDS-ACTI
ON;RSVP=TRUE:mailto:x...@xxxx.com
DTEND;TZID=US/Pacific:20091231T091500
如您所见,TZID:US/Pacific 是 RiCal 的无效时区标识符,因此在这些情况下..您将如何使用 Rical 回答这种类型的 icalendar 并保留原始时区?
如果我不清楚这个问题,请问我你需要什么。