69
How do I encode data as ICalendar format

// Add 'exontrol.exicalendar.dll(ExICalendar.dll)' reference to your project.
exontrol.EXICALENDARLib.exicalendar exicalendar1 = new exontrol.EXICALENDARLib.exicalendar();
exontrol.EXICALENDARLib.Component var_Component = exicalendar1.Content;
	exontrol.EXICALENDARLib.Component var_Component1 = var_Component.Components.Add("VCALENDAR");
		var_Component1.Properties.Add("VERSION","2.1").Parameters.Add("UNICODE",exicalendar1.get_toICalendar(true,exontrol.EXICALENDARLib.PropertyTypeEnum.exPropertyTypeBoolean));
		var_Component1.Properties.Add("TEXT","This is just a bit of text to be encoded.");
		var_Component1.Properties.Add("BINARY",exicalendar1.get_toICalendar("This is just a bit of text to be encoded.",exontrol.EXICALENDARLib.PropertyTypeEnum.exPropertyTypeBinary));
		exontrol.EXICALENDARLib.Component var_Component2 = var_Component1.Components.Add("VEVENT");
			var_Component2.Properties.Add("DTSTART",Convert.ToDateTime("1/1/2001",System.Globalization.CultureInfo.GetCultureInfo("en-US")));
			var_Component2.Properties.Add("DTEND",Convert.ToDateTime("1/2/2001 10:00:00",System.Globalization.CultureInfo.GetCultureInfo("en-US")));
System.Diagnostics.Debug.Print( exicalendar1.Save() );

68
How do I get the occurrences between giving start/end margins

// Add 'exontrol.exicalendar.dll(ExICalendar.dll)' reference to your project.
exontrol.EXICALENDARLib.exicalendar exicalendar1 = new exontrol.EXICALENDARLib.exicalendar();
System.Diagnostics.Debug.Print( "AsArray: " );
System.Diagnostics.Debug.Print( exicalendar1.get_RecurRange("DTSTART=19970310;FREQ=YEARLY;INTERVAL=2;COUNT=10;BYMONTH=1,2,3",Convert.ToDateTime("1/1/2001",System.Globalization.CultureInfo.GetCultureInfo("en-US")),Convert.ToDateTime("1/1/2002",System.Globalization.CultureInfo.GetCultureInfo("en-US"))).ToString() );
System.Diagnostics.Debug.Print( "AsString: " );
System.Diagnostics.Debug.Print( exicalendar1.get_RecurRangeAsString("DTSTART=19970310;FREQ=YEARLY;INTERVAL=2;COUNT=10;BYMONTH=1,2,3",Convert.ToDateTime("1/1/2001",System.Globalization.CultureInfo.GetCultureInfo("en-US")),Convert.ToDateTime("1/1/2002",System.Globalization.CultureInfo.GetCultureInfo("en-US"))).ToString() );

67
How do I get the value of specified part in the recurrence expression

// Add 'exontrol.exicalendar.dll(ExICalendar.dll)' reference to your project.
exontrol.EXICALENDARLib.exicalendar exicalendar1 = new exontrol.EXICALENDARLib.exicalendar();
System.Diagnostics.Debug.Print( "FREQ: " );
System.Diagnostics.Debug.Print( exicalendar1.get_RecurPartValue("DTSTART=19970805T090000;FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=SU",exontrol.EXICALENDARLib.RecurPartEnum.exRecurFREQ).ToString() );
System.Diagnostics.Debug.Print( "DTSTART: " );
System.Diagnostics.Debug.Print( exicalendar1.get_RecurPartValue("DTSTART=19970805T090000;FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=SU",exontrol.EXICALENDARLib.RecurPartEnum.exRecurDTSTART).ToString() );
System.Diagnostics.Debug.Print( "UNTIL: " );
System.Diagnostics.Debug.Print( exicalendar1.get_RecurPartValue("DTSTART=19970805T090000;FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=SU",exontrol.EXICALENDARLib.RecurPartEnum.exRecurUNTIL).ToString() );
System.Diagnostics.Debug.Print( "COUNT: " );
System.Diagnostics.Debug.Print( exicalendar1.get_RecurPartValue("DTSTART=19970805T090000;FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=SU",exontrol.EXICALENDARLib.RecurPartEnum.exRecurCOUNT).ToString() );
System.Diagnostics.Debug.Print( "INTERVAL: " );
System.Diagnostics.Debug.Print( exicalendar1.get_RecurPartValue("DTSTART=19970805T090000;FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=SU",exontrol.EXICALENDARLib.RecurPartEnum.exRecurINTERVAL).ToString() );
System.Diagnostics.Debug.Print( "WKST: " );
System.Diagnostics.Debug.Print( exicalendar1.get_RecurPartValue("DTSTART=19970805T090000;FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=SU",exontrol.EXICALENDARLib.RecurPartEnum.exRecurWKST).ToString() );
System.Diagnostics.Debug.Print( "BYDAY: " );
System.Diagnostics.Debug.Print( exicalendar1.get_RecurPartValue("DTSTART=19970805T090000;FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=SU",exontrol.EXICALENDARLib.RecurPartEnum.exRecurBYDAY).ToString() );
System.Diagnostics.Debug.Print( "BYMONTHDAY: " );
System.Diagnostics.Debug.Print( exicalendar1.get_RecurPartValue("DTSTART=19970805T090000;FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=SU",exontrol.EXICALENDARLib.RecurPartEnum.exRecurBYMONTHDAY).ToString() );
System.Diagnostics.Debug.Print( "BYYEARDAY: " );
System.Diagnostics.Debug.Print( exicalendar1.get_RecurPartValue("DTSTART=19970805T090000;FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=SU",exontrol.EXICALENDARLib.RecurPartEnum.exRecurBYYEARDAY).ToString() );
System.Diagnostics.Debug.Print( "BYWEEKNO: " );
System.Diagnostics.Debug.Print( exicalendar1.get_RecurPartValue("DTSTART=19970805T090000;FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=SU",exontrol.EXICALENDARLib.RecurPartEnum.exRecurBYWEEKNO).ToString() );
System.Diagnostics.Debug.Print( "BYMONTH: " );
System.Diagnostics.Debug.Print( exicalendar1.get_RecurPartValue("DTSTART=19970805T090000;FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=SU",exontrol.EXICALENDARLib.RecurPartEnum.exRecurBYMONTH).ToString() );
System.Diagnostics.Debug.Print( "BYSETPOS: " );
System.Diagnostics.Debug.Print( exicalendar1.get_RecurPartValue("DTSTART=19970805T090000;FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=SU",exontrol.EXICALENDARLib.RecurPartEnum.exRecurBYSETPOS).ToString() );
System.Diagnostics.Debug.Print( "BYHOUR: " );
System.Diagnostics.Debug.Print( exicalendar1.get_RecurPartValue("DTSTART=19970805T090000;FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=SU",exontrol.EXICALENDARLib.RecurPartEnum.exRecurBYHOUR).ToString() );
System.Diagnostics.Debug.Print( "BYMINUTE: " );
System.Diagnostics.Debug.Print( exicalendar1.get_RecurPartValue("DTSTART=19970805T090000;FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=SU",exontrol.EXICALENDARLib.RecurPartEnum.exRecurBYMINUTE).ToString() );
System.Diagnostics.Debug.Print( "BYSECOND: " );
System.Diagnostics.Debug.Print( exicalendar1.get_RecurPartValue("DTSTART=19970805T090000;FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=SU",exontrol.EXICALENDARLib.RecurPartEnum.exRecurBYSECOND).ToString() );

66
How do I check if the recurrence expression is syntactically correct (method 2)

