69
How do I encode data as ICalendar format

<BODY onload="Init()">
<OBJECT CLASSID="clsid:D6C87100-38E2-4ABB-8AC2-4C0097AEE2D6" id="ICalendar1"></OBJECT>

<SCRIPT LANGUAGE="JScript">
function Init()
{
	var var_Component = ICalendar1.Content;
		var var_Component1 = var_Component.Components.Add("VCALENDAR");
			var_Component1.Properties.Add("VERSION","2.1").Parameters.Add("UNICODE",ICalendar1.toICalendar(true,2));
			var_Component1.Properties.Add("TEXT","This is just a bit of text to be encoded.");
			var_Component1.Properties.Add("BINARY",ICalendar1.toICalendar("This is just a bit of text to be encoded.",1));
			var var_Component2 = var_Component1.Components.Add("VEVENT");
				var_Component2.Properties.Add("DTSTART","1/1/2001");
				var_Component2.Properties.Add("DTEND","1/2/2001 10:00:00 AM");
	alert( ICalendar1.Save() );
}
</SCRIPT>
</BODY>

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

<BODY onload="Init()">
<OBJECT CLASSID="clsid:D6C87100-38E2-4ABB-8AC2-4C0097AEE2D6" id="ICalendar1"></OBJECT>

<SCRIPT LANGUAGE="JScript">
function Init()
{
	alert( "AsArray: " );
	alert( ICalendar1.RecurRange("DTSTART=19970310;FREQ=YEARLY;INTERVAL=2;COUNT=10;BYMONTH=1,2,3","1/1/2001","1/1/2002") );
	alert( "AsString: " );
	alert( ICalendar1.RecurRangeAsString("DTSTART=19970310;FREQ=YEARLY;INTERVAL=2;COUNT=10;BYMONTH=1,2,3","1/1/2001","1/1/2002") );
}
</SCRIPT>
</BODY>

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

<BODY onload="Init()">
<OBJECT CLASSID="clsid:D6C87100-38E2-4ABB-8AC2-4C0097AEE2D6" id="ICalendar1"></OBJECT>

<SCRIPT LANGUAGE="JScript">
function Init()
{
	alert( "FREQ: " );
	alert( ICalendar1.RecurPartValue("DTSTART=19970805T090000;FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=SU",0) );
	alert( "DTSTART: " );
	alert( ICalendar1.RecurPartValue("DTSTART=19970805T090000;FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=SU",1) );
	alert( "UNTIL: " );
	alert( ICalendar1.RecurPartValue("DTSTART=19970805T090000;FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=SU",2) );
	alert( "COUNT: " );
	alert( ICalendar1.RecurPartValue("DTSTART=19970805T090000;FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=SU",3) );
	alert( "INTERVAL: " );
	alert( ICalendar1.RecurPartValue("DTSTART=19970805T090000;FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=SU",4) );
	alert( "WKST: " );
	alert( ICalendar1.RecurPartValue("DTSTART=19970805T090000;FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=SU",14) );
	alert( "BYDAY: " );
	alert( ICalendar1.RecurPartValue("DTSTART=19970805T090000;FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=SU",8) );
	alert( "BYMONTHDAY: " );
	alert( ICalendar1.RecurPartValue("DTSTART=19970805T090000;FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=SU",9) );
	alert( "BYYEARDAY: " );
	alert( ICalendar1.RecurPartValue("DTSTART=19970805T090000;FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=SU",10) );
	alert( "BYWEEKNO: " );
	alert( ICalendar1.RecurPartValue("DTSTART=19970805T090000;FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=SU",11) );
	alert( "BYMONTH: " );
	alert( ICalendar1.RecurPartValue("DTSTART=19970805T090000;FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=SU",12) );
	alert( "BYSETPOS: " );
	alert( ICalendar1.RecurPartValue("DTSTART=19970805T090000;FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=SU",13) );
	alert( "BYHOUR: " );
	alert( ICalendar1.RecurPartValue("DTSTART=19970805T090000;FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=SU",7) );
	alert( "BYMINUTE: " );
	alert( ICalendar1.RecurPartValue("DTSTART=19970805T090000;FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=SU",6) );
	alert( "BYSECOND: " );
	alert( ICalendar1.RecurPartValue("DTSTART=19970805T090000;FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=SU",5) );
}
</SCRIPT>
</BODY>

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

<BODY onload="Init()">
<OBJECT CLASSID="clsid:D6C87100-38E2-4ABB-8AC2-4C0097AEE2D6" id="ICalendar1"></OBJECT>

<SCRIPT LANGUAGE="JScript">
function Init()
{
	alert( "1.A) SyntaxError: " );
	alert( ICalendar1.RecurPartValue("DTSTART=20151205;FREQ=DAILY;BYDAY=MO",-1) );
	alert( "1.B) SyntaxErrorInfo: " );
	alert( ICalendar1.RecurPartValue("DTSTART=20151205;FREQ=DAILY;BYDAY=MO",-2) );
	alert( "2.A) SyntaxError: " );
	alert( ICalendar1.RecurPartValue("FREQ=DAILY;BYDAY=MO",-1) );
	alert( "2.B) SyntaxErrorInfo: " );
	alert( ICalendar1.RecurPartValue("FREQ=DAILY;BYDAY=MO",-2) );
}
</SCRIPT>
</BODY>

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

<BODY onload="Init()">
<OBJECT CLASSID="clsid:D6C87100-38E2-4ABB-8AC2-4C0097AEE2D6" id="ICalendar1"></OBJECT>

<SCRIPT LANGUAGE="JScript">
function Init()
{
	alert( "1. If negative, the expression is incorrect" );
	alert( ICalendar1.RecurCheck("DTSTART=20151205;FREQ=DAILY;BYDAY=MO","12/5/2015") );
	alert( "2. If negative, the expression is incorrect" );
	alert( ICalendar1.RecurCheck("junk","1/1/2001") );
}
</SCRIPT>
</BODY>

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

