2009/dap/calendar Overview.html,1.11,1.12

Update of /sources/public/2009/dap/calendar
In directory hutz:/tmp/cvs-serv30714

Modified Files:
	Overview.html 
Log Message:
2nd editor's draft of Calendar API

Index: Overview.html
===================================================================
RCS file: /sources/public/2009/dap/calendar/Overview.html,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -d -r1.11 -r1.12
--- Overview.html	27 Jan 2010 10:29:36 -0000	1.11
+++ Overview.html	1 Feb 2010 12:44:18 -0000	1.12
@@ -79,8 +79,8 @@
 }
 
 // Perform a calendar search
-navigator.service.calendar.findEvents( {startBefore: 1270832400000}, // find all calendar events that start 
-                                                                  // before April 9, 2010 @ 5pm
+navigator.service.calendar.findEvents( {startBefore: '2010-04-10T05:00:00+12:00'}, // find all calendar events that start 
+                                                                                   // before April 9, 2010 @ 5pm (UTC)
                                         successCalendarFindEventsCallback, 
                                         generalErrorCB );</pre>
                 </div>
@@ -95,16 +95,24 @@
                                                           description:     'W3C weekly meeting',
                                                           summary:         'Agenda to be distributed weekly',
                                                           location:        'IRC and Conf. call #XXX',
-                                                          start:           1264604400000, // January 27, 2010 @ 3pm
-                                                          end:             1264609800000, // January 27, 2010 @ 4:30pm
+                                                          // Starts on January 27, 2010 @ 3pm (UTC):
+                                                          start:           '2010-01-27T10:00:00-05:00',
+                                                          // Ends on January 27, 2010 @ 4:30pm (UTC):
+                                                          end:             '2010-01-27T11:30-05:00',
                                                           recurrence: {
-                                                              frequency:   'weekly',
-                                                              expires:     1312156800000, // August 1, 2011 @ 12am
-                                                              daysInWeek:  [3]            // Every Wednesday
+                                                              frequency:      'weekly',
+                                                              // Occurs every Wednesday:
+                                                              daysInWeek:     [3],
+                                                              interval:       1,
+                                                              // Event does not occur on December 22, 2010 and December 29, 2010
+                                                              exceptionDates: ['2010-12-22', '2010-12-29'],
+                                                              // Expires on or before August 1, 2011 @ Midnight (UTC):
+                                                              expires:        '2011-08-01T00:00:00Z'
                                                           },
-                                                          freebusy:        'busy',
+                                                          transparency:    'transparent',
                                                           status:          'pending',
-                                                          reminder:        -3600000,      // Remind 1 hour before each occurrence of this event
+                                                          // Remind 1 hour before each occurrence of this event:
+                                                          reminder:        '-3600000',
                                                           serviceId:       'http://localhost/calendar'
                                                      });</pre>
                 </div>
@@ -165,11 +173,12 @@
 			</p>
 
 			<p>
-				This specification requires that UTC timestamp formatting for 
-				all dates and times be applied according to the defintion of DOMTimeStamp in [[!DOM-LEVEL-3-CORE]]. This is defined as the date and time, in 
-				milliseconds since the UNIX epoch (Jan 1, 1970). All UTC timestamps must be normalized to standard GMT +0 times. This specification is not 
-				prescriptive on the way that date and time information should be rendered according to any specific time zone, only that the any dates and times 
-				provided have been normalized to a standard time zone by the API for the purposes of distribution across heterogeneous clients.
+				This specification requires that formatting for 
+				all dates and times be applied according to the defintion of <dfn id="dfn-valid-date-or-time-string">valid date and time string</dfn> in [[!HTML5]].
+			</p>
+			
+			<p class='note'>
+				See: <a href="http://dev.w3.org/html5/spec/Overview.html#valid-date-or-time-string">http://dev.w3.org/html5/spec/Overview.html#valid-date-or-time-string</a>
 			</p>
 						
 		</section
@@ -365,7 +374,7 @@
                                 Function to call when the asynchronous operation fails.
                             </dd>
                             <dt>
-                                optional CalendarOptions options
+                                optional CalendarFindOptions options
                             </dt>
                             <dd>
                                 The options to apply to the output of this method.
@@ -388,9 +397,6 @@
                         <p>A globally unique identifier for the given <code>CalendarEvent</code> object. Each <code>CalendarEvent</code> referenced from <code>Calendar</code> MUST include a non-empty <code>id</code> value.</p> 
 						<p>An implementation MUST maintain this globally unique resource identifier when a calendar event is added to, or present within, a Calendar.</p>
 						<p>An implementation MAY use an IANA registered identifier format. The value can also be a non-standard format.</p>