// Add 'exontrol.exicalendar.dll(ExICalendar.dll)' reference to your project.
exontrol.EXICALENDARLib.exicalendar exicalendar1 = new exontrol.EXICALENDARLib.exicalendar();
System.Diagnostics.Debug.Print( "1.A) SyntaxError: " );
System.Diagnostics.Debug.Print( exicalendar1.get_RecurPartValue("DTSTART=20151205;FREQ=DAILY;BYDAY=MO",exontrol.EXICALENDARLib.RecurPartEnum.exRecurSyntaxError).ToString() );
System.Diagnostics.Debug.Print( "1.B) SyntaxErrorInfo: " );
System.Diagnostics.Debug.Print( exicalendar1.get_RecurPartValue("DTSTART=20151205;FREQ=DAILY;BYDAY=MO",exontrol.EXICALENDARLib.RecurPartEnum.exRecurSyntaxErrorInfo).ToString() );
System.Diagnostics.Debug.Print( "2.A) SyntaxError: " );
System.Diagnostics.Debug.Print( exicalendar1.get_RecurPartValue("FREQ=DAILY;BYDAY=MO",exontrol.EXICALENDARLib.RecurPartEnum.exRecurSyntaxError).ToString() );
System.Diagnostics.Debug.Print( "2.B) SyntaxErrorInfo: " );
System.Diagnostics.Debug.Print( exicalendar1.get_RecurPartValue("FREQ=DAILY;BYDAY=MO",exontrol.EXICALENDARLib.RecurPartEnum.exRecurSyntaxErrorInfo).ToString() );

65
How do I check if the recurrence expression is syntactically correct (method 1)

// Add 'exontrol.exicalendar.dll(ExICalendar.dll)' reference to your project.
exontrol.EXICALENDARLib.exicalendar exicalendar1 = new exontrol.EXICALENDARLib.exicalendar();
System.Diagnostics.Debug.Print( "1. If negative, the expression is incorrect" );
System.Diagnostics.Debug.Print( exicalendar1.get_RecurCheck("DTSTART=20151205;FREQ=DAILY;BYDAY=MO",Convert.ToDateTime("12/5/2015",System.Globalization.CultureInfo.GetCultureInfo("en-US"))).ToString() );
System.Diagnostics.Debug.Print( "2. If negative, the expression is incorrect" );
System.Diagnostics.Debug.Print( exicalendar1.get_RecurCheck("junk",Convert.ToDateTime("1/1/2001",System.Globalization.CultureInfo.GetCultureInfo("en-US"))).ToString() );

64
How do I check if a specified date match the giving recurrence

// Add 'exontrol.exicalendar.dll(ExICalendar.dll)' reference to your project.
exontrol.EXICALENDARLib.exicalendar exicalendar1 = new exontrol.EXICALENDARLib.exicalendar();
System.Diagnostics.Debug.Print( Convert.ToDateTime("12/5/2015",System.Globalization.CultureInfo.GetCultureInfo("en-US")).ToString() );
System.Diagnostics.Debug.Print( exicalendar1.get_RecurCheck("DTSTART=20151205;FREQ=DAILY;BYDAY=MO",Convert.ToDateTime("12/5/2015",System.Globalization.CultureInfo.GetCultureInfo("en-US"))).ToString() );
System.Diagnostics.Debug.Print( Convert.ToDateTime("12/7/2015",System.Globalization.CultureInfo.GetCultureInfo("en-US")).ToString() );
System.Diagnostics.Debug.Print( exicalendar1.get_RecurCheck("DTSTART=20151205;FREQ=DAILY;BYDAY=MO",Convert.ToDateTime("12/7/2015",System.Globalization.CultureInfo.GetCultureInfo("en-US"))).ToString() );

63
Recur: The 2nd to last weekday of the month

// Add 'exontrol.exicalendar.dll(ExICalendar.dll)' reference to your project.
exontrol.EXICALENDARLib.exicalendar exicalendar1 = new exontrol.EXICALENDARLib.exicalendar();
System.Diagnostics.Debug.Print( exicalendar1.get_RecurAllAsString("DTSTART=19970929;FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=-2",12).ToString() );

62
Recur: The 3rd instance into the month of one of Tuesday, Wednesday or Thursday, for the next 3 months

// Add 'exontrol.exicalendar.dll(ExICalendar.dll)' reference to your project.
exontrol.EXICALENDARLib.exicalendar exicalendar1 = new exontrol.EXICALENDARLib.exicalendar();
System.Diagnostics.Debug.Print( exicalendar1.get_RecurAllAsString("DTSTART=19970904;FREQ=MONTHLY;COUNT=3;BYDAY=TU,WE,TH;BYSETPOS=3",12).ToString() );

61
Recur: The last work day of the month

// Add 'exontrol.exicalendar.dll(ExICalendar.dll)' reference to your project.
exontrol.EXICALENDARLib.exicalendar exicalendar1 = new exontrol.EXICALENDARLib.exicalendar();
System.Diagnostics.Debug.Print( exicalendar1.get_RecurAllAsString("DTSTART=19970805;FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=-1",12).ToString() );

60
Recur: An example where the days generated makes a difference because of WKST (Sample 2)

// Add 'exontrol.exicalendar.dll(ExICalendar.dll)' reference to your project.
exontrol.EXICALENDARLib.exicalendar exicalendar1 = new exontrol.EXICALENDARLib.exicalendar();
System.Diagnostics.Debug.Print( exicalendar1.get_RecurAllAsString("DTSTART=19970805T090000;FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=SU",12).ToString() );

59
Recur: An example where the days generated makes a difference because of WKST (Sample 1)

// Add 'exontrol.exicalendar.dll(ExICalendar.dll)' reference to your project.
exontrol.EXICALENDARLib.exicalendar exicalendar1 = new exontrol.EXICALENDARLib.exicalendar();
System.Diagnostics.Debug.Print( exicalendar1.get_RecurAllAsString("DTSTART=19970805T090000;FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=MO",12).ToString() );

58
Recur: Every 20 minutes from 9:00 AM to 4:40 PM every day

// Add 'exontrol.exicalendar.dll(ExICalendar.dll)' reference to your project.
exontrol.EXICALENDARLib.exicalendar exicalendar1 = new exontrol.EXICALENDARLib.exicalendar();
System.Diagnostics.Debug.Print( exicalendar1.get_RecurAllAsString("DTSTART=19970902T090000;FREQ=DAILY;BYHOUR=9,10,11,12,13,14,15,16;BYMINUTE=0,20,40",12).ToString() );

57
Recur: Every hour and a half for 4 occurrences

// Add 'exontrol.exicalendar.dll(ExICalendar.dll)' reference to your project.
exontrol.EXICALENDARLib.exicalendar exicalendar1 = new exontrol.EXICALENDARLib.exicalendar();
System.Diagnostics.Debug.Print( exicalendar1.get_RecurAllAsString("DTSTART=19970902T090000;FREQ=MINUTELY;INTERVAL=90;COUNT=4",12).ToString() );

56
Recur: Every 15 minutes for 6 occurrences

// Add 'exontrol.exicalendar.dll(ExICalendar.dll)' reference to your project.
exontrol.EXICALENDARLib.exicalendar exicalendar1 = new exontrol.EXICALENDARLib.exicalendar();
System.Diagnostics.Debug.Print( exicalendar1.get_RecurAllAsString("DTSTART=19970902T090000;FREQ=MINUTELY;INTERVAL=15;COUNT=6",12).ToString() );

55
Recur: Every 3 hours from 9:00 AM to 5:00 PM on a specific day

// Add 'exontrol.exicalendar.dll(ExICalendar.dll)' reference to your project.
exontrol.EXICALENDARLib.exicalendar exicalendar1 = new exontrol.EXICALENDARLib.exicalendar();
System.Diagnostics.Debug.Print( exicalendar1.get_RecurAllAsString("DTSTART=19970902T090000;FREQ=HOURLY;INTERVAL=3;UNTIL=19970902T170000Z",12).ToString() );