<BODY onload="Init()">
<OBJECT CLASSID="clsid:D6C87100-38E2-4ABB-8AC2-4C0097AEE2D6" id="ICalendar1"></OBJECT>

<SCRIPT LANGUAGE="JScript">
function Init()
{
	alert( "12/5/2015" );
	alert( ICalendar1.RecurCheck("DTSTART=20151205;FREQ=DAILY;BYDAY=MO","12/5/2015") );
	alert( "12/7/2015" );
	alert( ICalendar1.RecurCheck("DTSTART=20151205;FREQ=DAILY;BYDAY=MO","12/7/2015") );
}
</SCRIPT>
</BODY>

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

<BODY onload="Init()">
<OBJECT CLASSID="clsid:D6C87100-38E2-4ABB-8AC2-4C0097AEE2D6" id="ICalendar1"></OBJECT>

<SCRIPT LANGUAGE="JScript">
function Init()
{
	alert( ICalendar1.RecurAllAsString("DTSTART=19970929;FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=-2",12) );
}
</SCRIPT>
</BODY>

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

<BODY onload="Init()">
<OBJECT CLASSID="clsid:D6C87100-38E2-4ABB-8AC2-4C0097AEE2D6" id="ICalendar1"></OBJECT>

<SCRIPT LANGUAGE="JScript">
function Init()
{
	alert( ICalendar1.RecurAllAsString("DTSTART=19970904;FREQ=MONTHLY;COUNT=3;BYDAY=TU,WE,TH;BYSETPOS=3",12) );
}
</SCRIPT>
</BODY>

61
Recur: The last work day of the month

<BODY onload="Init()">
<OBJECT CLASSID="clsid:D6C87100-38E2-4ABB-8AC2-4C0097AEE2D6" id="ICalendar1"></OBJECT>

<SCRIPT LANGUAGE="JScript">
function Init()
{
	alert( ICalendar1.RecurAllAsString("DTSTART=19970805;FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=-1",12) );
}
</SCRIPT>
</BODY>

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

<BODY onload="Init()">
<OBJECT CLASSID="clsid:D6C87100-38E2-4ABB-8AC2-4C0097AEE2D6" id="ICalendar1"></OBJECT>

<SCRIPT LANGUAGE="JScript">
function Init()
{
	alert( ICalendar1.RecurAllAsString("DTSTART=19970805T090000;FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=SU",12) );
}
</SCRIPT>
</BODY>

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

<BODY onload="Init()">
<OBJECT CLASSID="clsid:D6C87100-38E2-4ABB-8AC2-4C0097AEE2D6" id="ICalendar1"></OBJECT>

<SCRIPT LANGUAGE="JScript">
function Init()
{
	alert( ICalendar1.RecurAllAsString("DTSTART=19970805T090000;FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=MO",12) );
}
</SCRIPT>
</BODY>

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

<BODY onload="Init()">
<OBJECT CLASSID="clsid:D6C87100-38E2-4ABB-8AC2-4C0097AEE2D6" id="ICalendar1"></OBJECT>

<SCRIPT LANGUAGE="JScript">
function Init()
{
	alert( ICalendar1.RecurAllAsString("DTSTART=19970902T090000;FREQ=DAILY;BYHOUR=9,10,11,12,13,14,15,16;BYMINUTE=0,20,40",12) );
}
</SCRIPT>
</BODY>

57
Recur: Every hour and a half for 4 occurrences

<BODY onload="Init()">
<OBJECT CLASSID="clsid:D6C87100-38E2-4ABB-8AC2-4C0097AEE2D6" id="ICalendar1"></OBJECT>

<SCRIPT LANGUAGE="JScript">
function Init()
{
	alert( ICalendar1.RecurAllAsString("DTSTART=19970902T090000;FREQ=MINUTELY;INTERVAL=90;COUNT=4",12) );
}
</SCRIPT>
</BODY>

56
Recur: Every 15 minutes for 6 occurrences

<BODY onload="Init()">
<OBJECT CLASSID="clsid:D6C87100-38E2-4ABB-8AC2-4C0097AEE2D6" id="ICalendar1"></OBJECT>

<SCRIPT LANGUAGE="JScript">
function Init()
{
	alert( ICalendar1.RecurAllAsString("DTSTART=19970902T090000;FREQ=MINUTELY;INTERVAL=15;COUNT=6",12) );
}
</SCRIPT>
</BODY>

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

<BODY onload="Init()">
<OBJECT CLASSID="clsid:D6C87100-38E2-4ABB-8AC2-4C0097AEE2D6" id="ICalendar1"></OBJECT>

<SCRIPT LANGUAGE="JScript">
function Init()
{
	alert( ICalendar1.RecurAllAsString("DTSTART=19970902T090000;FREQ=HOURLY;INTERVAL=3;UNTIL=19970902T170000Z",12) );
}
</SCRIPT>
</BODY>

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

<BODY onload="Init()">
<OBJECT CLASSID="clsid:D6C87100-38E2-4ABB-8AC2-4C0097AEE2D6" id="ICalendar1"></OBJECT>

<SCRIPT LANGUAGE="JScript">
function Init()
{
	alert( ICalendar1.RecurAllAsString("DTSTART=19961105T090000;FREQ=YEARLY;INTERVAL=4;BYMONTH=11;BYDAY=TU;BYMONTHDAY=2,3,4,5,6,7,8",12) );
}
</SCRIPT>
</BODY>

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

<BODY onload="Init()">
<OBJECT CLASSID="clsid:D6C87100-38E2-4ABB-8AC2-4C0097AEE2D6" id="ICalendar1"></OBJECT>

<SCRIPT LANGUAGE="JScript">
function Init()
{
	alert( ICalendar1.RecurAllAsString("DTSTART=19970913T090000;FREQ=MONTHLY;BYDAY=SA;BYMONTHDAY=7,8,9,10,11,12,13",12) );
}
</SCRIPT>
</BODY>

52
Recur: Every Friday the 13th, forever

<BODY onload="Init()">
<OBJECT CLASSID="clsid:D6C87100-38E2-4ABB-8AC2-4C0097AEE2D6" id="ICalendar1"></OBJECT>

