Как преобразовать событие в строковом формате в событие DDay.iCal?

У меня есть строка события, например, так:

BEGIN:VEVENT
CREATED;
VALUE=DATE:00010101 
DTSTAMP:20150527T074655Z 
DTSTART;VALUE=DATE:00010101  
EFFECTIVEDATETIME:2015-05-27T07:46:55.3203522+00:00 
RRULE:FREQ=DAILY;BYHOUR=12;BYMINUTE=0 
SEQUENCE:0 
SUMMARY:BLAH 
UID:0622249b-7161-4e31-9517-f51dddaa4cd8 
END:VEVENT

Как я Deserialize это в DDay.iCal событие?

1 ответ

Вы не можете десериализовать это, потому что вы изобрели вещи, которые не являются частью спецификации icalendar и не поддерживаются ical.net (dday.ical теперь ical.net). Эти вещи искажены или не существуют:

CREATED;
VALUE=DATE:00010101
EFFECTIVEDATETIME:2015-05-27T07:46:55.3203522+00:00

Посмотрите документацию VEVENT для действительных блоков VEVENT: http://www.kanzaki.com/docs/ical/vevent.html

Ваш вопрос говорит о слабости API ical.net: вы не можете десериализовать компоненты icalendar по частям. В идеальном мире вы сможете передать свою строку Event конструктор, и он будет делать правильные вещи.

У меня есть открытый билет для переоценки синтаксического анализа и сериализации ical.net, который будет охватывать этот вариант использования. Добраться туда займет некоторое время.

https://github.com/rianjs/ical.net/issues/22

Другие вопросы по тегам