54
Recur: Every four years, the first Tuesday after a Monday in November, forever (U.S. Presidential Election day)

// Add 'exontrol.exicalendar.dll(ExICalendar.dll)' reference to your project.
exontrol.EXICALENDARLib.exicalendar exicalendar1 = new exontrol.EXICALENDARLib.exicalendar();
System.Diagnostics.Debug.Print( exicalendar1.get_RecurAllAsString("DTSTART=19961105T090000;FREQ=YEARLY;INTERVAL=4;BYMONTH=11;BYDAY=TU;BYMONTHDAY=2,3,4,5,6,7,8",12).ToString() );

53
Recur: The first Saturday that follows the first Sunday of the month, forever

// Add 'exontrol.exicalendar.dll(ExICalendar.dll)' reference to your project.
exontrol.EXICALENDARLib.exicalendar exicalendar1 = new exontrol.EXICALENDARLib.exicalendar();
System.Diagnostics.Debug.Print( exicalendar1.get_RecurAllAsString("DTSTART=19970913T090000;FREQ=MONTHLY;BYDAY=SA;BYMONTHDAY=7,8,9,10,11,12,13",12).ToString() );

52
Recur: Every Friday the 13th, forever

// Add 'exontrol.exicalendar.dll(ExICalendar.dll)' reference to your project.
exontrol.EXICALENDARLib.exicalendar exicalendar1 = new exontrol.EXICALENDARLib.exicalendar();
System.Diagnostics.Debug.Print( exicalendar1.get_RecurAllAsString("DTSTART=19970902T090000;FREQ=MONTHLY;BYDAY=FR;BYMONTHDAY=13",12).ToString() );

51
Recur: Every Thursday, but only during June, July, and August, forever

// Add 'exontrol.exicalendar.dll(ExICalendar.dll)' reference to your project.
exontrol.EXICALENDARLib.exicalendar exicalendar1 = new exontrol.EXICALENDARLib.exicalendar();
System.Diagnostics.Debug.Print( exicalendar1.get_RecurAllAsString("DTSTART=19970605T090000;FREQ=YEARLY;BYDAY=TH;BYMONTH=6,7,8",12).ToString() );

50
Recur: Every Thursday in March, forever

// Add 'exontrol.exicalendar.dll(ExICalendar.dll)' reference to your project.
exontrol.EXICALENDARLib.exicalendar exicalendar1 = new exontrol.EXICALENDARLib.exicalendar();
System.Diagnostics.Debug.Print( exicalendar1.get_RecurAllAsString("DTSTART=19970313T090000;FREQ=YEARLY;BYMONTH=3;BYDAY=TH",12).ToString() );

49
Recur: Monday of week number 20 (where the default start of the week is Monday), forever

// Add 'exontrol.exicalendar.dll(ExICalendar.dll)' reference to your project.
exontrol.EXICALENDARLib.exicalendar exicalendar1 = new exontrol.EXICALENDARLib.exicalendar();
System.Diagnostics.Debug.Print( exicalendar1.get_RecurAllAsString("DTSTART=19970512T090000;FREQ=YEARLY;BYWEEKNO=20;BYDAY=MO",12).ToString() );

48
Recur: Every 20th Monday of the year, forever

// Add 'exontrol.exicalendar.dll(ExICalendar.dll)' reference to your project.
exontrol.EXICALENDARLib.exicalendar exicalendar1 = new exontrol.EXICALENDARLib.exicalendar();
System.Diagnostics.Debug.Print( exicalendar1.get_RecurAllAsString("DTSTART=19970101T090000;FREQ=YEARLY;BYDAY=20MO",12).ToString() );

47
Recur: Every 3rd year on the 1st, 100th and 200th day for 10 occurrences

// Add 'exontrol.exicalendar.dll(ExICalendar.dll)' reference to your project.
exontrol.EXICALENDARLib.exicalendar exicalendar1 = new exontrol.EXICALENDARLib.exicalendar();
System.Diagnostics.Debug.Print( exicalendar1.get_RecurAllAsString("DTSTART=19970101T090000;FREQ=YEARLY;INTERVAL=3;COUNT=10;BYYEARDAY=1,100,200",12).ToString() );

46
Recur: Every other year on January, February, and March for 10 occurrences

// Add 'exontrol.exicalendar.dll(ExICalendar.dll)' reference to your project.
exontrol.EXICALENDARLib.exicalendar exicalendar1 = new exontrol.EXICALENDARLib.exicalendar();
System.Diagnostics.Debug.Print( exicalendar1.get_RecurAllAsString("DTSTART=19970310T090000;FREQ=YEARLY;INTERVAL=2;COUNT=10;BYMONTH=1,2,3",12).ToString() );

45
Recur: Yearly in June and July for 10 occurrences

// Add 'exontrol.exicalendar.dll(ExICalendar.dll)' reference to your project.
exontrol.EXICALENDARLib.exicalendar exicalendar1 = new exontrol.EXICALENDARLib.exicalendar();
System.Diagnostics.Debug.Print( exicalendar1.get_RecurAllAsString("DTSTART=19970610T090000;FREQ=YEARLY;COUNT=10;BYMONTH=6,7",12).ToString() );

44
Recur: Every Tuesday, every other month

// Add 'exontrol.exicalendar.dll(ExICalendar.dll)' reference to your project.
exontrol.EXICALENDARLib.exicalendar exicalendar1 = new exontrol.EXICALENDARLib.exicalendar();
System.Diagnostics.Debug.Print( exicalendar1.get_RecurAllAsString("DTSTART=19970902T090000;FREQ=MONTHLY;INTERVAL=2;BYDAY=TU",12).ToString() );

43
Recur: Every 18 months on the 10th thru 15th of the month for 10 occurrences

// Add 'exontrol.exicalendar.dll(ExICalendar.dll)' reference to your project.
exontrol.EXICALENDARLib.exicalendar exicalendar1 = new exontrol.EXICALENDARLib.exicalendar();
System.Diagnostics.Debug.Print( exicalendar1.get_RecurAllAsString("DTSTART=19970910T090000;FREQ=MONTHLY;INTERVAL=18;COUNT=10;BYMONTHDAY=10,11,12,13,14,15",12).ToString() );

42
Recur: Monthly on the first and last day of the month for 10 occurrences

// Add 'exontrol.exicalendar.dll(ExICalendar.dll)' reference to your project.
exontrol.EXICALENDARLib.exicalendar exicalendar1 = new exontrol.EXICALENDARLib.exicalendar();
System.Diagnostics.Debug.Print( exicalendar1.get_RecurAllAsString("DTSTART=19970930T090000;FREQ=MONTHLY;COUNT=10;BYMONTHDAY=1,-1",12).ToString() );

41
Recur: Monthly on the 2nd and 15th of the month for 10 occurrences

// Add 'exontrol.exicalendar.dll(ExICalendar.dll)' reference to your project.
exontrol.EXICALENDARLib.exicalendar exicalendar1 = new exontrol.EXICALENDARLib.exicalendar();
System.Diagnostics.Debug.Print( exicalendar1.get_RecurAllAsString("DTSTART=19970902T090000;FREQ=MONTHLY;COUNT=10;BYMONTHDAY=2,15",12).ToString() );

40
Recur: Monthly on the third to the last day of the month, forever

// Add 'exontrol.exicalendar.dll(ExICalendar.dll)' reference to your project.
exontrol.EXICALENDARLib.exicalendar exicalendar1 = new exontrol.EXICALENDARLib.exicalendar();
System.Diagnostics.Debug.Print( exicalendar1.get_RecurAllAsString("DTSTART=19970928T090000;FREQ=MONTHLY;BYMONTHDAY=-3",12).ToString() );