-						<p>It is RECOMMENDED that an implementation assign the id attribute as a <abbr name="Universally Unique IDentifier">UUID</abbr> URN as defined in [[RFC4122]].</p>
-
-						<pre class="example sh_javascript">{id: 'urn:uuid:3a100df9c-e900-9dab-47f1-9fb99932cb88'}</pre>
                     </dd> 
                     <dt>
                         CalendarEvent clone ()
@@ -523,20 +529,20 @@
 						<pre class="example sh_javascript_dom">{summary: 'Agenda:\n\n\t* Introductions\n\t* AoB'}</pre>
                     </dd>
                     <dt>
-                        attribute DOMTimeStamp start
+                        attribute DOMString start
                     </dt>
                     <dd>
-                    	<p>The start date and time of the event in UTC timestamp format as defined in [[!DOM-LEVEL-3-CORE]].</p>
+                    	<p>The start date and time of the event as a <a href="#dfn-valid-date-or-time-string" class="internalDFN">valid date or time string</a>.</p>
 						
-						<pre class="example sh_javascript_dom">{start: 1269439200000} // Event starts on March 24, 2010 @ 2pm</pre>
+						<pre class="example sh_javascript_dom">{start: '2010-03-24T09:00-08:00'} // Event starts on March 24, 2010 @ 5pm (UTC)</pre>
                     </dd>
                     <dt>
-                        attribute DOMTimeStamp? end
+                        attribute DOMString? end
                     </dt>
                     <dd>
-                    	<p>The end date and time of the event in UTC timestamp format as defined in [[!DOM-LEVEL-3-CORE]].</p>
+                    	<p>The end date and time of the event as a <a href="#dfn-valid-date-or-time-string" class="internalDFN">valid date or time string</a>.</p>
 						
-						<pre class="example sh_javascript_dom">{end: 1269442800000} // Event ends on March 24, 2010 @ 3pm</pre>
+						<pre class="example sh_javascript_dom">{end: '2010-03-24T10:00:00-08:00'} // Event ends on March 24, 2010 @ 6pm (UTC)</pre>
                     </dd>  
                     <dt>
                         attribute DOMString? status
@@ -550,15 +556,15 @@
 						<pre class="example sh_javascript_dom">{status: 'pending'} // Event is awaiting user action</pre>
                     </dd>              	 
                     <dt>
-                        attribute DOMString? freebusy
+                        attribute DOMString? transparency
                     </dt>
                     <dd>
-                    	<p>An indication of the freebusy status to set for the event.
+                    	<p>An indication of the display status to set for the event.
 						
 						<p>This parameter may be set to one of the following constants:</p>
-						<pre>'free', 'busy', 'outofoffice', 'holiday'.</pre>
+						<pre>'transparent', 'opaque'.</pre>
                         
-						<pre class="example sh_javascript_dom">{freebusy: 'busy'} // Mark event as busy in Calendar</pre>
+						<pre class="example sh_javascript_dom">{freebusy: 'transparent'} // Mark event as transparent in Calendar</pre>
                     </dd>  
                     <dt>
                         attribute CalendarRepeatRule? recurrence
@@ -566,54 +572,54 @@
                     <dd>
                     	<p>The recurrence or repetition rule for this event
 
-						<pre class="example sh_javascript">{recurrence: {frequency: 'daily'}}  // Event occurs every day and never expires</pre>
+						<pre class="example sh_javascript">{recurrence: {frequency: 'daily'}}     // Event occurs every day and never expires</pre>
 						
