В другом ответе автор не упоминает строку над этими тремя строками, как в примере 6:
// First load a file containing time zone information for North & South America
IICalendar timeZones = iCalendar.LoadFromFile("America.ics")[0];
Так что это не сработает.Вариант может быть:
iCalendar iCal = new iCalendar();
System.TimeZoneInfo timezoneinfo = System.TimeZoneInfo.FindSystemTimeZoneById("W. Europe Standard Time");
iCalTimeZone timezone = iCalTimeZone.FromSystemTimeZone(timezoneinfo);
iCal.AddTimeZone(timezone);
Или просто добавить местный часовой пояс:
iCalendar iCal = new iCalendar();
iCal.AddLocalTimeZone();
Чтобы найти все зарегистрированные часовые пояса, используйте этот фрагмент :
ReadOnlyCollection<TimeZoneInfo> zones = TimeZoneInfo.GetSystemTimeZones();
Console.WriteLine("The local system has the following {0} time zones", zones.Count);
foreach (TimeZoneInfo zone in zones.OrderBy(z => z.Id))
Console.WriteLine(zone.Id);
Console.ReadLine();