39
Recur: Monthly on the second to last Monday of the month for 6 months

// Add 'exontrol.exicalendar.dll(ExICalendar.dll)' reference to your project.
exontrol.EXICALENDARLib.exicalendar exicalendar1 = new exontrol.EXICALENDARLib.exicalendar();
System.Diagnostics.Debug.Print( exicalendar1.get_RecurAllAsString("DTSTART=19970922T090000;FREQ=MONTHLY;COUNT=6;BYDAY=-2MO",12).ToString() );

38
Recur: Every other month on the 1st and last Sunday of the month for 10 occurrences

// Add 'exontrol.exicalendar.dll(ExICalendar.dll)' reference to your project.
exontrol.EXICALENDARLib.exicalendar exicalendar1 = new exontrol.EXICALENDARLib.exicalendar();
System.Diagnostics.Debug.Print( exicalendar1.get_RecurAllAsString("DTSTART=19970907T090000;FREQ=MONTHLY;INTERVAL=2;COUNT=10;BYDAY=1SU,-1SU",12).ToString() );

37
Recur: Monthly on the 1st Friday until December 24, 1997

// Add 'exontrol.exicalendar.dll(ExICalendar.dll)' reference to your project.
exontrol.EXICALENDARLib.exicalendar exicalendar1 = new exontrol.EXICALENDARLib.exicalendar();
System.Diagnostics.Debug.Print( exicalendar1.get_RecurAllAsString("DTSTART=19970905T090000;FREQ=MONTHLY;UNTIL=19971224T000000Z;BYDAY=1FR",12).ToString() );

36
Recur: Monthly on the 1st Friday for ten occurrences

// Add 'exontrol.exicalendar.dll(ExICalendar.dll)' reference to your project.
exontrol.EXICALENDARLib.exicalendar exicalendar1 = new exontrol.EXICALENDARLib.exicalendar();
System.Diagnostics.Debug.Print( exicalendar1.get_RecurAllAsString("DTSTART=19970905T090000;FREQ=MONTHLY;COUNT=10;BYDAY=1FR",12).ToString() );

35
Recur: Every other week on Tuesday and Thursday, for 8 occurrences

// Add 'exontrol.exicalendar.dll(ExICalendar.dll)' reference to your project.
exontrol.EXICALENDARLib.exicalendar exicalendar1 = new exontrol.EXICALENDARLib.exicalendar();
System.Diagnostics.Debug.Print( exicalendar1.get_RecurAllAsString("DTSTART=19970902T090000;FREQ=WEEKLY;INTERVAL=2;COUNT=8;WKST=SU;BYDAY=TU,TH",12).ToString() );

34
Recur: Every other week on Monday, Wednesday and Friday until December 24, 1997, but starting on Tuesday, September 2, 1997

// Add 'exontrol.exicalendar.dll(ExICalendar.dll)' reference to your project.
exontrol.EXICALENDARLib.exicalendar exicalendar1 = new exontrol.EXICALENDARLib.exicalendar();
System.Diagnostics.Debug.Print( exicalendar1.get_RecurAllAsString("DTSTART=19970902T090000;FREQ=WEEKLY;INTERVAL=2;UNTIL=19971224T000000Z;WKST=SU;BYDAY=MO,WE,FR",12).ToString() );

33
Recur: Weekly on Tuesday and Thursday for 5 weeks

// Add 'exontrol.exicalendar.dll(ExICalendar.dll)' reference to your project.
exontrol.EXICALENDARLib.exicalendar exicalendar1 = new exontrol.EXICALENDARLib.exicalendar();
System.Diagnostics.Debug.Print( exicalendar1.get_RecurAllAsString("DTSTART=19970902T090000;FREQ=WEEKLY;UNTIL=19971007T000000Z;WKST=SU;BYDAY=TU,TH",12).ToString() );

32
Recur: Weekly on Tuesday and Thursday for 5 weeks

// Add 'exontrol.exicalendar.dll(ExICalendar.dll)' reference to your project.
exontrol.EXICALENDARLib.exicalendar exicalendar1 = new exontrol.EXICALENDARLib.exicalendar();
System.Diagnostics.Debug.Print( exicalendar1.get_RecurAllAsString("DTSTART=19970902T090000;FREQ=WEEKLY;COUNT=10;WKST=SU;BYDAY=TU,TH",12).ToString() );

31
Recur: Every other day - forever

// Add 'exontrol.exicalendar.dll(ExICalendar.dll)' reference to your project.
exontrol.EXICALENDARLib.exicalendar exicalendar1 = new exontrol.EXICALENDARLib.exicalendar();
System.Diagnostics.Debug.Print( exicalendar1.get_RecurAllAsString("DTSTART=19970902T090000;FREQ=DAILY;INTERVAL=2",12).ToString() );

30
Recur: Daily until December 24, 1997

// Add 'exontrol.exicalendar.dll(ExICalendar.dll)' reference to your project.
exontrol.EXICALENDARLib.exicalendar exicalendar1 = new exontrol.EXICALENDARLib.exicalendar();
System.Diagnostics.Debug.Print( exicalendar1.get_RecurAllAsString("DTSTART=19970902T090000;FREQ=DAILY;UNTIL=19971224T000000Z",12).ToString() );

29
Recur: Daily for 10 occurrences

// Add 'exontrol.exicalendar.dll(ExICalendar.dll)' reference to your project.
exontrol.EXICALENDARLib.exicalendar exicalendar1 = new exontrol.EXICALENDARLib.exicalendar();
System.Diagnostics.Debug.Print( exicalendar1.get_RecurAllAsString("DTSTART=19970902T090000;FREQ=DAILY;COUNT=10",12).ToString() );

28
How can I add a property of UTC offset type

// Add 'exontrol.exicalendar.dll(ExICalendar.dll)' reference to your project.
exontrol.EXICALENDARLib.exicalendar exicalendar1 = new exontrol.EXICALENDARLib.exicalendar();
exontrol.EXICALENDARLib.Component var_Component = exicalendar1.Content.Components.Add("VCALENDAR");
	var_Component.Properties.Add("UTCOffset","+0100");
System.Diagnostics.Debug.Print( exicalendar1.Save() );

27
How can I add a property of URI type

// Add 'exontrol.exicalendar.dll(ExICalendar.dll)' reference to your project.
exontrol.EXICALENDARLib.exicalendar exicalendar1 = new exontrol.EXICALENDARLib.exicalendar();
exontrol.EXICALENDARLib.Component var_Component = exicalendar1.Content.Components.Add("VCALENDAR");
	var_Component.Properties.Add("URI","http://www.exontrol.com");
System.Diagnostics.Debug.Print( exicalendar1.Save() );

26
How can I add a property of time type

// Add 'exontrol.exicalendar.dll(ExICalendar.dll)' reference to your project.
exontrol.EXICALENDARLib.exicalendar exicalendar1 = new exontrol.EXICALENDARLib.exicalendar();
exontrol.EXICALENDARLib.Component var_Component = exicalendar1.Content.Components.Add("VCALENDAR");
	var_Component.Properties.Add("Time1",Convert.ToDateTime("12/30/1899 12:00:00",System.Globalization.CultureInfo.GetCultureInfo("en-US")));
	var_Component.Properties.Add("Time2",exicalendar1.get_toICalendar(0.5,exontrol.EXICALENDARLib.PropertyTypeEnum.exPropertyTypeTime));
	exontrol.EXICALENDARLib.Property var_Property = var_Component.Properties.Add("Time3",null);
		var_Property.Value = 0.5;
		var_Property.Type = exontrol.EXICALENDARLib.PropertyTypeEnum.exPropertyTypeTime;
System.Diagnostics.Debug.Print( exicalendar1.Save() );

25
How can I add a property of text/string type