-						<pre class="example sh_javascript">{recurrence: {frequency: 'weekly',  // Event occurs weekly...
+						<pre class="example sh_javascript">{recurrence: {frequency: 'weekly',     // Event occurs weekly...
               daysInWeek: [2, 4],      // ...every Tuesday and Thursday
-              expires: 1276272000000}} // Event expires on or before June 11, 2010 @ 4pm</pre>
+              expires: '2010-06-11T12:00:00-04:00'}} // Event expires on or before June 11, 2010 @ 4pm (UTC)</pre>
 
 						<pre class="example sh_javascript">{recurrence: {frequency: 'weekly',     // Event occurs weekly...on every Wednesday
                                        // (if we say the 'start' attribute is March 24, 2010 @ 2pm (Wednesday) as  
                                        // shown above and no daysInWeek attribute is provided)
-              expires: 1276272000000}} // Event expires on or before June 11, 2010 @ 4pm </pre>	
+              expires: '2010-06-11T11:00:00-05:00'}} // Event expires on or before June 11, 2010 @ 4pm (UTC)</pre>	
 			  
 						<pre class="example sh_javascript">{recurrence: {frequency: 'monthly',    // Event occurs monthly...
               daysInMonth: [-5],       // ...5 days before the end of each month 
-              expires: 1276272000000}} // Event expires on or before June 11, 2010 @ 4pm</pre>
+              expires: '2010-06-11T20:00:00+04:00'}} // Event expires on or before June 11, 2010 @ 4pm (UTC)</pre>
 			  
 						<pre class="example sh_javascript">{recurrence: {frequency: 'monthly',    // Event occurs monthly...on the 24th day of every month
                                        // (if we say the 'start' attribute is March 24, 2010 @ 2pm as  
                                        // shown above and no daysInMonth attribute is provided)
-              expires: 1276272000000}} // Event expires on or before June 11, 2010 @ 4pm </pre>	
+              expires: '2010-06-11T20:00:00+04:00'}} // Event expires on or before June 11, 2010 @ 4pm (UTC)</pre>	
 
 						<pre class="example sh_javascript">{recurrence: {frequency: 'yearly',     // Event occurs yearly...on the 24th day of every March
                                        // (if we say the 'start' attribute is March 24, 2010 @ 2pm as  
                                        // shown above and no daysInMonth attribute is provided)
-              expires: 1276272000000}} // Event expires on or before June 11, 2010 @ 4pm </pre>	
+              expires: '2010-06-11T16:00:00+00:00'}} // Event expires on or before June 11, 2010 @ 4pm (UTC)</pre>	
 			  
 			  			<pre class="example sh_javascript">{recurrence: {frequency: 'yearly',     // Event occurs yearly...
               daysInMonth: [24],       // ...every 24th day... 
               monthsInYear: [3, 6],    // ...in every March and June
-              expires: 1276272000000}} // Event expires on or before June 11, 2010 @ 4pm </pre>
+              expires: '2010-06-11T16:00:00Z'}} // Event expires on or before June 11, 2010 @ 4pm (UTC)</pre>
 			  
 			  			<pre class="example sh_javascript">{recurrence: {frequency: 'yearly',     // Event occurs yearly...
               daysInYear: [168],       // ...every 168th day of each year 
-              expires: 1276272000000}} // Event expires on or before June 11, 2010 @ 4pm </pre>
+              expires: '2010-06-11T21:45:00+05:45'}} // Event expires on or before June 11, 2010 @ 4pm (UTC)</pre>
 			  			  
                     </dd>   
                     <dt>
-                        attribute long long? reminder
+                        attribute DOMString? reminder
                     </dt>
                     <dd>
                     	<p>A reminder for the event.</p>
 						
-						<p>This attribute can be specified as a positive value in standard UTC timestamp format, as defined in [[!DOM-LEVEL-3-CORE]], denoting a one-time reminder or as a negative value in milliseconds denoting a relative relationship
+						<p>This attribute can be specified as a positive <a href="#dfn-valid-date-or-time-string" class="internalDFN">valid date or time string</a>.</p>, denoting a one-time reminder or as a negative value in milliseconds denoting a relative relationship
 						 to the start time of the calendar event.</p>
 						
-						 <p>A relative reminder is paticularly useful for setting a reminder for recurring events.</p>
+						 <p>A relative reminder is recommended for setting a reminder for recurrent events.</p>
                         
-						<pre class="example sh_javascript_dom">{reminder: 1269435600000}  // Remind ONCE on March 24, 2010 @ 1pm</pre>
-						<pre class="example sh_javascript_dom">{reminder: -3600000}       // Remind 1 hour before every occurrence of this event</pre>
+						<pre class="example sh_javascript_dom">{reminder: '2010-03-24T13:00:00+00:00'}  // Remind ONCE on March 24, 2010 @ 1pm (UTC)</pre>
+						<pre class="example sh_javascript_dom">{reminder: '-3600000'}       // Remind 1 hour before every occurrence of this event</pre>
                     </dd> 
 
                     <dt>
@@ -638,28 +644,28 @@
 				
                 <dl title='[NoInterfaceObject] interface CalendarFindEventProperties : CalendarEventProperties' class='idl'>
                     <dt>
-                        attribute DOMTimeStamp startBefore
+                        attribute DOMString startBefore
                     </dt>
 					<dd>
-						Search for Calendar Events that start before the UTC time provided as defined in [[!DOM-LEVEL-3-CORE]].
+						Search for Calendar Events that start before the time provided as a <a href="#dfn-valid-date-or-time-string" class="internalDFN">valid date or time string</a>..
 					</dd>
                     <dt>
-                        attribute DOMTimeStamp startAfter
+                        attribute DOMString startAfter
                     </dt>
 					<dd>
-						Search for Calendar Events that start after the UTC time provided as defined in [[!DOM-LEVEL-3-CORE]].
+						Search for Calendar Events that start after the time provided as a <a href="#dfn-valid-date-or-time-string" class="internalDFN">valid date or time string</a>..
 					</dd>
                     <dt>