<SCRIPT LANGUAGE="JScript">
function Init()
{
	alert( ICalendar1.RecurAllAsString("DTSTART=19970902T090000;FREQ=MONTHLY;BYDAY=FR;BYMONTHDAY=13",12) );
}
</SCRIPT>
</BODY>

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

<BODY onload="Init()">
<OBJECT CLASSID="clsid:D6C87100-38E2-4ABB-8AC2-4C0097AEE2D6" id="ICalendar1"></OBJECT>

<SCRIPT LANGUAGE="JScript">
function Init()
{
	alert( ICalendar1.RecurAllAsString("DTSTART=19970605T090000;FREQ=YEARLY;BYDAY=TH;BYMONTH=6,7,8",12) );
}
</SCRIPT>
</BODY>

50
Recur: Every Thursday in March, forever

<BODY onload="Init()">
<OBJECT CLASSID="clsid:D6C87100-38E2-4ABB-8AC2-4C0097AEE2D6" id="ICalendar1"></OBJECT>

<SCRIPT LANGUAGE="JScript">
function Init()
{
	alert( ICalendar1.RecurAllAsString("DTSTART=19970313T090000;FREQ=YEARLY;BYMONTH=3;BYDAY=TH",12) );
}
</SCRIPT>
</BODY>

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

<BODY onload="Init()">
<OBJECT CLASSID="clsid:D6C87100-38E2-4ABB-8AC2-4C0097AEE2D6" id="ICalendar1"></OBJECT>

<SCRIPT LANGUAGE="JScript">
function Init()
{
	alert( ICalendar1.RecurAllAsString("DTSTART=19970512T090000;FREQ=YEARLY;BYWEEKNO=20;BYDAY=MO",12) );
}
</SCRIPT>
</BODY>

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

<BODY onload="Init()">
<OBJECT CLASSID="clsid:D6C87100-38E2-4ABB-8AC2-4C0097AEE2D6" id="ICalendar1"></OBJECT>

<SCRIPT LANGUAGE="JScript">
function Init()
{
	alert( ICalendar1.RecurAllAsString("DTSTART=19970101T090000;FREQ=YEARLY;BYDAY=20MO",12) );
}
</SCRIPT>
</BODY>

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

<BODY onload="Init()">
<OBJECT CLASSID="clsid:D6C87100-38E2-4ABB-8AC2-4C0097AEE2D6" id="ICalendar1"></OBJECT>

<SCRIPT LANGUAGE="JScript">
function Init()
{
	alert( ICalendar1.RecurAllAsString("DTSTART=19970101T090000;FREQ=YEARLY;INTERVAL=3;COUNT=10;BYYEARDAY=1,100,200",12) );
}
</SCRIPT>
</BODY>

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

<BODY onload="Init()">
<OBJECT CLASSID="clsid:D6C87100-38E2-4ABB-8AC2-4C0097AEE2D6" id="ICalendar1"></OBJECT>

<SCRIPT LANGUAGE="JScript">
function Init()
{
	alert( ICalendar1.RecurAllAsString("DTSTART=19970310T090000;FREQ=YEARLY;INTERVAL=2;COUNT=10;BYMONTH=1,2,3",12) );
}
</SCRIPT>
</BODY>

45
Recur: Yearly in June and July for 10 occurrences

<BODY onload="Init()">
<OBJECT CLASSID="clsid:D6C87100-38E2-4ABB-8AC2-4C0097AEE2D6" id="ICalendar1"></OBJECT>

<SCRIPT LANGUAGE="JScript">
function Init()
{
	alert( ICalendar1.RecurAllAsString("DTSTART=19970610T090000;FREQ=YEARLY;COUNT=10;BYMONTH=6,7",12) );
}
</SCRIPT>
</BODY>

44
Recur: Every Tuesday, every other month

<BODY onload="Init()">
<OBJECT CLASSID="clsid:D6C87100-38E2-4ABB-8AC2-4C0097AEE2D6" id="ICalendar1"></OBJECT>

<SCRIPT LANGUAGE="JScript">
function Init()
{
	alert( ICalendar1.RecurAllAsString("DTSTART=19970902T090000;FREQ=MONTHLY;INTERVAL=2;BYDAY=TU",12) );
}
</SCRIPT>
</BODY>

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

<BODY onload="Init()">
<OBJECT CLASSID="clsid:D6C87100-38E2-4ABB-8AC2-4C0097AEE2D6" id="ICalendar1"></OBJECT>

<SCRIPT LANGUAGE="JScript">
function Init()
{
	alert( ICalendar1.RecurAllAsString("DTSTART=19970910T090000;FREQ=MONTHLY;INTERVAL=18;COUNT=10;BYMONTHDAY=10,11,12,13,14,15",12) );
}
</SCRIPT>
</BODY>

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

<BODY onload="Init()">
<OBJECT CLASSID="clsid:D6C87100-38E2-4ABB-8AC2-4C0097AEE2D6" id="ICalendar1"></OBJECT>

<SCRIPT LANGUAGE="JScript">
function Init()
{
	alert( ICalendar1.RecurAllAsString("DTSTART=19970930T090000;FREQ=MONTHLY;COUNT=10;BYMONTHDAY=1,-1",12) );
}
</SCRIPT>
</BODY>

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

<BODY onload="Init()">
<OBJECT CLASSID="clsid:D6C87100-38E2-4ABB-8AC2-4C0097AEE2D6" id="ICalendar1"></OBJECT>

<SCRIPT LANGUAGE="JScript">
function Init()
{
	alert( ICalendar1.RecurAllAsString("DTSTART=19970902T090000;FREQ=MONTHLY;COUNT=10;BYMONTHDAY=2,15",12) );
}
</SCRIPT>
</BODY>

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

<BODY onload="Init()">
<OBJECT CLASSID="clsid:D6C87100-38E2-4ABB-8AC2-4C0097AEE2D6" id="ICalendar1"></OBJECT>

