In the other answer, the author fails to mention the line above those three lines that's in example 6:
// First load a file containing time zone information for North & South America
IICalendar timeZones = iCalendar.LoadFromFile("America.ics")[0];
So that won't work. An option would be:
iCalendar iCal = new iCalendar();
System.TimeZoneInfo timezoneinfo = System.TimeZoneInfo.FindSystemTimeZoneById("W. Europe Standard Time");
iCalTimeZone timezone = iCalTimeZone.FromSystemTimeZone(timezoneinfo);
iCal.AddTimeZone(timezone);
Or simply add the local timezone:
iCalendar iCal = new iCalendar();
iCal.AddLocalTimeZone();
To find all registered timezones, use this snippet:
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();