BEGIN:VCALENDAR
VERSION:2.0
BEGIN:VTIMEZONE
TZID:Asia/Calcutta
X-LIC-LOCATION:Asia/Calcutta
BEGIN:STANDARD
DTSTART:18800101T000000
RDATE;VALUE=DATE-TIME:18800101T000000
TZNAME:HMT
TZOFFSETFROM:+055328
TZOFFSETTO:+055320
END:STANDARD
BEGIN:STANDARD
DTSTART:19411001T000000
RDATE;VALUE=DATE-TIME:19411001T000000
TZNAME:BURT
TZOFFSETFROM:+055320
TZOFFSETTO:+0630
END:STANDARD
BEGIN:STANDARD
DTSTART:19420515T000000
RDATE;VALUE=DATE-TIME:19420515T000000
RDATE;VALUE=DATE-TIME:19451015T000000
TZNAME:IST
TZOFFSETFROM:+0630
TZOFFSETTO:+0530
END:STANDARD
BEGIN:STANDARD
DTSTART:19420901T000000
RDATE;VALUE=DATE-TIME:19420901T000000
TZNAME:IST
TZOFFSETFROM:+0530
TZOFFSETTO:+0630
END:STANDARD
END:VTIMEZONE
BEGIN:VEVENT
SUMMARY:New Event
UID:D1A9EEAF-AAE9-44B1-92B9-33A620779FA6
DTSTART;X-VOBJ-ORIGINAL-TZID=Asia/Calcutta:20170118T120000Z
DTEND;X-VOBJ-ORIGINAL-TZID=Asia/Calcutta:20170118T130000Z
END:VEVENT
END:VCALENDAR
上記はiCloudで作成された新しいイベントのicsです。 iCloudからイベントを取得中に問題が発生しました。問題は、iCloudで直接作成されたイベントがical.netを使用して解析されていないことです。一方、それはdday.icalによって解析されています。 ical.netを使用して作成されたイベントは正しく解析されます。上記のicsはDDay.iCalによって正しく解析されます。iCloud.comで直接作成された新しいイベントはical.netで解析されません
Using ical.net
MemoryStream stream = new MemoryStream(Encoding.UTF8.GetBytes(ics))
IICalendarCollection calendars = Calendar.LoadFromStream(stream, Encoding.UTF8);
エラーはCalendar.LoadFromStreamで発生し、エラーは文字列が有効なDateTimeとして認識されませんでした。
Using Dday.iCal
MemoryStream stream = new MemoryStream(Encoding.UTF8.GetBytes(ics))
IICalendarCollection calendars = iCalendar.LoadFromStream(stream, Encoding.UTF8);
上記のDdayのコードは、同じicsでうまく動作します。 ical.netによって解析取得されていないVTIMEZONE成分と
私はこの問題はVTIMEZONEコンポーネントであると思います。 VTIMEZONEを削除するとVEVENTが解析されます。 –