<SCRIPT LANGUAGE="JScript">
function Init()
{
	alert( ICalendar1.RecurAllAsString("DTSTART=19970928T090000;FREQ=MONTHLY;BYMONTHDAY=-3",12) );
}
</SCRIPT>
</BODY>

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

<BODY onload="Init()">
<OBJECT CLASSID="clsid:D6C87100-38E2-4ABB-8AC2-4C0097AEE2D6" id="ICalendar1"></OBJECT>

<SCRIPT LANGUAGE="JScript">
function Init()
{
	alert( ICalendar1.RecurAllAsString("DTSTART=19970922T090000;FREQ=MONTHLY;COUNT=6;BYDAY=-2MO",12) );
}
</SCRIPT>
</BODY>

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

<BODY onload="Init()">
<OBJECT CLASSID="clsid:D6C87100-38E2-4ABB-8AC2-4C0097AEE2D6" id="ICalendar1"></OBJECT>

<SCRIPT LANGUAGE="JScript">
function Init()
{
	alert( ICalendar1.RecurAllAsString("DTSTART=19970907T090000;FREQ=MONTHLY;INTERVAL=2;COUNT=10;BYDAY=1SU,-1SU",12) );
}
</SCRIPT>
</BODY>

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

<BODY onload="Init()">
<OBJECT CLASSID="clsid:D6C87100-38E2-4ABB-8AC2-4C0097AEE2D6" id="ICalendar1"></OBJECT>

<SCRIPT LANGUAGE="JScript">
function Init()
{
	alert( ICalendar1.RecurAllAsString("DTSTART=19970905T090000;FREQ=MONTHLY;UNTIL=19971224T000000Z;BYDAY=1FR",12) );
}
</SCRIPT>
</BODY>

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

<BODY onload="Init()">
<OBJECT CLASSID="clsid:D6C87100-38E2-4ABB-8AC2-4C0097AEE2D6" id="ICalendar1"></OBJECT>

<SCRIPT LANGUAGE="JScript">
function Init()
{
	alert( ICalendar1.RecurAllAsString("DTSTART=19970905T090000;FREQ=MONTHLY;COUNT=10;BYDAY=1FR",12) );
}
</SCRIPT>
</BODY>

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

<BODY onload="Init()">
<OBJECT CLASSID="clsid:D6C87100-38E2-4ABB-8AC2-4C0097AEE2D6" id="ICalendar1"></OBJECT>

<SCRIPT LANGUAGE="JScript">
function Init()
{
	alert( ICalendar1.RecurAllAsString("DTSTART=19970902T090000;FREQ=WEEKLY;INTERVAL=2;COUNT=8;WKST=SU;BYDAY=TU,TH",12) );
}
</SCRIPT>
</BODY>

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

<BODY onload="Init()">
<OBJECT CLASSID="clsid:D6C87100-38E2-4ABB-8AC2-4C0097AEE2D6" id="ICalendar1"></OBJECT>

<SCRIPT LANGUAGE="JScript">
function Init()
{
	alert( ICalendar1.RecurAllAsString("DTSTART=19970902T090000;FREQ=WEEKLY;INTERVAL=2;UNTIL=19971224T000000Z;WKST=SU;BYDAY=MO,WE,FR",12) );
}
</SCRIPT>
</BODY>

33
Recur: Weekly on Tuesday and Thursday for 5 weeks

<BODY onload="Init()">
<OBJECT CLASSID="clsid:D6C87100-38E2-4ABB-8AC2-4C0097AEE2D6" id="ICalendar1"></OBJECT>

<SCRIPT LANGUAGE="JScript">
function Init()
{
	alert( ICalendar1.RecurAllAsString("DTSTART=19970902T090000;FREQ=WEEKLY;UNTIL=19971007T000000Z;WKST=SU;BYDAY=TU,TH",12) );
}
</SCRIPT>
</BODY>

32
Recur: Weekly on Tuesday and Thursday for 5 weeks

<BODY onload="Init()">
<OBJECT CLASSID="clsid:D6C87100-38E2-4ABB-8AC2-4C0097AEE2D6" id="ICalendar1"></OBJECT>

<SCRIPT LANGUAGE="JScript">
function Init()
{
	alert( ICalendar1.RecurAllAsString("DTSTART=19970902T090000;FREQ=WEEKLY;COUNT=10;WKST=SU;BYDAY=TU,TH",12) );
}
</SCRIPT>
</BODY>

31
Recur: Every other day - forever

<BODY onload="Init()">
<OBJECT CLASSID="clsid:D6C87100-38E2-4ABB-8AC2-4C0097AEE2D6" id="ICalendar1"></OBJECT>

<SCRIPT LANGUAGE="JScript">
function Init()
{
	alert( ICalendar1.RecurAllAsString("DTSTART=19970902T090000;FREQ=DAILY;INTERVAL=2",12) );
}
</SCRIPT>
</BODY>

30
Recur: Daily until December 24, 1997

<BODY onload="Init()">
<OBJECT CLASSID="clsid:D6C87100-38E2-4ABB-8AC2-4C0097AEE2D6" id="ICalendar1"></OBJECT>

<SCRIPT LANGUAGE="JScript">
function Init()
{
	alert( ICalendar1.RecurAllAsString("DTSTART=19970902T090000;FREQ=DAILY;UNTIL=19971224T000000Z",12) );
}
</SCRIPT>
</BODY>

29
Recur: Daily for 10 occurrences

<BODY onload="Init()">
<OBJECT CLASSID="clsid:D6C87100-38E2-4ABB-8AC2-4C0097AEE2D6" id="ICalendar1"></OBJECT>

<SCRIPT LANGUAGE="JScript">
function Init()
{
	alert( ICalendar1.RecurAllAsString("DTSTART=19970902T090000;FREQ=DAILY;COUNT=10",12) );
}
</SCRIPT>
</BODY>

28
How can I add a property of UTC offset type

<BODY onload="Init()">
<OBJECT CLASSID="clsid:D6C87100-38E2-4ABB-8AC2-4C0097AEE2D6" id="ICalendar1"></OBJECT>