// Add 'exontrol.exicalendar.dll(ExICalendar.dll)' reference to your project.
exontrol.EXICALENDARLib.exicalendar exicalendar1 = new exontrol.EXICALENDARLib.exicalendar();
exontrol.EXICALENDARLib.Component var_Component = exicalendar1.Content.Components.Add("VCALENDAR");
	var_Component.Properties.Add("Text1","A1");
	var_Component.Properties.Add("Text2",exicalendar1.get_toICalendar("A1",exontrol.EXICALENDARLib.PropertyTypeEnum.exPropertyTypeText));
	exontrol.EXICALENDARLib.Property var_Property = var_Component.Properties.Add("Text3",null);
		var_Property.Value = "A1";
		var_Property.Type = exontrol.EXICALENDARLib.PropertyTypeEnum.exPropertyTypeText;
System.Diagnostics.Debug.Print( exicalendar1.Save() );

24
How can I find properties of recurence type

// Add 'exontrol.exicalendar.dll(ExICalendar.dll)' reference to your project.
exontrol.EXICALENDARLib.exicalendar exicalendar1 = new exontrol.EXICALENDARLib.exicalendar();
exontrol.EXICALENDARLib.Component var_Component = exicalendar1.Content.Components.Add("VCALENDAR");
	var_Component.Properties.Add("Recur","FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=SA,SU");
exontrol.EXICALENDARLib.Property p = exicalendar1.Root.Properties["Recur"];
string i = exicalendar1.get_toICalendar(p.Value,p.GuessType);
System.Diagnostics.Debug.Print( "icalendar:" );
System.Diagnostics.Debug.Print( i.ToString() );
System.Diagnostics.Debug.Print( "all:" );
System.Diagnostics.Debug.Print( exicalendar1.get_valuesFromICalendar(i.ToString(),p.GuessType,"").ToString() );
System.Diagnostics.Debug.Print( "FREQ:" );
System.Diagnostics.Debug.Print( exicalendar1.get_valuesFromICalendar(i.ToString(),p.GuessType,"FREQ").ToString() );
System.Diagnostics.Debug.Print( "UNTIL:" );
System.Diagnostics.Debug.Print( exicalendar1.get_valuesFromICalendar(i.ToString(),p.GuessType,"UNTIL").ToString() );
System.Diagnostics.Debug.Print( "COUNT:" );
System.Diagnostics.Debug.Print( exicalendar1.get_valuesFromICalendar(i.ToString(),p.GuessType,"COUNT").ToString() );
System.Diagnostics.Debug.Print( "INTERVAL:" );
System.Diagnostics.Debug.Print( exicalendar1.get_valuesFromICalendar(i.ToString(),p.GuessType,"INTERVAL").ToString() );
System.Diagnostics.Debug.Print( "BYSECOND:" );
System.Diagnostics.Debug.Print( exicalendar1.get_valuesFromICalendar(i.ToString(),p.GuessType,"BYSECOND").ToString() );
System.Diagnostics.Debug.Print( "BYMINUTE:" );
System.Diagnostics.Debug.Print( exicalendar1.get_valuesFromICalendar(i.ToString(),p.GuessType,"BYMINUTE").ToString() );
System.Diagnostics.Debug.Print( "BYHOUR:" );
System.Diagnostics.Debug.Print( exicalendar1.get_valuesFromICalendar(i.ToString(),p.GuessType,"BYHOUR").ToString() );
System.Diagnostics.Debug.Print( "BYDAY:" );
System.Diagnostics.Debug.Print( exicalendar1.get_valuesFromICalendar(i.ToString(),p.GuessType,"BYDAY").ToString() );
System.Diagnostics.Debug.Print( "BYMONTHDAY:" );
System.Diagnostics.Debug.Print( exicalendar1.get_valuesFromICalendar(i.ToString(),p.GuessType,"BYMONTHDAY").ToString() );
System.Diagnostics.Debug.Print( "BYYEARDAY:" );
System.Diagnostics.Debug.Print( exicalendar1.get_valuesFromICalendar(i.ToString(),p.GuessType,"BYYEARDAY").ToString() );
System.Diagnostics.Debug.Print( "BYWEEKNO:" );
System.Diagnostics.Debug.Print( exicalendar1.get_valuesFromICalendar(i.ToString(),p.GuessType,"BYWEEKNO").ToString() );
System.Diagnostics.Debug.Print( "BYMONTH:" );
System.Diagnostics.Debug.Print( exicalendar1.get_valuesFromICalendar(i.ToString(),p.GuessType,"BYMONTH").ToString() );
System.Diagnostics.Debug.Print( "BYSETPOS:" );
System.Diagnostics.Debug.Print( exicalendar1.get_valuesFromICalendar(i.ToString(),p.GuessType,"BYSETPOS").ToString() );
System.Diagnostics.Debug.Print( "WKST:" );
System.Diagnostics.Debug.Print( exicalendar1.get_valuesFromICalendar(i.ToString(),p.GuessType,"WKST").ToString() );

23
How can I add a property of recurrence type

// Add 'exontrol.exicalendar.dll(ExICalendar.dll)' reference to your project.
exontrol.EXICALENDARLib.exicalendar exicalendar1 = new exontrol.EXICALENDARLib.exicalendar();
exontrol.EXICALENDARLib.Component var_Component = exicalendar1.Content.Components.Add("VCALENDAR");
	var_Component.Properties.Add("Recur","FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU");
System.Diagnostics.Debug.Print( exicalendar1.Save() );

22
How can I find the duration in weeks, days, hours, minutes, seconds from a property of duration type

// Add 'exontrol.exicalendar.dll(ExICalendar.dll)' reference to your project.
exontrol.EXICALENDARLib.exicalendar exicalendar1 = new exontrol.EXICALENDARLib.exicalendar();
exontrol.EXICALENDARLib.Component var_Component = exicalendar1.Content.Components.Add("VCALENDAR");
	var_Component.Properties.Add("Period",exicalendar1.get_valuesToICalendar("Start=#1/1/2001#;Duration=1",exontrol.EXICALENDARLib.PropertyTypeEnum.exPropertyTypePeriod));
exontrol.EXICALENDARLib.Property p = exicalendar1.Root.Properties["Period"];
string i = exicalendar1.get_toICalendar(p.Value,p.GuessType);
System.Diagnostics.Debug.Print( "icalendar:" );
System.Diagnostics.Debug.Print( i.ToString() );
System.Diagnostics.Debug.Print( "all:" );
System.Diagnostics.Debug.Print( exicalendar1.get_valuesFromICalendar(i.ToString(),p.GuessType,"").ToString() );
System.Diagnostics.Debug.Print( "start:" );
System.Diagnostics.Debug.Print( exicalendar1.get_valuesFromICalendar(i.ToString(),p.GuessType,"Start").ToString() );
System.Diagnostics.Debug.Print( "end:" );
System.Diagnostics.Debug.Print( exicalendar1.get_valuesFromICalendar(i.ToString(),p.GuessType,"End").ToString() );
System.Diagnostics.Debug.Print( "duration:" );
System.Diagnostics.Debug.Print( exicalendar1.get_valuesFromICalendar(i.ToString(),p.GuessType,"Duration").ToString() );
System.Diagnostics.Debug.Print( "weeks:" );
System.Diagnostics.Debug.Print( exicalendar1.get_valuesFromICalendar(i.ToString(),p.GuessType,"W").ToString() );
System.Diagnostics.Debug.Print( "days:" );
System.Diagnostics.Debug.Print( exicalendar1.get_valuesFromICalendar(i.ToString(),p.GuessType,"D").ToString() );
System.Diagnostics.Debug.Print( "hour:" );
System.Diagnostics.Debug.Print( exicalendar1.get_valuesFromICalendar(i.ToString(),p.GuessType,"H").ToString() );
System.Diagnostics.Debug.Print( "min:" );
System.Diagnostics.Debug.Print( exicalendar1.get_valuesFromICalendar(i.ToString(),p.GuessType,"M").ToString() );
System.Diagnostics.Debug.Print( "sec:" );
System.Diagnostics.Debug.Print( exicalendar1.get_valuesFromICalendar(i.ToString(),p.GuessType,"S").ToString() );