-                        attribute DOMTimeStamp endBefore
+                        attribute DOMString endBefore
                     </dt>
 					<dd>
-						Search for Calendar Events that end before the UTC time provided as defined in [[!DOM-LEVEL-3-CORE]].
+						Search for Calendar Events that end before the time provided as a <a href="#dfn-valid-date-or-time-string" class="internalDFN">valid date or time string</a>..
 					</dd>
                     <dt>
-                        attribute DOMTimeStamp endAfter
+                        attribute DOMString endAfter
                     </dt>
 					<dd>
-						Search for Calendar Events that end after the UTC time provided as defined in [[!DOM-LEVEL-3-CORE]].
+						Search for Calendar Events that end after the time provided as a <a href="#dfn-valid-date-or-time-string" class="internalDFN">valid date or time string</a>..
 					</dd>
 				</dl>
 			</section>
@@ -685,14 +691,38 @@
 						<pre class="example sh_javascript_dom">{frequency: 'monthly'}  // Event repeats on a monthly basis</pre>
                     </dd>	
 					<dt>
-                        attribute DOMTimeStamp? expires
+                        attribute unsigned short? interval
                     </dt>
                     <dd>
-                    	<p>The date and time to which the CalendarRepeatRule applies in DOMTimeStamp format as defined in [[!DOM-LEVEL-3-CORE]].</p>
+                    	<p>A positive integer defining how often the recurrence rule MUST repeat.</p>
+						
+						<p>
+							For interval N, recurrence rule repeats every Nth frequency. Default interval value is 1, that is every day for a daily, every week for a weekly, every month for a monthly and every year for a yearly.
+						</p>
+						
+						<p>If this parameter is set to <code>null</code> the event item does not have any fixed interval and the event interal should be derived from the other <code>CalendarRepeatRule</code> attributes.</p>
+                        
+						<pre class="example sh_javascript_dom">{interval: 1}</pre>
+                    </dd>
+					<dt>
+                        attribute DOMString? expires
+                    </dt>
+                    <dd>
+                    	<p>The date and time to which the CalendarRepeatRule applies as a <a href="#dfn-valid-date-or-time-string" class="internalDFN">valid date or time string</a>.</p>
 						
 						<p>If this parameter is set to <code>null</code> the event item does not have any fixed expiry date and the event is scheduled to continue indefintely.</p>
                         
-						<pre class="example sh_javascript_dom">{expires: 1312156800000} // Event repeats until August 1, 2011 @ 12am</pre>
+						<pre class="example sh_javascript_dom">{expires: '2011-08-01T01:00:00+01:00'} // Event repeats until August 1, 2011 @ 12am (UTC)</pre>
+                    </dd>
+					<dt>
+                        attribute DOMString[] exceptionDates
+                    </dt>
+                    <dd>
+                    	<p>One or more dates and times to which the CalendarRepeatRule does not apply as <a href="#dfn-valid-date-or-time-string" class="internalDFN">valid date or time string</a> strings.</p>
+						
+						<p>If this parameter is set to <code>null</code> the event item does not have any exception dates and/or times.</p>
+                        
+						<pre class="example sh_javascript_dom">{exceptionDates: ['2010-12-22', '2010-12-29']} // Event does not occur on December 22, 2010 and December 29, 2010</pre>
                     </dd>
                 	<dt>
                         attribute short[] daysInWeek
@@ -798,16 +828,13 @@
 			</section>
 
             <section>
-                <h2><a>CalendarOptions</a> interface</h2>
-				<p class='note'>
-					Rename this to "CalendarSearchFilter" or similar?
-				</p>
+                <h2><a>CalendarFindOptions</a> interface</h2>
 				
                 <p>
-                    The <a href='#calendaroptions-interface'><code>CalendarOptions</code></a>
+                    The <a href='#calendaroptions-interface'><code>CalendarFindOptions</code></a>
                     interface describes the options that can be applied to calendar searching.
                 </p>
-                <dl title='[NoInterfaceObject] interface CalendarOptions' class='idl'>
+                <dl title='[NoInterfaceObject] interface CalendarFindOptions' class='idl'>
                     <dt>
                         attribute unsigned short limit
                     </dt>
@@ -1043,7 +1070,7 @@
 				<p>
 					For example, the following <a href="#calendarfindeventproperties-interface"><code>CalendarFindEventProperties</code></a> object is supplied for Calendar Event searching: 
 					<pre class="example sh_javascript">navigator.service.calendar.findEvents({
-                            startBefore: 1282780800000, // All events before August 26, 2010 
+                            startBefore: '2010-08-26', // All events before August 26, 2010 
                             freebusy: 'busy'
                         }, 
                         /*...*/);</pre>

Received on Monday, 1 February 2010 12:44:22 UTC