<SCRIPT LANGUAGE="JScript">
function Init()
{
	var var_Component = ICalendar1.Content.Components.Add("VCALENDAR");
		var_Component.Properties.Add("UTCOffset","+0100");
	alert( ICalendar1.Save() );
}
</SCRIPT>
</BODY>

27
How can I add a property of URI type

<BODY onload="Init()">
<OBJECT CLASSID="clsid:D6C87100-38E2-4ABB-8AC2-4C0097AEE2D6" id="ICalendar1"></OBJECT>

<SCRIPT LANGUAGE="JScript">
function Init()
{
	var var_Component = ICalendar1.Content.Components.Add("VCALENDAR");
		var_Component.Properties.Add("URI","http://www.exontrol.com");
	alert( ICalendar1.Save() );
}
</SCRIPT>
</BODY>

26
How can I add a property of time type

<BODY onload="Init()">
<OBJECT CLASSID="clsid:D6C87100-38E2-4ABB-8AC2-4C0097AEE2D6" id="ICalendar1"></OBJECT>

<SCRIPT LANGUAGE="JScript">
function Init()
{
	var var_Component = ICalendar1.Content.Components.Add("VCALENDAR");
		var_Component.Properties.Add("Time1","12:00:00 PM");
		var_Component.Properties.Add("Time2",ICalendar1.toICalendar(0.5,12));
		var var_Property = var_Component.Properties.Add("Time3",null);
			var_Property.Value = 0.5;
			var_Property.Type = 12;
	alert( ICalendar1.Save() );
}
</SCRIPT>
</BODY>

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

<BODY onload="Init()">
<OBJECT CLASSID="clsid:D6C87100-38E2-4ABB-8AC2-4C0097AEE2D6" id="ICalendar1"></OBJECT>

<SCRIPT LANGUAGE="JScript">
function Init()
{
	var var_Component = ICalendar1.Content.Components.Add("VCALENDAR");
		var_Component.Properties.Add("Text1","A1");
		var_Component.Properties.Add("Text2",ICalendar1.toICalendar("A1",11));
		var var_Property = var_Component.Properties.Add("Text3",null);
			var_Property.Value = "A1";
			var_Property.Type = 11;
	alert( ICalendar1.Save() );
}
</SCRIPT>
</BODY>

24
How can I find properties of recurence type

<BODY onload="Init()">
<OBJECT CLASSID="clsid:D6C87100-38E2-4ABB-8AC2-4C0097AEE2D6" id="ICalendar1"></OBJECT>

<SCRIPT LANGUAGE="JScript">
function Init()
{
	var var_Component = ICalendar1.Content.Components.Add("VCALENDAR");
		var_Component.Properties.Add("Recur","FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=SA,SU");
	var p = ICalendar1.Root.Properties.Item("Recur");
	var i = ICalendar1.toICalendar(p.Value,p.GuessType);
	alert( "icalendar:" );
	alert( i );
	alert( "all:" );
	alert( ICalendar1.valuesFromICalendar(i,p.GuessType,"") );
	alert( "FREQ:" );
	alert( ICalendar1.valuesFromICalendar(i,p.GuessType,"FREQ") );
	alert( "UNTIL:" );
	alert( ICalendar1.valuesFromICalendar(i,p.GuessType,"UNTIL") );
	alert( "COUNT:" );
	alert( ICalendar1.valuesFromICalendar(i,p.GuessType,"COUNT") );
	alert( "INTERVAL:" );
	alert( ICalendar1.valuesFromICalendar(i,p.GuessType,"INTERVAL") );
	alert( "BYSECOND:" );
	alert( ICalendar1.valuesFromICalendar(i,p.GuessType,"BYSECOND") );
	alert( "BYMINUTE:" );
	alert( ICalendar1.valuesFromICalendar(i,p.GuessType,"BYMINUTE") );
	alert( "BYHOUR:" );
	alert( ICalendar1.valuesFromICalendar(i,p.GuessType,"BYHOUR") );
	alert( "BYDAY:" );
	alert( ICalendar1.valuesFromICalendar(i,p.GuessType,"BYDAY") );
	alert( "BYMONTHDAY:" );
	alert( ICalendar1.valuesFromICalendar(i,p.GuessType,"BYMONTHDAY") );
	alert( "BYYEARDAY:" );
	alert( ICalendar1.valuesFromICalendar(i,p.GuessType,"BYYEARDAY") );
	alert( "BYWEEKNO:" );
	alert( ICalendar1.valuesFromICalendar(i,p.GuessType,"BYWEEKNO") );
	alert( "BYMONTH:" );
	alert( ICalendar1.valuesFromICalendar(i,p.GuessType,"BYMONTH") );
	alert( "BYSETPOS:" );
	alert( ICalendar1.valuesFromICalendar(i,p.GuessType,"BYSETPOS") );
	alert( "WKST:" );
	alert( ICalendar1.valuesFromICalendar(i,p.GuessType,"WKST") );
}
</SCRIPT>
</BODY>

23
How can I add a property of recurrence type

<BODY onload="Init()">
<OBJECT CLASSID="clsid:D6C87100-38E2-4ABB-8AC2-4C0097AEE2D6" id="ICalendar1"></OBJECT>

<SCRIPT LANGUAGE="JScript">
function Init()
{
	var var_Component = ICalendar1.Content.Components.Add("VCALENDAR");
		var_Component.Properties.Add("Recur","FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU");
	alert( ICalendar1.Save() );
}
</SCRIPT>
</BODY>

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

<BODY onload="Init()">
<OBJECT CLASSID="clsid:D6C87100-38E2-4ABB-8AC2-4C0097AEE2D6" id="ICalendar1"></OBJECT>