21
How can I add a property of period type

// Add 'exontrol.exicalendar.dll(ExICalendar.dll)' reference to your project.
exontrol.EXICALENDARLib.exicalendar exicalendar1 = new exontrol.EXICALENDARLib.exicalendar();
exontrol.EXICALENDARLib.Component var_Component = exicalendar1.Content.Components.Add("VCALENDAR");
	var_Component.Properties.Add("Period1",exicalendar1.get_valuesToICalendar("Start=#1/1/2001#;Duration=1",exontrol.EXICALENDARLib.PropertyTypeEnum.exPropertyTypePeriod));
	var_Component.Properties.Add("Period2",exicalendar1.get_valuesToICalendar("Start=#1/1/2001#;End=#1/2/2001#",exontrol.EXICALENDARLib.PropertyTypeEnum.exPropertyTypePeriod));
	var_Component.Properties.Add("Period3",exicalendar1.get_valuesToICalendar("Duration=1;End=#1/2/2001#",exontrol.EXICALENDARLib.PropertyTypeEnum.exPropertyTypePeriod));
System.Diagnostics.Debug.Print( exicalendar1.Save() );

20
How can I add a property of integer type

// Add 'exontrol.exicalendar.dll(ExICalendar.dll)' reference to your project.
exontrol.EXICALENDARLib.exicalendar exicalendar1 = new exontrol.EXICALENDARLib.exicalendar();
exontrol.EXICALENDARLib.Component var_Component = exicalendar1.Content.Components.Add("VCALENDAR");
	var_Component.Properties.Add("Integer1",1);
	var_Component.Properties.Add("Integer2",exicalendar1.get_toICalendar(1,exontrol.EXICALENDARLib.PropertyTypeEnum.exPropertyTypeInteger));
	exontrol.EXICALENDARLib.Property var_Property = var_Component.Properties.Add("Integer3",null);
		var_Property.Value = 1;
		var_Property.Type = exontrol.EXICALENDARLib.PropertyTypeEnum.exPropertyTypeInteger;
System.Diagnostics.Debug.Print( exicalendar1.Save() );

19
How can I add a property of float type

// Add 'exontrol.exicalendar.dll(ExICalendar.dll)' reference to your project.
exontrol.EXICALENDARLib.exicalendar exicalendar1 = new exontrol.EXICALENDARLib.exicalendar();
exontrol.EXICALENDARLib.Component var_Component = exicalendar1.Content.Components.Add("VCALENDAR");
	var_Component.Properties.Add("Float1",1.5);
	var_Component.Properties.Add("Float2",exicalendar1.get_toICalendar(1.5,exontrol.EXICALENDARLib.PropertyTypeEnum.exPropertyTypeFloat));
	exontrol.EXICALENDARLib.Property var_Property = var_Component.Properties.Add("Float3",null);
		var_Property.Value = 1.5;
		var_Property.Type = exontrol.EXICALENDARLib.PropertyTypeEnum.exPropertyTypeFloat;
System.Diagnostics.Debug.Print( exicalendar1.Save() );

18
How do I get the type of the property

// Add 'exontrol.exicalendar.dll(ExICalendar.dll)' reference to your project.
exontrol.EXICALENDARLib.exicalendar exicalendar1 = new exontrol.EXICALENDARLib.exicalendar();
exontrol.EXICALENDARLib.Component var_Component = exicalendar1.Content.Components.Add("VCALENDAR");
	var_Component.Properties.Add("Duration1",exicalendar1.get_toICalendar(2.5,exontrol.EXICALENDARLib.PropertyTypeEnum.exPropertyTypeDuration));
	exontrol.EXICALENDARLib.Property var_Property = var_Component.Properties.Add("Duration2",null);
		var_Property.Value = 2.5;
		var_Property.Type = exontrol.EXICALENDARLib.PropertyTypeEnum.exPropertyTypeDuration;
exontrol.EXICALENDARLib.Property var_Property1 = exicalendar1.Root.Properties["Duration1"];
	System.Diagnostics.Debug.Print( var_Property1.Name );
	System.Diagnostics.Debug.Print( "Guess" );
	System.Diagnostics.Debug.Print( var_Property1.GuessType.ToString() );
	System.Diagnostics.Debug.Print( var_Property1.Name );
	System.Diagnostics.Debug.Print( "Type" );
	System.Diagnostics.Debug.Print( var_Property1.Type.ToString() );
exontrol.EXICALENDARLib.Property var_Property2 = exicalendar1.Root.Properties["Duration2"];
	System.Diagnostics.Debug.Print( var_Property2.Name );
	System.Diagnostics.Debug.Print( "Guess" );
	System.Diagnostics.Debug.Print( var_Property2.GuessType.ToString() );
	System.Diagnostics.Debug.Print( var_Property2.Name );
	System.Diagnostics.Debug.Print( "Type" );
	System.Diagnostics.Debug.Print( var_Property2.Type.ToString() );

17
How can I get values of the duration iCalendar format

// Add 'exontrol.exicalendar.dll(ExICalendar.dll)' reference to your project.
exontrol.EXICALENDARLib.exicalendar exicalendar1 = new exontrol.EXICALENDARLib.exicalendar();
System.Diagnostics.Debug.Print( "all:" );
System.Diagnostics.Debug.Print( exicalendar1.get_valuesFromICalendar("P1D",exontrol.EXICALENDARLib.PropertyTypeEnum.exPropertyTypeDuration,"").ToString() );
System.Diagnostics.Debug.Print( "duration:" );
System.Diagnostics.Debug.Print( exicalendar1.get_valuesFromICalendar("P1D",exontrol.EXICALENDARLib.PropertyTypeEnum.exPropertyTypeDuration,"Duration").ToString() );

16
How can I find the duration in weeks, days, hours, minutes, seconds from a property of duration type

// Add 'exontrol.exicalendar.dll(ExICalendar.dll)' reference to your project.
exontrol.EXICALENDARLib.exicalendar exicalendar1 = new exontrol.EXICALENDARLib.exicalendar();
exontrol.EXICALENDARLib.Component var_Component = exicalendar1.Content.Components.Add("VCALENDAR");
	var_Component.Properties.Add("Duration",exicalendar1.get_toICalendar(3.325,exontrol.EXICALENDARLib.PropertyTypeEnum.exPropertyTypeDuration));
exontrol.EXICALENDARLib.Property p = exicalendar1.Root.Properties["Duration"];
string i = exicalendar1.get_toICalendar(p.Value,p.GuessType);
System.Diagnostics.Debug.Print( "icalendar:" );
System.Diagnostics.Debug.Print( i.ToString() );
System.Diagnostics.Debug.Print( "all:" );
System.Diagnostics.Debug.Print( exicalendar1.get_valuesFromICalendar(i.ToString(),p.GuessType,"").ToString() );
System.Diagnostics.Debug.Print( "duration:" );
System.Diagnostics.Debug.Print( exicalendar1.get_valuesFromICalendar(i.ToString(),p.GuessType,"Duration").ToString() );
System.Diagnostics.Debug.Print( "weeks:" );
System.Diagnostics.Debug.Print( exicalendar1.get_valuesFromICalendar(i.ToString(),p.GuessType,"W").ToString() );
System.Diagnostics.Debug.Print( "days:" );
System.Diagnostics.Debug.Print( exicalendar1.get_valuesFromICalendar(i.ToString(),p.GuessType,"D").ToString() );
System.Diagnostics.Debug.Print( "hour:" );
System.Diagnostics.Debug.Print( exicalendar1.get_valuesFromICalendar(i.ToString(),p.GuessType,"H").ToString() );
System.Diagnostics.Debug.Print( "min:" );
System.Diagnostics.Debug.Print( exicalendar1.get_valuesFromICalendar(i.ToString(),p.GuessType,"M").ToString() );
System.Diagnostics.Debug.Print( "sec:" );
System.Diagnostics.Debug.Print( exicalendar1.get_valuesFromICalendar(i.ToString(),p.GuessType,"S").ToString() );