<SCRIPT LANGUAGE="JScript">
function Init()
{
	var var_Component = ICalendar1.Content.Components.Add("VCALENDAR");
		var_Component.Properties.Add("Period",ICalendar1.valuesToICalendar("Start=#1/1/2001#;Duration=1",9));
	var p = ICalendar1.Root.Properties.Item("Period");
	var i = ICalendar1.toICalendar(p.Value,p.GuessType);
	alert( "icalendar:" );
	alert( i );
	alert( "all:" );
	alert( ICalendar1.valuesFromICalendar(i,p.GuessType,"") );
	alert( "start:" );
	alert( ICalendar1.valuesFromICalendar(i,p.GuessType,"Start") );
	alert( "end:" );
	alert( ICalendar1.valuesFromICalendar(i,p.GuessType,"End") );
	alert( "duration:" );
	alert( ICalendar1.valuesFromICalendar(i,p.GuessType,"Duration") );
	alert( "weeks:" );
	alert( ICalendar1.valuesFromICalendar(i,p.GuessType,"W") );
	alert( "days:" );
	alert( ICalendar1.valuesFromICalendar(i,p.GuessType,"D") );
	alert( "hour:" );
	alert( ICalendar1.valuesFromICalendar(i,p.GuessType,"H") );
	alert( "min:" );
	alert( ICalendar1.valuesFromICalendar(i,p.GuessType,"M") );
	alert( "sec:" );
	alert( ICalendar1.valuesFromICalendar(i,p.GuessType,"S") );
}
</SCRIPT>
</BODY>

21
How can I add a property of period type

<BODY onload="Init()">
<OBJECT CLASSID="clsid:D6C87100-38E2-4ABB-8AC2-4C0097AEE2D6" id="ICalendar1"></OBJECT>

<SCRIPT LANGUAGE="JScript">
function Init()
{
	var var_Component = ICalendar1.Content.Components.Add("VCALENDAR");
		var_Component.Properties.Add("Period1",ICalendar1.valuesToICalendar("Start=#1/1/2001#;Duration=1",9));
		var_Component.Properties.Add("Period2",ICalendar1.valuesToICalendar("Start=#1/1/2001#;End=#1/2/2001#",9));
		var_Component.Properties.Add("Period3",ICalendar1.valuesToICalendar("Duration=1;End=#1/2/2001#",9));
	alert( ICalendar1.Save() );
}
</SCRIPT>
</BODY>

20
How can I add a property of integer type

<BODY onload="Init()">
<OBJECT CLASSID="clsid:D6C87100-38E2-4ABB-8AC2-4C0097AEE2D6" id="ICalendar1"></OBJECT>

<SCRIPT LANGUAGE="JScript">
function Init()
{
	var var_Component = ICalendar1.Content.Components.Add("VCALENDAR");
		var_Component.Properties.Add("Integer1",1);
		var_Component.Properties.Add("Integer2",ICalendar1.toICalendar(1,8));
		var var_Property = var_Component.Properties.Add("Integer3",null);
			var_Property.Value = 1;
			var_Property.Type = 8;
	alert( ICalendar1.Save() );
}
</SCRIPT>
</BODY>

19
How can I add a property of float type

<BODY onload="Init()">
<OBJECT CLASSID="clsid:D6C87100-38E2-4ABB-8AC2-4C0097AEE2D6" id="ICalendar1"></OBJECT>

<SCRIPT LANGUAGE="JScript">
function Init()
{
	var var_Component = ICalendar1.Content.Components.Add("VCALENDAR");
		var_Component.Properties.Add("Float1",1.5);
		var_Component.Properties.Add("Float2",ICalendar1.toICalendar(1.5,7));
		var var_Property = var_Component.Properties.Add("Float3",null);
			var_Property.Value = 1.5;
			var_Property.Type = 7;
	alert( ICalendar1.Save() );
}
</SCRIPT>
</BODY>

18
How do I get the type of the property

<BODY onload="Init()">
<OBJECT CLASSID="clsid:D6C87100-38E2-4ABB-8AC2-4C0097AEE2D6" id="ICalendar1"></OBJECT>

<SCRIPT LANGUAGE="JScript">
function Init()
{
	var var_Component = ICalendar1.Content.Components.Add("VCALENDAR");
		var_Component.Properties.Add("Duration1",ICalendar1.toICalendar(2.5,6));
		var var_Property = var_Component.Properties.Add("Duration2",null);
			var_Property.Value = 2.5;
			var_Property.Type = 6;
	var var_Property1 = ICalendar1.Root.Properties.Item("Duration1");
		alert( var_Property1.Name );
		alert( "Guess" );
		alert( var_Property1.GuessType );
		alert( var_Property1.Name );
		alert( "Type" );
		alert( var_Property1.Type );
	var var_Property2 = ICalendar1.Root.Properties.Item("Duration2");
		alert( var_Property2.Name );
		alert( "Guess" );
		alert( var_Property2.GuessType );
		alert( var_Property2.Name );
		alert( "Type" );
		alert( var_Property2.Type );
}
</SCRIPT>
</BODY>

17
How can I get values of the duration iCalendar format

<BODY onload="Init()">
<OBJECT CLASSID="clsid:D6C87100-38E2-4ABB-8AC2-4C0097AEE2D6" id="ICalendar1"></OBJECT>

<SCRIPT LANGUAGE="JScript">
function Init()
{
	alert( "all:" );
	alert( ICalendar1.valuesFromICalendar("P1D",6,"") );
	alert( "duration:" );
	alert( ICalendar1.valuesFromICalendar("P1D",6,"Duration") );
}
</SCRIPT>
</BODY>

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

<BODY onload="Init()">
<OBJECT CLASSID="clsid:D6C87100-38E2-4ABB-8AC2-4C0097AEE2D6" id="ICalendar1"></OBJECT>

<SCRIPT LANGUAGE="JScript">
function Init()
{
	var var_Component = ICalendar1.Content.Components.Add("VCALENDAR");
		var_Component.Properties.Add("Duration",ICalendar1.toICalendar(3.325,6));
	var p = ICalendar1.Root.Properties.Item("Duration");
	var i = ICalendar1.toICalendar(p.Value,p.GuessType);
	alert( "icalendar:" );
	alert( i );
	alert( "all:" );
	alert( ICalendar1.valuesFromICalendar(i,p.GuessType,"") );
	alert( "duration:" );
	alert( ICalendar1.valuesFromICalendar(i,p.GuessType,"Duration") );
	alert( "weeks:" );
	alert( ICalendar1.valuesFromICalendar(i,p.GuessType,"W") );
	alert( "days:" );
	alert( ICalendar1.valuesFromICalendar(i,p.GuessType,"D") );
	alert( "hour:" );
	alert( ICalendar1.valuesFromICalendar(i,p.GuessType,"H") );
	alert( "min:" );
	alert( ICalendar1.valuesFromICalendar(i,p.GuessType,"M") );
	alert( "sec:" );
	alert( ICalendar1.valuesFromICalendar(i,p.GuessType,"S") );
}
</SCRIPT>
</BODY>

15
How can I add a property of duration type

<BODY onload="Init()">
<OBJECT CLASSID="clsid:D6C87100-38E2-4ABB-8AC2-4C0097AEE2D6" id="ICalendar1"></OBJECT>

<SCRIPT LANGUAGE="JScript">
function Init()
{
	var var_Component = ICalendar1.Content.Components.Add("VCALENDAR");
		var_Component.Properties.Add("Duration1",ICalendar1.toICalendar(2.5,6));
		var var_Property = var_Component.Properties.Add("Duration2",null);
			var_Property.Value = 2.5;
			var_Property.Type = 6;
		var_Component.Properties.Add("Duration3",ICalendar1.valuesToICalendar("D=2;H=12",6));
	alert( ICalendar1.Save() );
}
</SCRIPT>
</BODY>

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

<BODY onload="Init()">
<OBJECT CLASSID="clsid:D6C87100-38E2-4ABB-8AC2-4C0097AEE2D6" id="ICalendar1"></OBJECT>

<SCRIPT LANGUAGE="JScript">
function Init()
{
	var var_Component = ICalendar1.Content.Components.Add("VCALENDAR");
		var_Component.Properties.Add("DateTime1","1/1/2001 12:00:00 PM");
		var_Component.Properties.Add("DateTime2",ICalendar1.toICalendar("1/1/2001",5));
		var var_Property = var_Component.Properties.Add("DateTime3",null);
			var_Property.Value = "1/1/2001";
			var_Property.Type = 5;
	alert( ICalendar1.Save() );
}
</SCRIPT>
</BODY>

13
How can I add a property of date type

<BODY onload="Init()">
<OBJECT CLASSID="clsid:D6C87100-38E2-4ABB-8AC2-4C0097AEE2D6" id="ICalendar1"></OBJECT>

<SCRIPT LANGUAGE="JScript">
function Init()
{
	var var_Component = ICalendar1.Content.Components.Add("VCALENDAR");
		var_Component.Properties.Add("Date1","1/1/2001");
		var_Component.Properties.Add("Date2",ICalendar1.toICalendar("1/1/2001",4));
		var var_Property = var_Component.Properties.Add("Date3",null);
			var_Property.Value = "1/1/2001";
			var_Property.Type = 4;
	alert( ICalendar1.Save() );
}
</SCRIPT>
</BODY>

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

<BODY onload="Init()">
<OBJECT CLASSID="clsid:D6C87100-38E2-4ABB-8AC2-4C0097AEE2D6" id="ICalendar1"></OBJECT>

<SCRIPT LANGUAGE="JScript">
function Init()
{
	var var_Component = ICalendar1.Content.Components.Add("VCALENDAR");
		var_Component.Properties.Add("caladdress1","mailto:support@exontrol.com");
		var_Component.Properties.Add("caladdress2",ICalendar1.toICalendar("mailto:support@exontrol.com",3));
		var var_Property = var_Component.Properties.Add("caladdress3",null);
			var_Property.Value = "mailto:support@exontrol.com";
			var_Property.Type = 3;
	alert( ICalendar1.Save() );
}
</SCRIPT>
</BODY>

11
How can I add a property of boolean type

<BODY onload="Init()">
<OBJECT CLASSID="clsid:D6C87100-38E2-4ABB-8AC2-4C0097AEE2D6" id="ICalendar1"></OBJECT>

<SCRIPT LANGUAGE="JScript">
function Init()
{
	var var_Component = ICalendar1.Content.Components.Add("VCALENDAR");
		var_Component.Properties.Add("Boolean1",true);
		var_Component.Properties.Add("Boolean2",ICalendar1.toICalendar("TRUE",2));
		var var_Property = var_Component.Properties.Add("Boolean3",null);
			var_Property.Value = 0;
			var_Property.Type = 2;
	alert( ICalendar1.Save() );
}
</SCRIPT>
</BODY>

10
How can I add a property of binary type

<BODY onload="Init()">
<OBJECT CLASSID="clsid:D6C87100-38E2-4ABB-8AC2-4C0097AEE2D6" id="ICalendar1"></OBJECT>

<SCRIPT LANGUAGE="JScript">
function Init()
{
	var var_Component = ICalendar1.Content.Components.Add("VCALENDAR");
		var_Component.Properties.Add("Binary1",ICalendar1.toICalendar("This is a bit of text converted to binary",1));
		var var_Property = var_Component.Properties.Add("Binary2",null);
			var_Property.Value = "This is a bit of text converted to binary";
			var_Property.Type = 1;
	alert( ICalendar1.Save() );
}
</SCRIPT>
</BODY>

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

<BODY onload="Init()">
<OBJECT CLASSID="clsid:D6C87100-38E2-4ABB-8AC2-4C0097AEE2D6" id="ICalendar1"></OBJECT>

<SCRIPT LANGUAGE="JScript">
function Init()
{
	ICalendar1.Load("BEGIN:VCALENDAR\\r\\nVERSION:2.0\\r\\nEND:VCALENDAR");
	alert( ICalendar1.Root.Name );
	alert( ICalendar1.Root.Properties.Item("Version").Value );
}
</SCRIPT>
</BODY>

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

<BODY onload="Init()">
<SCRIPT FOR="ICalendar1" EVENT="AddComponent(NewComponent)" LANGUAGE="JScript">
	alert( NewComponent );
</SCRIPT>