15
How can I add a property of duration type

// Add 'exontrol.exicalendar.dll(ExICalendar.dll)' reference to your project.
exontrol.EXICALENDARLib.exicalendar exicalendar1 = new exontrol.EXICALENDARLib.exicalendar();
exontrol.EXICALENDARLib.Component var_Component = exicalendar1.Content.Components.Add("VCALENDAR");
	var_Component.Properties.Add("Duration1",exicalendar1.get_toICalendar(2.5,exontrol.EXICALENDARLib.PropertyTypeEnum.exPropertyTypeDuration));
	exontrol.EXICALENDARLib.Property var_Property = var_Component.Properties.Add("Duration2",null);
		var_Property.Value = 2.5;
		var_Property.Type = exontrol.EXICALENDARLib.PropertyTypeEnum.exPropertyTypeDuration;
	var_Component.Properties.Add("Duration3",exicalendar1.get_valuesToICalendar("D=2;H=12",exontrol.EXICALENDARLib.PropertyTypeEnum.exPropertyTypeDuration));
System.Diagnostics.Debug.Print( exicalendar1.Save() );

14
How can I add a property of date-time type

// Add 'exontrol.exicalendar.dll(ExICalendar.dll)' reference to your project.
exontrol.EXICALENDARLib.exicalendar exicalendar1 = new exontrol.EXICALENDARLib.exicalendar();
exontrol.EXICALENDARLib.Component var_Component = exicalendar1.Content.Components.Add("VCALENDAR");
	var_Component.Properties.Add("DateTime1",Convert.ToDateTime("1/1/2001 12:00:00",System.Globalization.CultureInfo.GetCultureInfo("en-US")));
	var_Component.Properties.Add("DateTime2",exicalendar1.get_toICalendar(Convert.ToDateTime("1/1/2001",System.Globalization.CultureInfo.GetCultureInfo("en-US")),exontrol.EXICALENDARLib.PropertyTypeEnum.exPropertyTypeDateTime));
	exontrol.EXICALENDARLib.Property var_Property = var_Component.Properties.Add("DateTime3",null);
		var_Property.Value = Convert.ToDateTime("1/1/2001",System.Globalization.CultureInfo.GetCultureInfo("en-US"));
		var_Property.Type = exontrol.EXICALENDARLib.PropertyTypeEnum.exPropertyTypeDateTime;
System.Diagnostics.Debug.Print( exicalendar1.Save() );

13
How can I add a property of date type

// Add 'exontrol.exicalendar.dll(ExICalendar.dll)' reference to your project.
exontrol.EXICALENDARLib.exicalendar exicalendar1 = new exontrol.EXICALENDARLib.exicalendar();
exontrol.EXICALENDARLib.Component var_Component = exicalendar1.Content.Components.Add("VCALENDAR");
	var_Component.Properties.Add("Date1",Convert.ToDateTime("1/1/2001",System.Globalization.CultureInfo.GetCultureInfo("en-US")));
	var_Component.Properties.Add("Date2",exicalendar1.get_toICalendar(Convert.ToDateTime("1/1/2001",System.Globalization.CultureInfo.GetCultureInfo("en-US")),exontrol.EXICALENDARLib.PropertyTypeEnum.exPropertyTypeDate));
	exontrol.EXICALENDARLib.Property var_Property = var_Component.Properties.Add("Date3",null);
		var_Property.Value = Convert.ToDateTime("1/1/2001",System.Globalization.CultureInfo.GetCultureInfo("en-US"));
		var_Property.Type = exontrol.EXICALENDARLib.PropertyTypeEnum.exPropertyTypeDate;
System.Diagnostics.Debug.Print( exicalendar1.Save() );

12
How can I add a property of Calendar User Address type

// Add 'exontrol.exicalendar.dll(ExICalendar.dll)' reference to your project.
exontrol.EXICALENDARLib.exicalendar exicalendar1 = new exontrol.EXICALENDARLib.exicalendar();
exontrol.EXICALENDARLib.Component var_Component = exicalendar1.Content.Components.Add("VCALENDAR");
	var_Component.Properties.Add("caladdress1","mailto:support@exontrol.com");
	var_Component.Properties.Add("caladdress2",exicalendar1.get_toICalendar("mailto:support@exontrol.com",exontrol.EXICALENDARLib.PropertyTypeEnum.exPropertyTypeCalAddress));
	exontrol.EXICALENDARLib.Property var_Property = var_Component.Properties.Add("caladdress3",null);
		var_Property.Value = "mailto:support@exontrol.com";
		var_Property.Type = exontrol.EXICALENDARLib.PropertyTypeEnum.exPropertyTypeCalAddress;
System.Diagnostics.Debug.Print( exicalendar1.Save() );

11
How can I add a property of boolean type

// Add 'exontrol.exicalendar.dll(ExICalendar.dll)' reference to your project.
exontrol.EXICALENDARLib.exicalendar exicalendar1 = new exontrol.EXICALENDARLib.exicalendar();
exontrol.EXICALENDARLib.Component var_Component = exicalendar1.Content.Components.Add("VCALENDAR");
	var_Component.Properties.Add("Boolean1",true);
	var_Component.Properties.Add("Boolean2",exicalendar1.get_toICalendar("TRUE",exontrol.EXICALENDARLib.PropertyTypeEnum.exPropertyTypeBoolean));
	exontrol.EXICALENDARLib.Property var_Property = var_Component.Properties.Add("Boolean3",null);
		var_Property.Value = 0;
		var_Property.Type = exontrol.EXICALENDARLib.PropertyTypeEnum.exPropertyTypeBoolean;
System.Diagnostics.Debug.Print( exicalendar1.Save() );

10
How can I add a property of binary type

// Add 'exontrol.exicalendar.dll(ExICalendar.dll)' reference to your project.
exontrol.EXICALENDARLib.exicalendar exicalendar1 = new exontrol.EXICALENDARLib.exicalendar();
exontrol.EXICALENDARLib.Component var_Component = exicalendar1.Content.Components.Add("VCALENDAR");
	var_Component.Properties.Add("Binary1",exicalendar1.get_toICalendar("This is a bit of text converted to binary",exontrol.EXICALENDARLib.PropertyTypeEnum.exPropertyTypeBinary));
	exontrol.EXICALENDARLib.Property var_Property = var_Component.Properties.Add("Binary2",null);
		var_Property.Value = "This is a bit of text converted to binary";
		var_Property.Type = exontrol.EXICALENDARLib.PropertyTypeEnum.exPropertyTypeBinary;
System.Diagnostics.Debug.Print( exicalendar1.Save() );

9
How can I access the root element of the iCalendar format

// Add 'exontrol.exicalendar.dll(ExICalendar.dll)' reference to your project.
exontrol.EXICALENDARLib.exicalendar exicalendar1 = new exontrol.EXICALENDARLib.exicalendar();
exicalendar1.Load("BEGIN:VCALENDAR\\r\\nVERSION:2.0\\r\\nEND:VCALENDAR");
System.Diagnostics.Debug.Print( exicalendar1.Root.Name );
System.Diagnostics.Debug.Print( exicalendar1.Root.Properties["Version"].Value.ToString() );