<SCRIPT FOR="ICalendar1" EVENT="AddProperty(NewPropery)" LANGUAGE="JScript">
	alert( NewPropery );
</SCRIPT>

<OBJECT CLASSID="clsid:D6C87100-38E2-4ABB-8AC2-4C0097AEE2D6" id="ICalendar1"></OBJECT>

<SCRIPT LANGUAGE="JScript">
function Init()
{
	ICalendar1.FireEvents = true;
	ICalendar1.Load("BEGIN:VCALENDAR\\r\\nVERSION:2.0\\r\\nEND:VCALENDAR");
}
</SCRIPT>
</BODY>

7
How can I add a property with parameters

<BODY onload="Init()">
<OBJECT CLASSID="clsid:D6C87100-38E2-4ABB-8AC2-4C0097AEE2D6" id="ICalendar1"></OBJECT>

<SCRIPT LANGUAGE="JScript">
function Init()
{
	var var_Component = ICalendar1.Content.Components.Add("VCALENDAR");
		var var_Properties = var_Component.Components.Add("VEVENT").Properties;
			var_Properties.Add("SUMMARY","Company Holiday Party").Parameters.Add("LANGUAGE","en-US");
			var_Properties.Add("DATE","1/1/2001");
	alert( ICalendar1.Save() );
}
</SCRIPT>
</BODY>

6
How can I load iCalendar from a string

<BODY onload="Init()">
<OBJECT CLASSID="clsid:D6C87100-38E2-4ABB-8AC2-4C0097AEE2D6" id="ICalendar1"></OBJECT>

<SCRIPT LANGUAGE="JScript">
function Init()
{
	ICalendar1.Load("BEGIN:VCALENDAR\\r\\nVERSION:2.0\\r\\nEND:VCALENDAR");
	alert( ICalendar1.Content.Components.Item(0).Name );
}
</SCRIPT>
</BODY>

5
How can I add VEVENT objects

<BODY onload="Init()">
<OBJECT CLASSID="clsid:D6C87100-38E2-4ABB-8AC2-4C0097AEE2D6" id="ICalendar1"></OBJECT>

<SCRIPT LANGUAGE="JScript">
function Init()
{
	var var_Component = ICalendar1.Content.Components.Add("VCALENDAR");
		var var_Properties = var_Component.Properties;
			var_Properties.Add("Version","2.0");
			var_Properties.Add("PRODID","-//hacksw/handcal//NONSGML v1.0//EN");
		var var_Properties1 = var_Component.Components.Add("VEVENT").Properties;
			var_Properties1.Add("DTSTART","1/1/2001");
			var_Properties1.Add("DTEND","1/2/2001");
			var_Properties1.Add("SUMMARY","First Party");
		var var_Properties2 = var_Component.Components.Add("VEVENT").Properties;
			var_Properties2.Add("DTSTART","1/4/2001");
			var_Properties2.Add("DTEND","1/5/2001");
			var_Properties2.Add("SUMMARY","Second Party");
	alert( ICalendar1.Save() );
}
</SCRIPT>
</BODY>

4
How can I save the control's content to iCalendar format, as a file
<BODY onload="Init()">
<OBJECT CLASSID="clsid:D6C87100-38E2-4ABB-8AC2-4C0097AEE2D6" id="ICalendar1"></OBJECT>

<SCRIPT LANGUAGE="JScript">
function Init()
{
	var var_Component = ICalendar1.Content.Components.Add("VCALENDAR");
		var var_Properties = var_Component.Properties;
			var_Properties.Add("Version","2.0");
			var_Properties.Add("PRODID","-//hacksw/handcal//NONSGML v1.0//EN");
		var var_Properties1 = var_Component.Components.Add("VEVENT").Properties;
			var_Properties1.Add("DTSTART","1/1/2001");
			var_Properties1.Add("DTEND","1/2/2001");
			var_Properties1.Add("SUMMARY","Bastille Day Party");
	ICalendar1.SaveFile("c:/temp/test.ical");
}
</SCRIPT>
</BODY>

3
How can I load the iCalendar format from a file

<BODY onload="Init()">
<OBJECT CLASSID="clsid:D6C87100-38E2-4ABB-8AC2-4C0097AEE2D6" id="ICalendar1"></OBJECT>

<SCRIPT LANGUAGE="JScript">
function Init()
{
	ICalendar1.LoadFile("c:/temp/test.ical");
	alert( ICalendar1.Content.Components.Item("VCALENDAR").Properties.Item("PRODID").Value );
}
</SCRIPT>
</BODY>

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

<BODY onload="Init()">
<OBJECT CLASSID="clsid:D6C87100-38E2-4ABB-8AC2-4C0097AEE2D6" id="ICalendar1"></OBJECT>

<SCRIPT LANGUAGE="JScript">
function Init()
{
	var var_Component = ICalendar1.Content.Components.Add("VCALENDAR");
		var var_Properties = var_Component.Properties;
			var_Properties.Add("Version","2.0");
			var_Properties.Add("PRODID","-//hacksw/handcal//NONSGML v1.0//EN");
		var var_Properties1 = var_Component.Components.Add("VEVENT").Properties;
			var_Properties1.Add("DTSTART","1/1/2001");
			var_Properties1.Add("DTEND","1/2/2001");
			var_Properties1.Add("SUMMARY","Bastille Day Party");
	alert( ICalendar1.Save() );
}
</SCRIPT>
</BODY>

1
How can I generate a VCALENDAR object

<BODY onload="Init()">
<OBJECT CLASSID="clsid:D6C87100-38E2-4ABB-8AC2-4C0097AEE2D6" id="ICalendar1"></OBJECT>

<SCRIPT LANGUAGE="JScript">
function Init()
{
	var var_Properties = ICalendar1.Content.Components.Add("VCALENDAR").Properties;
		var_Properties.Add("Version","2.0");
		var_Properties.Add("PRODID","-//hacksw/handcal//NONSGML v1.0//EN");
	alert( ICalendar1.Save() );
}
</SCRIPT>
</BODY>