8
How can I get notified once the control loads a new component, property, when using Load or LoadFile methods

// AddComponent event - Occurs when a new component is added.
private void exicalendar1_AddComponent(object sender,exontrol.EXICALENDARLib.Component   NewComponent)
{
	System.Diagnostics.Debug.Print( NewComponent.ToString() );
}
//this.exicalendar1.AddComponent += new exontrol.EXICALENDARLib.exg2antt.AddComponentEventHandler(this.exicalendar1_AddComponent);

// AddProperty event - Occurs when a new property is added.
private void exicalendar1_AddProperty(object sender,exontrol.EXICALENDARLib.Property   NewPropery)
{
	System.Diagnostics.Debug.Print( NewPropery.ToString() );
}
//this.exicalendar1.AddProperty += new exontrol.EXICALENDARLib.exg2antt.AddPropertyEventHandler(this.exicalendar1_AddProperty);

// Add 'exontrol.exicalendar.dll(ExICalendar.dll)' reference to your project.
exontrol.EXICALENDARLib.exicalendar exicalendar1 = new exontrol.EXICALENDARLib.exicalendar();
exicalendar1.FireEvents = true;
exicalendar1.Load("BEGIN:VCALENDAR\\r\\nVERSION:2.0\\r\\nEND:VCALENDAR");

7
How can I add a property with parameters

// Add 'exontrol.exicalendar.dll(ExICalendar.dll)' reference to your project.
exontrol.EXICALENDARLib.exicalendar exicalendar1 = new exontrol.EXICALENDARLib.exicalendar();
exontrol.EXICALENDARLib.Component var_Component = exicalendar1.Content.Components.Add("VCALENDAR");
	exontrol.EXICALENDARLib.Properties var_Properties = var_Component.Components.Add("VEVENT").Properties;
		var_Properties.Add("SUMMARY","Company Holiday Party").Parameters.Add("LANGUAGE","en-US");
		var_Properties.Add("DATE",Convert.ToDateTime("1/1/2001",System.Globalization.CultureInfo.GetCultureInfo("en-US")));
System.Diagnostics.Debug.Print( exicalendar1.Save() );

6
How can I load iCalendar from a string

// Add 'exontrol.exicalendar.dll(ExICalendar.dll)' reference to your project.
exontrol.EXICALENDARLib.exicalendar exicalendar1 = new exontrol.EXICALENDARLib.exicalendar();
exicalendar1.Load("BEGIN:VCALENDAR\\r\\nVERSION:2.0\\r\\nEND:VCALENDAR");
System.Diagnostics.Debug.Print( exicalendar1.Content.Components[0].Name );

5
How can I add VEVENT objects

// Add 'exontrol.exicalendar.dll(ExICalendar.dll)' reference to your project.
exontrol.EXICALENDARLib.exicalendar exicalendar1 = new exontrol.EXICALENDARLib.exicalendar();
exontrol.EXICALENDARLib.Component var_Component = exicalendar1.Content.Components.Add("VCALENDAR");
	exontrol.EXICALENDARLib.Properties var_Properties = var_Component.Properties;
		var_Properties.Add("Version","2.0");
		var_Properties.Add("PRODID","-//hacksw/handcal//NONSGML v1.0//EN");
	exontrol.EXICALENDARLib.Properties var_Properties1 = var_Component.Components.Add("VEVENT").Properties;
		var_Properties1.Add("DTSTART",Convert.ToDateTime("1/1/2001",System.Globalization.CultureInfo.GetCultureInfo("en-US")));
		var_Properties1.Add("DTEND",Convert.ToDateTime("1/2/2001",System.Globalization.CultureInfo.GetCultureInfo("en-US")));
		var_Properties1.Add("SUMMARY","First Party");
	exontrol.EXICALENDARLib.Properties var_Properties2 = var_Component.Components.Add("VEVENT").Properties;
		var_Properties2.Add("DTSTART",Convert.ToDateTime("1/4/2001",System.Globalization.CultureInfo.GetCultureInfo("en-US")));
		var_Properties2.Add("DTEND",Convert.ToDateTime("1/5/2001",System.Globalization.CultureInfo.GetCultureInfo("en-US")));
		var_Properties2.Add("SUMMARY","Second Party");
System.Diagnostics.Debug.Print( exicalendar1.Save() );

4
How can I save the control's content to iCalendar format, as a file
// Add 'exontrol.exicalendar.dll(ExICalendar.dll)' reference to your project.
exontrol.EXICALENDARLib.exicalendar exicalendar1 = new exontrol.EXICALENDARLib.exicalendar();
exontrol.EXICALENDARLib.Component var_Component = exicalendar1.Content.Components.Add("VCALENDAR");
	exontrol.EXICALENDARLib.Properties var_Properties = var_Component.Properties;
		var_Properties.Add("Version","2.0");
		var_Properties.Add("PRODID","-//hacksw/handcal//NONSGML v1.0//EN");
	exontrol.EXICALENDARLib.Properties var_Properties1 = var_Component.Components.Add("VEVENT").Properties;
		var_Properties1.Add("DTSTART",Convert.ToDateTime("1/1/2001",System.Globalization.CultureInfo.GetCultureInfo("en-US")));
		var_Properties1.Add("DTEND",Convert.ToDateTime("1/2/2001",System.Globalization.CultureInfo.GetCultureInfo("en-US")));
		var_Properties1.Add("SUMMARY","Bastille Day Party");
exicalendar1.SaveFile("c:/temp/test.ical");

3
How can I load the iCalendar format from a file

// Add 'exontrol.exicalendar.dll(ExICalendar.dll)' reference to your project.
exontrol.EXICALENDARLib.exicalendar exicalendar1 = new exontrol.EXICALENDARLib.exicalendar();
exicalendar1.LoadFile("c:/temp/test.ical");
System.Diagnostics.Debug.Print( exicalendar1.Content.Components["VCALENDAR"].Properties["PRODID"].Value.ToString() );

2
How do I export the control's content to iCalendar format

// Add 'exontrol.exicalendar.dll(ExICalendar.dll)' reference to your project.
exontrol.EXICALENDARLib.exicalendar exicalendar1 = new exontrol.EXICALENDARLib.exicalendar();
exontrol.EXICALENDARLib.Component var_Component = exicalendar1.Content.Components.Add("VCALENDAR");
	exontrol.EXICALENDARLib.Properties var_Properties = var_Component.Properties;
		var_Properties.Add("Version","2.0");
		var_Properties.Add("PRODID","-//hacksw/handcal//NONSGML v1.0//EN");
	exontrol.EXICALENDARLib.Properties var_Properties1 = var_Component.Components.Add("VEVENT").Properties;
		var_Properties1.Add("DTSTART",Convert.ToDateTime("1/1/2001",System.Globalization.CultureInfo.GetCultureInfo("en-US")));
		var_Properties1.Add("DTEND",Convert.ToDateTime("1/2/2001",System.Globalization.CultureInfo.GetCultureInfo("en-US")));
		var_Properties1.Add("SUMMARY","Bastille Day Party");
System.Diagnostics.Debug.Print( exicalendar1.Save() );

1
How can I generate a VCALENDAR object

// Add 'exontrol.exicalendar.dll(ExICalendar.dll)' reference to your project.
exontrol.EXICALENDARLib.exicalendar exicalendar1 = new exontrol.EXICALENDARLib.exicalendar();
exontrol.EXICALENDARLib.Properties var_Properties = exicalendar1.Content.Components.Add("VCALENDAR").Properties;
	var_Properties.Add("Version","2.0");
	var_Properties.Add("PRODID","-//hacksw/handcal//NONSGML v1.0//EN");
System.Diagnostics.Debug.Print( exicalendar1.Save() );