All Element Summary (local elements unified by type) |
||||||||||||
additionalDaylightBias (type xsd:int) |
[Optional] Specifies an additional bias value to be added to standardBias
used during local time translations that occur during daylight
saving time.
|
|||||||||||
allDay (type xsd:boolean) |
|
|||||||||||
This element contains attachment metadata, name, content-type and id's, and
may also contain the attachmentBody.
|
||||||||||||
|
||||||||||||
attachmentBody (type xsd:base64Binary) |
This element contains the MIME body of the attachment.
|
|||||||||||
|
||||||||||||
Contains information about this attendee to be invited.
|
||||||||||||
Contains a list of people to uninvite.
|
||||||||||||
|
||||||||||||
|
||||||||||||
|
||||||||||||
Optionally specifies a numeric integer offset timezone bias to retrieve the quickView in.
tzid takes precedence over biasOffset (pending xsd:choice).
|
||||||||||||
This contains only the modifiable properties of the eventBody.
|
||||||||||||
|
||||||||||||
Optional calendar type to return.
|
||||||||||||
|
||||||||||||
This element contains the encoding of the attachment.
|
||||||||||||
This element contains the content type of the attachment.
|
||||||||||||
counterProposeEndTime (type xsd:dateTime) |
If responseType=[counterPropose], then either the {startTime, endTime}, or
location, or both can be present.
|
|||||||||||
counterProposeLocation (type xsd:string) |
If responseType=[counterPropose], then either the {startTime, endTime}, or
location, or both can be present.
|
|||||||||||
counterProposeStartTime (type xsd:dateTime) |
If responseType=[counterPropose], then either the {startTime, endTime}, or
location, or both can be present.
|
|||||||||||
creationDate (type xsd:dateTime) |
This is required in order to exactly determine which timezone recurrence rule to use.
|
|||||||||||
The cuid (CorrelationUID) links an organizer's event to an attendee's
event.
|
||||||||||||
Repeat every [...] days.
|
||||||||||||
Specifies whether this day is free (0) or has at least one event
on it or overlapping (1).
|
||||||||||||
This fragment describes the daylight date to standard date transition
using the RepeatYearlyByDay recurrence rule.
|
||||||||||||
A delegate who responds on behalf of an invitee will have their information
stored here.
|
||||||||||||
The meeting organizer of a recurring meeting may wish to exclude a particular
attachment for an instance of the meeting.
|
||||||||||||
The meeting organizer of a recurring meeting may wish to exclude a particular
attendee for an instance of the meeting.
|
||||||||||||
Exceptions to a recurrence rule are added as an element list of dates.
|
||||||||||||
This function delegates a call to .NET Alerts to delete
an existing meeting reminder. .NET Calendar acts as a client
to the Notification Service.
|
||||||||||||
endTime (type xsd:dateTime) |
|
|||||||||||
|
||||||||||||
The event is the myCalendar root object for calendar events, appointments, and meetings.
|
||||||||||||
The eventId for the meeting.
|
||||||||||||
|
||||||||||||
This stores what the first day of the week is for this
user.
|
||||||||||||
The floating attribute indicates that this event is to
occur in the current local time zone no matter what time zone
the system is currently in (that is, it floats).
|
||||||||||||
|
||||||||||||
|
||||||||||||
|
||||||||||||
This function returns an XML stream of calendar appointments /
events between two dates.
|
||||||||||||
Response XML blob format, consists of the base event type minus recurrence.
|
||||||||||||
This boolean causes .NET Calendar to explicitly return
free time as freeBusy blocks.
|
||||||||||||
This function returns a stream of xml fragments defining the user's
freeBusy information between two dates.
|
||||||||||||
Response XML blob format, consists of freebusy xml fragments.
|
||||||||||||
This function provides an efficient, lightweight means to query a
date range to indicate days that have 1 or more appointments (1)
and days without appointments (0).
|
||||||||||||
The return value of getQuickView is a list of calendar days
grouped into months.
|
||||||||||||
|
||||||||||||
The intendedFreeBusy element is the event organizer's freeBusy information
and is thus equal to event/freeBusyStatus.
|
||||||||||||
interruptability (type xsd:int) |
|
|||||||||||
|
||||||||||||
The meeting organizer uses this to define the kind of invitee {required, optional, resource}.
|
||||||||||||
isLeapYear (type xsd:boolean) |
[International calendar support]
It is possible to derive isLeapYear from leapMonthValue, but .NET Calendar stores both separately.
|
|||||||||||
lastSentTime (type xsd:dateTime) |
Required by reminder engine.
|
|||||||||||
This is updated by the organizer whenever s/he creates and sends a new meeting
request.
|
||||||||||||
[International calendar support]
<leapMonthValue> cannot be derived from a particular year and thus must be stored.
|
||||||||||||
|
||||||||||||
Tracks the status of this meeting {not-sent, sent, cancelled}.
|
||||||||||||
Specifies the month block for the grouping of calendar days.
|
||||||||||||
Repeats the occurrence every month on a particular day.
|
||||||||||||
Repeat on the [First, Second, Third, Fourth, Last] {su, mo, tu, we, th, fr, sa} of every [...] month(s).
|
||||||||||||
This element encapsulates the content document for this service.
|
||||||||||||
This element contains information about an individual attachment in a mail message.
|
||||||||||||
nextTriggerTime (type xsd:dateTime) |
Determines the next time to trigger reminder.
|
|||||||||||
|
||||||||||||
offset (type xsd:int) |
|
|||||||||||
|
||||||||||||
The invitee.
|
||||||||||||
Depending on if <removeRecurrence> parameter is passed into getCalendarDays
|
||||||||||||
|
||||||||||||
recurrenceId (type xsd:dateTime) |
|
|||||||||||
A user may optionally define a reminder for this appointment.
|
||||||||||||
These are the properties of the reminder that may be modified.
|
||||||||||||
|
||||||||||||
Normally, the recurrence sub-schema, (minus modifiedException and minus
deletedExceptionDate components) is returned with each instance of a
recurring event, like "recurring-instance" and "recurring-exception".
|
||||||||||||
|
||||||||||||
repeatForever (type xsd:boolean) |
Overrides the windowEnd date and specifies that this recurrence repeats
forever.
|
|||||||||||
repeatInstances (type xsd:int) |
Overrides the windowEnd date and specifies that this recurrence repeats
for the specified number of instances. repeatInstances and repeatForever
are mutually exclusive, but repeatInstances will override repeatForever
for errant schemas.
|
|||||||||||
This replace request can only affect the meeting invitation in question, and is
thus constrained to be only @select="/m:myCalendar/m:event[@id=@eventId]/...".
|
||||||||||||
The purpose of this method is for a meeting invitee to respond to an
invitation.
|
||||||||||||
Optional message for invitees to include along with the response.
|
||||||||||||
responseTime (type xsd:dateTime) |
The reply time on each attendee is set to the current time (Now) when the organizer
sends a meeting invitation.
|
|||||||||||
The accept status indicates the valid types of responses that an attendee
can reply with {accept, decline, tentative, counterpropose}.
|
||||||||||||
This boolean causes .NET Calendar not to coalesce/merge freeBusy information.
|
||||||||||||
|
||||||||||||
|
||||||||||||
The purpose of this method is for a meeting organizer to invite and uninvite
(cancel) attendees to this event. sendMeeting also sends updated invitations
to existing invitees.
|
||||||||||||
set (type xsd:boolean) |
|
|||||||||||
Response XML blob format, contains the myAlerts hs:idType
for the resultant create/modify operation.
|
||||||||||||
size (type xsd:unsignedLong) |
This element contains the size of the attachment in bytes.
|
|||||||||||
standardBias (type xsd:int) |
Specifies the current bias, in minutes, for local time translation.
|
|||||||||||
This fragment describes the standard date to daylight date transition
using the RepeatYearlyByDay recurrence rule.
|
||||||||||||
startTime (type xsd:dateTime) |
|
|||||||||||
|
||||||||||||
|
||||||||||||
Friendly name that this reminder is being sent to.
|
||||||||||||
|
||||||||||||
transitionTime (type xsd:dateTime) |
|
|||||||||||
travelTimeFrom (type xsd:int) |
|
|||||||||||
travelTimeTo (type xsd:int) |
|
|||||||||||
The type belongs to the following enumeration {free, tentative, busy, away}.
|
||||||||||||
|
||||||||||||
|
||||||||||||
This function is used to update the status of a reminder once the
user has received the notification.
|
||||||||||||
Repeat every [...] week(s) on {su,mo,tu,we,th,fr,sa}.
|
||||||||||||
windowEnd (type xsd:dateTime) |
This dateTime indicates the end of the window over which the recurrence
occurs.
|
|||||||||||
Repeat every year on a particular date.
|
||||||||||||
|
Complex Type Summary |
||||||||||
|
||||||||||
The scheme the message contents were encoded in.
|
||||||||||
|
||||||||||
|
||||||||||
Additional information about an event, found only in an
event invitee's schema
|
||||||||||
|
||||||||||
|
||||||||||
The attendeeType contains the full information about an attendee.
|
||||||||||
|
||||||||||
|
||||||||||
|
||||||||||
|
||||||||||
Contains a list of modified event properties for this particular
orphan event.
|
||||||||||
This element defines the basic myCalendar types.
|
||||||||||
|
||||||||||
|
||||||||||
|
||||||||||
|
||||||||||
|
||||||||||
|
||||||||||
|
||||||||||
|
||||||||||
|
||||||||||
Contains the full (extended) structural definition of the timezone.
|
||||||||||
The TransitionRule specifies the recurrence pattern for daylight savings
time transitions.
|
||||||||||
|
||||||||||
This element's attributes contain whether a given day is or is not considered
by the user as part of the work week.
|
||||||||||
Repeat on the [First, Second, Third, Fourth, Last] {su, mo, tu, we, th, fr, sa}
of [Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec] every [yearFrequency] years.
|
Simple Type Summary |
||||||
|
||||||
The system define unique id of an attachment on a given message.
|
||||||
|
||||||
This field identifies an enumeration which determines the kind
of calendar event this is. .NET My Services v1 will only support HSCAL_GREGORIAN_US.
http://msdn.microsoft.com/library/psdk/winbase/nls_9bg8.htm
plus several others:
Value
Enumeration Constant
Description
-1
HSCAL_ALL_CALENDARS
Unknown Calendar; system default (HSCAL_GREGORIAN_US)
1
HSCAL_GREGORIAN
Gregorian (localized) calendar
2
HSCAL_GREGORIAN_US
Gregorian (U.S.) calendar
3
HSCAL_JAPAN
Japanese Emperor Era calendar
4
HSCAL_TAIWAN
Taiwan Era calendar
5
HSCAL_KOREA
Korean Tangun Era calendar
6
HSCAL_HIJRI
Hijri (Arabic Lunar) calendar
7
HSCAL_THAI
Thai calendar
8
HSCAL_HEBREW
Hebrew (Lunar) calendar
9
HSCAL_GREGORIAN_ME_FRENCH
Gregorian Middle East French calendar
10
HSCAL_GREGORIAN_ARABIC
Gregorian Arabic calendar
11
HSCAL_GREGORIAN_XLIT_ENGLISH
Gregorian Transliterated English calendar
12
HSCAL_GREGORIAN_XLIT_FRENCH
Gregorian Transliterated French calendar
13
HSCAL_KOREA_LUNAR
Default Korea Lunar calendar
14
HSCAL_JAPAN_LUNAR
Default Japanese Lunar calendar
15
HSCAL_CHINESE_LUNAR
Chinese Lunar calendar
16
HSCAL_SAKA
Indian Saka calendar
17
HSCAL_LUNAR_ETO_CHN
Chinese Zodiac calendar
18
HSCAL_LUNAR_ETO_KOR
Korean Zodiac calendar
19
HSCAL_LUNAR_ROKUYOU
Japanese Lucky days calendar
|
||||||
Contains the attachment body.
|
||||||
|
||||||
|
||||||
|
||||||
|
||||||
|
||||||
|
||||||
|
||||||
|
||||||
Restrict to 1-13.
|
||||||
|
||||||
|
||||||
This is a .NET My Services specific integer enumeration defining
the exact supported time zone.
|
||||||
Specifies which week in a month [first, second, third, fourth, last].
|
Element Group Summary |
||||||||||
|
<xsd:schema elementFormDefault="qualified" targetNamespace="http://schemas.microsoft.com/hs/2001/10/myCalendar" version="1.0" xmlns="http://schemas.microsoft.com/hs/2001/10/myCalendar" xmlns:hs="http://schemas.microsoft.com/hs/2001/10/core" xmlns:xdb="urn:schemas-microsoft-com:xdb" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:annotation>
<xsd:documentation>
</xsd:annotation>
Schema for .NET Calendar service
</xsd:documentation>
Copyright (c) 2001 Microsoft Corporation. All rights reserved.
<xdb:blue select="/myCalendar"/>
</xsd:appinfo>
<xdb:blue select="/myCalendar/*"/>
<xdb:blue select="/myCalendar/event/*"/>
<xdb:blue select="/myCalendar/event/recurrence/rule"/>
<xdb:blue select="/myCalendar/event/recurrence/exception"/>
<xdb:red select="//@changeNumber"/>
<xdb:red select="//@id"/>
<xdb:red select="//cat"/>
<xdb:red select="//@creator"/>
<xdb:red select="//cat/@ref"/>
<xdb:red select="/myCalendar/event/@calendarType"/>
<xdb:red select="/myCalendar/event/body/$any"/>
<xdb:red select="/myCalendar/event/attendeeEventExtra/$any"/>
<xdb:red select="/myCalendar/event/attendee/$any"/>
<xdb:red select="/myCalendar/event/recurrence/rule/repeat/$any"/>
<xdb:red select="/myCalendar/event/recurrence/rule/$any"/>
<xdb:red select="/myCalendar/event/recurrence/exception/$any"/>
<xdb:red select="/myCalendar/event/recurrence/$any"/>
<xdb:red select="/myCalendar/event/body/title"/>
<xdb:red select="/myCalendar/event/body/startTime"/>
<xdb:red select="/myCalendar/event/body/endTime"/>
<xdb:red select="/myCalendar/event/body/organizer/puid"/>
<xdb:red select="/myCalendar/event/body/organizer/email"/>
<xdb:red select="/myCalendar/event/body/cuid"/>
<xdb:red select="/myCalendar/event/attendee/puid"/>
<xdb:red select="/myCalendar/event/attendee/email"/>
<!--
<xdb:red select="/myCalendar/event/attendee/inviteType"/> <xdb:red select="/myCalendar/event/attendee/responseTime"/> <xdb:red select="/myCalendar/event/attendee/responseType"/> --> <xdb:red select="/myCalendar/event/recurrence/exception/recurrenceId"/>
<!--
<xdb:red select="/myCalendar/event/recurrence/rule/windowStart"/> <xdb:red select="/myCalendar/event/recurrence/rule/windowEnd"/> <xdb:red select="/myCalendar/event/recurrence/rule/repeatForever"/> --> <xdb:red select="/myCalendar/event/recurrence/exception/body/startTime"/>
<xdb:red select="/myCalendar/event/recurrence/exception/body/endTime"/>
<xdb:red select="/myCalendar/event/reminder/nextTriggerTime"/>
<xdb:sqlScript source="myCalendarCustomSQL.sql"/>
<xdb:namespaceMap>
<xdb:mapping alias="m" uri="http://schemas.microsoft.com/hs/2001/10/myCalendar"/>
</xdb:namespaceMap>
<xdb:mapping alias="hs" uri="http://schemas.microsoft.com/hs/2001/10/core"/>
<xsd:import namespace="http://schemas.microsoft.com/hs/2001/10/core" schemaLocation="hscommon.xsd"/>
<!--........................................................................-->
<!--
// // myCalendar // - root element for the .NET Calendar service // -->
<xsd:annotation>
</xsd:element>
<xsd:documentation>
</xsd:annotation>
</xsd:complexType>
This element encapsulates the content document for this service. This element
</xsd:documentation>
establishes a global cache scope for the service and contains other root level system attributes for this instance of the service.
<xsd:annotation>
</xsd:annotation>
</xsd:complexType>
<xsd:sequence>
<xsd:element maxOccurs="unbounded" minOccurs="0" name="event" type="eventType">
</xsd:sequence>
<xsd:annotation>
</xsd:element>
<xsd:documentation>
</xsd:annotation>
The event is the myCalendar root object for calendar events, appointments, and meetings.
</xsd:documentation>
<xsd:sequence>
</xsd:complexType>
</xsd:complexType>
<xsd:element maxOccurs="unbounded" minOccurs="0" name="cat" type="hs:catType"/>
</xsd:sequence>
<!-- WHFIX: move to namespaced category
<xsd:element name="sensitivity" type="sensitivityEnum" minOccurs="0" maxOccurs="1" > <xsd:annotation> <xsd:documentation> This optional attribute defines the importance of this event normal, personal, private, confidential. The default is set to normal. </xsd:documentation> </xsd:annotation> </xsd:element> -->
<xsd:annotation>
</xsd:element>
<xsd:documentation>
</xsd:annotation>
This element contains an xhtml-compliant, free form, full description of the event.
</xsd:documentation>
<xsd:annotation>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
</xsd:element>
<xsd:documentation>
</xsd:annotation>
Tracks the status of this meeting {not-sent, sent, cancelled}. A regular appointment will
</xsd:documentation>
not have this element. If <meetingStatus> exists, this event should be rendered as a meeting, not as an appointment.
<xsd:annotation>
</xsd:element>
<xsd:documentation>
</xsd:annotation>
The recurrence id indicates the original start time of an occurrence of a
</xsd:documentation>
recurring master appointment. It is required to identify what instance an orphan exception is modifying, since users are allowed to change the start time on the orphan. The recurrenceId method is stored in UTC. It does not appear in the master schema, except in the specific case that an attendee is invited to an instance of a recurring event. Otherwise, <recurrenceId> is usually only a part of getCalendarDays. <br/>
<b>ICAL Equivalent</b>
: RECURRENCEID
<xsd:annotation>
</xsd:element>
<xsd:documentation>
</xsd:annotation>
This is updated by the organizer whenever s/he creates and sends a new meeting
</xsd:documentation>
request. This helps the attendee to identify which meeting request is the most recent one. It is stored in UTC. This property is not modifiable by clients and is assigned by the server on modification and by the sendMeetingRequest. <br/>
<b>ICAL Equivalent</b>
: DTSTAMP.
<xsd:annotation>
</xsd:element>
<xsd:documentation>
</xsd:annotation>
The startTime method defines the start time of the event. An all-day event
</xsd:documentation>
by convention starts at 12:00:00 AM of the day of the event. This is stored in UTC. Maximum range is January 1, 1753 to December 31, 9999 to an accuracy of 3.33 milliseconds. <br/>
If this event is a
<b>recurring event</b>
, <startTime> defines the
dateTime when the recurrence window starts. The recurring master does not have to be an instance of the recurring event itself. An event in March set to recur every April will only appear in April.
<xsd:annotation>
</xsd:element>
<xsd:documentation>
</xsd:annotation>
The endTime method defines the end time of the event. An all-day event by
</xsd:documentation>
convention ends at 11:59:59 PM of the ending day. This is stored in UTC. Maximum range is January 1, 1753 to December 31, 9999 to an accuracy of 3.33 milliseconds. The duration of the event is inferred from endTime - startTime.
<xsd:annotation>
</xsd:element>
<xsd:documentation>
</xsd:annotation>
False or absence of this element indicates a regular event.
</xsd:documentation>
Otherwise, this attribute indicates that the event is an all-day event. All day events may span multiple days. By convention, all day events start at 12:00:00 am of the day of startTime, regardless of what time it actually is, and it will end at 11:59:59 pm of the endTime date. In other words, if the allDay element is present and has value=true, .NET Calendar will ignore the actual times of the events and consider only the date part of the field. <br/>
The allDay tag is meant to operate as a hint to UI
renders to display specialized icons indicating an all-day event. allDay events are distinguishable between 24-hr events starting at 12am. In the case of a meeting request, an allDay event will <b>not</b>
appear in the local user's time zone, but rather
in the organizer's time zone.
<xsd:annotation>
</xsd:element>
<xsd:documentation>
</xsd:annotation>
The floating attribute indicates that this event is to
</xsd:documentation>
occur in the current local time zone no matter what time zone the system is currently in (that is, it floats). For example, holidays are floating events. Floating values are stored as-is: no time-zone translations are needed to convert them to UTC or any local time zone.
<xsd:annotation>
</xsd:element>
<xsd:documentation>
</xsd:annotation>
This is the amount of time (in minutes) that it takes to
</xsd:documentation>
travel to the meeting location. <p>
This optional element shows in free/busy calculations.
</p>
<xsd:annotation>
</xsd:element>
<xsd:documentation>
</xsd:annotation>
This is the amount of time (in minutes) that it takes to
</xsd:documentation>
return from the meeting location. <p>
This optional element shows in free/busy calculations.
</p>
<xsd:annotation>
</xsd:element>
<xsd:documentation>
</xsd:annotation>
This optional element annotates the freeBusy behavior of this event.
</xsd:documentation>
All events by default appear as "busy". The user may explicitly define this event to be annotated by setting .NET Calendar values to free, tentative, busy or away. <br/>
CONSIDER: turn into some freeform mechanism + set values.
<xsd:annotation>
</xsd:element>
<xsd:documentation>
</xsd:annotation>
The cuid (CorrelationUID) links an organizer's event to an attendee's
</xsd:documentation>
event. It identifies which response from an attendee is for which request from an organizer, and which meeting request update from the organizer is for which previously accepted meeting by the attendee. The "cuid" is the same on both the attendee's and the organizer's copy of the appointment. It is also identical on the orphan exception and the recurring master. This value is assigned by the .NET Calendar server and is non-modifiable. <br/>
<b>ICAL Equivalent</b>
: UID.
<xsd:annotation>
</xsd:element>
<xsd:documentation>
</xsd:annotation>
This is the email address of the event organizer for non-.NET My Services organizers.
</xsd:documentation>
<br/>
<b>ICAL Equivalent</b>
: ORGANIZER.
<xsd:annotation>
</xsd:annotation>
</xsd:any>
<xsd:complexContent>
</xsd:complexType>
<xsd:extension base="recurrenceRuleBodyType">
</xsd:complexContent>
<xsd:sequence>
</xsd:extension>
<xsd:any maxOccurs="unbounded" minOccurs="0" namespace="##other" processContents="skip">
</xsd:sequence>
<xsd:annotation>
</xsd:any>
<xsd:documentation>
</xsd:annotation>
Additional recurrence rule logic that cannot be expressed in .NET Calendar logic.
</xsd:documentation>
<xsd:sequence>
</xsd:sequence>
</xsd:complexType>
<xsd:sequence>
</xsd:complexType>
<xsd:element name="creationDate" type="xsd:dateTime">
</xsd:sequence>
<xsd:annotation>
</xsd:element>
<xsd:documentation>
</xsd:annotation>
This is required in order to exactly determine which timezone recurrence rule to use.
</xsd:documentation>
We cannot use the startTime of the event because of the ability to create events in the past and in the future.
<xsd:annotation>
</xsd:element>
<xsd:documentation>
</xsd:annotation>
This stores what the first day of the week is for this
</xsd:documentation>
user. Typical values are (su) Sunday or (mo) Monday. <br/>
<br/>
Recurrence rule's specified FirstDOW for calculating the recurrence expansion.
Allows recurring meetings to be expanded in the organizer's FirstDOW instead of the invitee's FirstDOW. <br/>
<b>Outlook and ICAL Equivalents</b>
: FirstDOW
<xsd:annotation>
</xsd:element>
<xsd:documentation>
</xsd:annotation>
Identifies the time zone for this recurring event.
</xsd:documentation>
<b>
All dateTime information in
</b>
this event is stored in UTC (converted from the local time zone defined
by the time zone sub-schema). If this field is absent, the recurring event is assumed to be recurring in UTC time. However, it is only a <b>floating recurring event</b>
if
the <floating> attribute is set. <strong>
@afterDay is used as a placeholder for v1. @afterDay will not be use for
</strong>
.NET My Services V1. <pre>
<timeZone floating="..."
</pre>
<b>
<u>
</b>
<font color="red">id</font>
</u>
="...">
<font color="#aa9988">
<sub>1..1</sub>
</font>
<standardBias>
<font color="#aa9988">
<sub>1..1</sub>
</font>
</standardBias>
<additionalDaylightBias> <font color="#aa9988">
<sub>0..1</sub>
</font>
</additionalDaylightBias>
<standardDate> <font color="#aa9988">
<sub>0..1</sub>
</font>
<transitionRule weekdayOfMonth="..." day="..." dayOfMonth="..." month="..." afterDay="...">
<font color="#aa9988">
<sub>1..1</sub>
</font>
</transitionRule>
<transitionTime> <font color="#aa9988">
<sub>1..1</sub>
</font>
</transitionTime>
</standardDate> <daylightDate> <font color="#aa9988">
<sub>0..1</sub>
</font>
<transitionRule weekdayOfMonth="..." day="..." dayOfMonth="..." month="..." afterDay="...">
<font color="#aa9988">
<sub>1..1</sub>
</font>
</transitionRule>
<transitionTime> <font color="#aa9988">
<sub>1..1</sub>
</font>
</transitionTime>
</daylightDate> </timeZone>
<xsd:annotation>
</xsd:element>
<xsd:documentation>
</xsd:annotation>
[International calendar support]
</xsd:documentation>
<br/>
It is possible to derive isLeapYear from leapMonthValue, but .NET Calendar stores both separately.
See leapMonthValue for a use-case scenario.
<xsd:annotation>
</xsd:element>
<xsd:documentation>
</xsd:annotation>
[International calendar support]
</xsd:documentation>
<br/>
<leapMonthValue> cannot be derived from a particular year and thus must be stored. For
example, a user creates a recurrence on a Hebrew Lunar calendar. The year is a leap year and it has 13 months. In that year, the leapMonthValue is 7. <!--
<xsd:element name="windowStart" type="windowStartType" > <xsd:annotation> <xsd:documentation> The windowStart is the beginning of the timeSpan over which the recurrence occurs. This is typically set to equal the startTime of a recurring event upon its creation. However, there are no provisions that this must be the case. This is stored in UTC. Maximum range is January 1, 1753 to December 31, 9999 to an accuracy of 3.33 milliseconds. </xsd:documentation> </xsd:annotation> </xsd:element> -->
<xsd:annotation>
</xsd:element>
<xsd:documentation>
</xsd:annotation>
This dateTime indicates the end of the window over which the recurrence
</xsd:documentation>
occurs. This is stored in UTC. Maximum range is January 1, 1753 to December 31, 9999 to an accuracy of 3.33 milliseconds. <b>TODO:</b>
windowEnd, repeatForever, repeatInstances should be xsd:choice when implemented by XDB.
<xsd:annotation>
</xsd:element>
<xsd:documentation>
</xsd:annotation>
Overrides the windowEnd date and specifies that this recurrence repeats
</xsd:documentation>
forever. Client implementations cannot depend on date values repeating forever, like 23:59:59pm Dec 31, 9999 or 23:59 Aug 31, 4500.
<xsd:annotation>
</xsd:element>
<xsd:documentation>
</xsd:annotation>
Overrides the windowEnd date and specifies that this recurrence repeats
</xsd:documentation>
for the specified number of instances. repeatInstances and repeatForever are mutually exclusive, but repeatInstances will override repeatForever for errant schemas. <!--
<xsd:element name="addedExceptionDate" type="xsd:dateTime" minOccurs="0" maxOccurs="unbounded" > <xsd:annotation> <xsd:documentation> Additional days added to the recurrence rule appear as a list of dateTime elements. This is stored in UTC. <br/><b>ICAL Equivalent</b>: RDATE. </xsd:documentation> </xsd:annotation> </xsd:element> -->
<xsd:complexContent>
</xsd:complexType>
<xsd:extension base="recurrenceRuleBodyBaseType">
</xsd:complexContent>
<xsd:sequence>
</xsd:extension>
<xsd:element maxOccurs="unbounded" minOccurs="0" name="deletedExceptionDate" type="xsd:dateTime">
</xsd:sequence>
<xsd:annotation>
</xsd:element>
<xsd:documentation>
</xsd:annotation>
Exceptions to a recurrence rule are added as an element list of dates.
</xsd:documentation>
The service logic ignores the hh:mm:ss of the dateTime and merely blocks out the particular day. Any days can be added to an exception rule, including days where no occurrences of a recurrence rule would fall in the first place (ICAL EXDATE). This is stored in UTC.
<xsd:sequence>
</xsd:complexType>
<xsd:element maxOccurs="1" minOccurs="0" name="daily">
</xsd:sequence>
<xsd:annotation>
</xsd:annotation>
</xsd:element>
<xsd:attribute name="dayFrequency" type="xsd:int" use="required">
</xsd:complexType>
<xsd:annotation>
</xsd:attribute>
<xsd:documentation>
</xsd:annotation>
The periodicity of days over which repetition occurs,
</xsd:documentation>
for example, repeat every 3 days.
<xsd:annotation>
</xsd:element>
<xsd:documentation>
</xsd:annotation>
Repeat every [...] week(s) on {su,mo,tu,we,th,fr,sa}.
</xsd:documentation>
<br/>
The presence of a weekday attribute means to repeat
on this particular day. Any combination of the seven days is valid.
<xsd:complexContent>
</xsd:complexType>
<xsd:extension base="weekDayAttributesType">
</xsd:complexContent>
<xsd:attribute name="weekFrequency" type="xsd:int">
</xsd:extension>
<xsd:annotation>
</xsd:attribute>
<xsd:documentation>
</xsd:annotation>
The repeatWeekly recurrence occurs every period of weeks. If the
</xsd:documentation>
attribute is not present, it defaults to 1 (every week).
<xsd:annotation>
</xsd:element>
<xsd:documentation>
</xsd:annotation>
<br/>
</xsd:documentation>
Repeat on the [First, Second, Third, Fourth, Last] {su, mo, tu, we, th, fr, sa} of every [...] month(s).
<br/>
Any combination of the {weekday} attributes are valid, including user-defined combinations for
weekdays and weekend days.
<xsd:complexContent>
</xsd:complexType>
<xsd:extension base="weekDayAttributesType">
</xsd:complexContent>
<xsd:attribute name="monthFrequency" type="xsd:int">
</xsd:extension>
<xsd:annotation>
</xsd:attribute>
<xsd:documentation>
</xsd:annotation>
Specifies the month periodicity to recur on. If this
</xsd:documentation>
attribute is not present, it defaults to 1 (every month).
<xsd:annotation>
</xsd:element>
<xsd:documentation>
</xsd:annotation>
Repeats the occurrence every month on a particular day. The very first occurrence is
</xsd:documentation>
created from the parent event's startTime and endTime, but the recurrence occurs as follows: <li>Repeat every month on [day] of [month].</li>
<li>
Repeat every [monthFrequency] month(s) on [day] of [month].
</li>
Typically, the first occurrence is also an instance of the recurrence,
but this need not be the case.
<xsd:attribute name="monthFrequency" type="xsd:int">
</xsd:complexType>
<xsd:annotation>
</xsd:attribute>
<xsd:documentation>
</xsd:annotation>
This optional attribute indicates the month periodicity. By default,
</xsd:documentation>
it is 1, periodic every month. The start of the periodicity is determined from event startTime.
<xsd:annotation>
</xsd:attribute>
<xsd:documentation>
</xsd:annotation>
Specifies the day of the month to recur on. Value is between 1-31.
</xsd:documentation>
See forceExact for invalid day-month combinations. The proper recurrence pattern for repeating on the last day of the month is to use repeatMonthlyByDay. "Repeat on the [last] [day, weekday, weekend day] of ..."
<xsd:annotation>
</xsd:attribute>
<xsd:documentation>
</xsd:annotation>
By default, an invalid day-month combination will cause .NET Calendar to search backwards to
</xsd:documentation>
find a valid day-month combination. If forceExact is true, an invalid starting [month ,day] combination such as [6, 31] is ignored and will not be included as an instance of the recurrence. With forceExact, .NET Calendar follows ICAL behavior. <li>
day=31 will only pick up months that have 31 days.
</li>
<li>day=30 will pick up all months except February.</li>
<li>
day=29 will pick up all months except February, except on leap
</li>
years. February 29 is included on leap years.
<xsd:annotation>
</xsd:element>
<xsd:documentation>
</xsd:annotation>
Repeat every year on a particular date. The very first occurrence is
</xsd:documentation>
created from the parent event's startTime and endTime, but the recurrence occurs as follows: <li>Repeat yearly on [day] of [month].</li>
<li>
Repeat every [yearFrequency] years on [day] of [month].
</li>
Typically, the first occurrence is also an instance of the recurrence,
but this need not be the case.
<xsd:attribute name="yearFrequency" type="xsd:int">
</xsd:complexType>
<xsd:annotation>
</xsd:attribute>
<xsd:documentation>
</xsd:annotation>
This optional attribute indicates the year periodicity. By
</xsd:documentation>
default, it is 1 (repeat every year).
<xsd:annotation>
</xsd:annotation>
</xsd:attribute>
<xsd:annotation>
</xsd:attribute>
<xsd:documentation>
</xsd:annotation>
Specifies the day of the month to recur on. Value is between 1-31.
</xsd:documentation>
See forceExact for invalid day-month combinations.
<xsd:annotation>
</xsd:attribute>
<xsd:documentation>
</xsd:annotation>
By default, an invalid day-month-year combination will cause .NET Calendar to search backwards to
</xsd:documentation>
find a valid day for a particular month, year. If forceExact is true, an invalid starting [month ,day] combination such as [6, 31] is ignored and will not be included as an instance of the recurrence. With forceExact, .NET Calendar follows ICAL behavior. <li>
day=31 will only pick up months that have 31 days.
</li>
<li>day=30 will pick up all months except February.</li>
<li>
day=29 will pick up all months except February, except on leap
</li>
years. February 29 is included on leap years.
<xsd:annotation>
</xsd:annotation>
</xsd:any>
<xsd:annotation>
</xsd:complexType>
<xsd:documentation>
</xsd:annotation>
Contains a list of modified event properties for this particular
</xsd:documentation>
orphan event. The properties that are not modified are inherited from the original event upon recurrence expansion (client-side). <b>recurrenceId</b>
is always present. It is used to determine
which instance of the original rule this modifiedException applies to. <br/>
<br/>
<b>TODO</b>
: decide what other properties must belong.
<xsd:sequence>
<xsd:element name="recurrenceId" type="xsd:dateTime">
</xsd:sequence>
<xsd:annotation>
</xsd:element>
<xsd:documentation>
</xsd:annotation>
This is the original start time (recurrenceId) of the occurrence that is
</xsd:documentation>
being modified by this exception. ModifiedExceptions with recurrenceIds that do not match the recurrenceId of any occurrence are ignored. This is stored in UTC. modifiedException does not expose the id attribute. recurrenceId should be used to predicate instead, it functions as the id of modifiedException.
<xsd:annotation>
</xsd:element>
<xsd:documentation>
</xsd:annotation>
This contains only the modifiable properties of the eventBody.
</xsd:documentation>
<xsd:sequence>
</xsd:complexType>
<xsd:element maxOccurs="1" minOccurs="0" name="title" type="hs:localizableString">
</xsd:sequence>
<xsd:annotation>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
</xsd:element>
<xsd:documentation>
</xsd:annotation>
Suppose this particular instance has a revised description.
</xsd:documentation>
<xsd:annotation>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
</xsd:element>
<xsd:documentation>
</xsd:annotation>
Suppose the original organizer is replaced by another organizer.
</xsd:documentation>
<xsd:annotation>
</xsd:element>
<xsd:documentation>
</xsd:annotation>
The meeting organizer of a recurring meeting may wish to exclude a particular
</xsd:documentation>
attendee for an instance of the meeting. This hs:idRefType (puid) indicates which attendee, (from the list of attendees at the event level) are not invited to this particular meeting instance.
<xsd:annotation>
</xsd:element>
<xsd:documentation>
</xsd:annotation>
The meeting organizer of a recurring meeting may wish to exclude a particular
</xsd:documentation>
attachment for an instance of the meeting. <!--
<xsd:element name="deletedReminder" type="hs:idRefType" minOccurs="0" maxOccurs="1" > <xsd:annotation> <xsd:documentation> This appointment creator may not wish to be reminded about this particular recurring instance. </xsd:documentation> </xsd:annotation> </xsd:element> -->
<xsd:annotation>
</xsd:element>
<xsd:documentation>
</xsd:annotation>
These are the properties of the reminder that may be modified. If there is no
</xsd:documentation>
reminder subschema in the event body, exception reminders are ignored.
<xsd:annotation>
</xsd:any>
<xsd:documentation>
</xsd:annotation>
Additional properties of the myCalendar/BaseEventType schema. Only certain
</xsd:documentation>
event properties may exist here.
<xsd:annotation>
</xsd:attributeGroup>
<xsd:documentation>
</xsd:annotation>
This id is assigned by .NET Calendar. On a modify operation, sending
</xsd:documentation>
in an id attempts to modify the modifiedException, and a blank id means that this modify operation adds a new modifiedException. On an insert operation, the id must be blank (it will be ignored if encountered due to the expense of this kind of validation).
<xsd:annotation>
</xsd:complexType>
<xsd:documentation>
</xsd:annotation>
The TransitionRule specifies the recurrence pattern for daylight savings
</xsd:documentation>
time transitions. <li>
Repeat on the [First, Second, Third, Fourth, Last]
</li>
[day, weekday, weekend day, su ,mo, tu, we, th, fr, sa] of [Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec] [after [afterDay]]. <li>
Repeat on the [dayOfMonth] of [Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec]
</li>
<br/>
<xsd:annotation>
</xsd:attribute>
<xsd:documentation>
</xsd:annotation>
Used to specify a particular weekday of the month to transition on. If this attribute
</xsd:documentation>
is present, then @day must also be present.
<xsd:annotation>
</xsd:attribute>
<xsd:documentation>
</xsd:annotation>
Used to specify a day of the week for the transition to occur on. If this
</xsd:documentation>
attribute is present, then @dayOfMonth must also be present.
<xsd:annotation>
</xsd:attribute>
<xsd:documentation>
</xsd:annotation>
Used to specify a transition on a particular day of a month. Eg, Iraq (Baghdad)
</xsd:documentation>
transitions on 5/1 and 9/30.
<xsd:annotation>
</xsd:attribute>
<xsd:documentation>
</xsd:annotation>
<b>afterDay</b>
</xsd:documentation>
is needed to support certain time-zone recurrence rules for
countries that use the format of the first Friday after the 15th (i.e. New Zealand, which ends the first Sunday on or after 5 March).
<xsd:annotation>
</xsd:complexType>
<xsd:documentation>
</xsd:annotation>
<li>
</xsd:documentation>
Repeat on the [First, Second, Third, Fourth, Last] {su, mo, tu, we, th, fr, sa}
</li>
of [Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec] every [yearFrequency] years. <br/>
Any combination of the {weekday} attributes are valid, including user-defined combinations
denoting weekdays and weekend days. <xsd:complexContent>
<xsd:extension base="weekDayAttributesType">
</xsd:complexContent>
<xsd:attribute name="yearFrequency" type="xsd:int">
</xsd:extension>
<xsd:annotation>
</xsd:attribute>
<xsd:documentation>
</xsd:annotation>
This optional attribute indicates the year periodicity. By
</xsd:documentation>
default, it is 1 (repeat every year).
<xsd:sequence>
</xsd:sequence>
</xsd:complexType>
<xsd:sequence>
</xsd:complexType>
</xsd:complexType>
<xsd:element name="set" type="xsd:boolean">
</xsd:sequence>
<xsd:annotation>
</xsd:element>
<xsd:documentation>
</xsd:annotation>
Boolean flag that indicates whether the reminder is active for this
</xsd:documentation>
event. In most cases, this will be true, but in the case of a recurring appointment, this flag may default to true with specific instances not to be reminded, or default to false, with specific instances to be reminded.
<xsd:annotation>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
</xsd:element>
<xsd:documentation>
</xsd:annotation>
Specifies the offset, in minutes, of how long before the
</xsd:documentation>
event the user should be reminded. Recommended values are the following: <table border="1" cellpadding="1" cellspacing="1">
<tr>
</table>
<td align="center">
</tr>
<b>Value</b>
</td>
<td align="center">
<b>Description</b>
</td>
<tr>
<td>5, 10, 20, 30, 45</td>
</tr>
<td>5, 10, 20, 30, 45 minutes before the event</td>
<tr>
<td>60, 120, 180,</td>
</tr>
<td>1, 2, 3 hours before the event</td>
<tr>
<td>startTime - startDay</td>
</tr>
<td>The day of the event (reminder sent at 12:00am)</td>
<tr>
<td>startTime - (startDay - (1440 * x))</td>
</tr>
<td>
"x" days before the event (reminder sent at 12:00am "x" days before)
</td>
<xsd:annotation>
</xsd:element>
<xsd:documentation>
</xsd:annotation>
This optional element defines how interruptible this event is and it is
</xsd:documentation>
used by notification routing software to make decisions about the relay and deferral of notifications that might occur while this meeting is active. The value contained in this element is a numeric value between 1 - 10. Low values represent a high cost of disruption, high values represent a low cost of disruption.
<xsd:annotation>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
</xsd:annotation>
</xsd:element>
<!-- WHFIX: myNotifications should handle this.
<xsd:element name="device" type="deviceEnum"> <xsd:annotation> <xsd:documentation> Allow for client, mobile, email, and messenger notifications </xsd:documentation> </xsd:annotation> </xsd:element> <xsd:element name="deviceId" type="xsd:string"> <xsd:annotation> <xsd:documentation> Specifies the device to send to. This may be an email address, a messenger Id, or a mobile alert number/id. <b>TBD</b> </xsd:documentation> </xsd:annotation> </xsd:element> <xsd:element name="reminderMessage" type="hs:localizableString" minOccurs="0" maxOccurs="1" > <xsd:annotation> <xsd:documentation> Optional message to be sent on a notification. </xsd:documentation> </xsd:annotation> </xsd:element> -->
<xsd:annotation>
</xsd:complexType>
<xsd:documentation>
</xsd:annotation>
Additional information about an event, found only in an
</xsd:documentation>
event invitee's schema <xsd:sequence>
<xsd:element maxOccurs="1" minOccurs="0" name="intendedFreeBusy" type="freeBusyStatusType">
</xsd:sequence>
<xsd:annotation>
</xsd:element>
<xsd:documentation>
</xsd:annotation>
The intendedFreeBusy element is the event organizer's freeBusy information
</xsd:documentation>
and is thus equal to event/freeBusyStatus. Invitees may overwrite event/freeBusyStatus with a new value, and intendedFreeBusy is intended to store the organizer's original freeBusyStatus.
<xsd:annotation>
</xsd:element>
<xsd:documentation>
</xsd:annotation>
A delegate who responds on behalf of an invitee will have their information
</xsd:documentation>
stored here.
<xsd:annotation>
</xsd:annotation>
</xsd:any>
<xsd:annotation>
</xsd:complexType>
<xsd:documentation>
</xsd:annotation>
The attendeeType contains the full information about an attendee.
</xsd:documentation>
The display, email, puid, and the attendee's response. <!-- WHFIX: This is the only way to do an extension based on 2
different groups...make 1st an extension, include 2nd as a group. --> <xsd:complexContent>
<xsd:extension base="attendeeInfoType">
</xsd:extension>
</xsd:complexContent>
<!--
<xsd:sequence> <xsd:group ref="attendeeInfoGroup"/> <xsd:group ref="attendeeResponseGroup"/> </xsd:sequence> -->
<xsd:complexContent>
</xsd:complexType>
<xsd:extension base="hs:userReference">
</xsd:complexContent>
<xsd:sequence>
</xsd:extension>
<xsd:element name="inviteType" type="inviteTypeEnum">
</xsd:sequence>
<xsd:annotation>
</xsd:element>
<xsd:documentation>
</xsd:annotation>
The meeting organizer uses this to define the kind of invitee {required, optional, resource}.
</xsd:documentation>
<!--
</xsd:complexType>
<xsd:group name="attendeeInfoGroup"> <xsd:sequence> <xsd:element name="displayName" type="hs:localizableString" > </xsd:element> <xsd:element name="puid" type="hs:puidType" minOccurs="0" maxOccurs="1" > <xsd:annotation> <xsd:documentation> TODO: need to figure out if there is a better way to use this information. That is, perhaps a link to the contact information is better. However, if the attendee isn't a .NET My Services user or isn't in .NET Contacts, then we need the other fields. </xsd:documentation> </xsd:annotation> </xsd:element> <xsd:element name="email" type="xsd:string"> <xsd:annotation> <xsd:documentation> E-mail address of user. The user may be a non-.NET My Services user. Precedence is given to the puid fragment before the email fragment. </xsd:documentation> </xsd:annotation> </xsd:element> </xsd:sequence> </xsd:group> -->
<xsd:sequence>
</xsd:group>
<xsd:element maxOccurs="1" minOccurs="0" name="responseTime" type="xsd:dateTime">
</xsd:sequence>
<xsd:annotation>
</xsd:element>
<xsd:documentation>
</xsd:annotation>
The reply time on each attendee is set to the current time (Now) when the organizer
</xsd:documentation>
sends a meeting invitation. When the attendee responds, they always update their responseTime. When the organizer receives responses, they will honor only those that have a higher responseTime than what s/he maintains in his/her own copy of the event for each attendee. While processing the response, the organizer will update their responseTime. This guarantees that the organizer honors only the most recent response from the attendee. This is stored in UTC. <br/>
<b>ICAL Equivalent</b>
: reply time on message.
<xsd:annotation>
</xsd:element>
<xsd:documentation>
</xsd:annotation>
The accept status indicates the valid types of responses that an attendee
</xsd:documentation>
can reply with {accept, decline, tentative, counterpropose}. The absense of this field indicates that no response has been recorded (either the invitation has not been sent, or that a reply has not been received).
<xsd:annotation>
</xsd:element>
<xsd:documentation>
</xsd:annotation>
If responseType=[counterPropose], then either the {startTime, endTime}, or
</xsd:documentation>
location, or both can be present. This is the invitee's counterProposal for a new start time for the meeting. This is stored in UTC.
<xsd:annotation>
</xsd:element>
<xsd:documentation>
</xsd:annotation>
If responseType=[counterPropose], then either the {startTime, endTime}, or
</xsd:documentation>
location, or both can be present. This is the invitee's counterProposal for a new end time for the meeting. This is stored in UTC.
<xsd:annotation>
</xsd:element>
<xsd:documentation>
</xsd:annotation>
If responseType=[counterPropose], then either the {startTime, endTime}, or
</xsd:documentation>
location, or both can be present. This is the invitee's counterProposal for a location for the meeting.
<xsd:annotation>
</xsd:element>
<xsd:documentation>
</xsd:annotation>
Optional message for invitees to include along with the response.
</xsd:documentation>
<xsd:restriction base="xsd:string">
</xsd:simpleType>
<xsd:enumeration value="required"/>
</xsd:restriction>
<xsd:enumeration value="optional"/>
<xsd:enumeration value="resource"/>
<xsd:restriction base="xsd:string">
</xsd:simpleType>
<xsd:enumeration value="accept"/>
</xsd:restriction>
<xsd:enumeration value="decline"/>
<xsd:enumeration value="tentative"/>
<xsd:enumeration value="counterPropose"/>
<xsd:restriction base="xsd:string">
</xsd:simpleType>
<xsd:enumeration value="not-sent"/>
</xsd:restriction>
<xsd:enumeration value="sent"/>
<xsd:enumeration value="cancelled"/>
<xsd:sequence>
</xsd:complexType>
<xsd:element name="startTime" type="xsd:dateTime"/>
</xsd:sequence>
<xsd:annotation>
</xsd:element>
<xsd:documentation>
</xsd:annotation>
The type belongs to the following enumeration {free, tentative, busy, away}.
</xsd:documentation>
<xsd:restriction base="xsd:string">
</xsd:simpleType>
<xsd:enumeration value="client"/>
</xsd:restriction>
<xsd:enumeration value="email"/>
<xsd:enumeration value="messenger"/>
<xsd:enumeration value="mobile"/>
<xsd:sequence>
</xsd:complexType>
<xsd:element maxOccurs="1" minOccurs="0" name="calendarType" type="calendarLocaleEnum">
</xsd:sequence>
<xsd:annotation>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
</xsd:element>
<xsd:documentation>
</xsd:annotation>
The starting time window of calendar objects to retrieve.
</xsd:documentation>
This dateTime also contains the timeZone to retrieve the calendar information in.
<xsd:annotation>
</xsd:element>
<xsd:documentation>
</xsd:annotation>
The ending time window to retrieve calendar objects.
</xsd:documentation>
This dateTime also contains the timeZone to retrieve the calendar information in. It must be the same timeZone as startTime. <!--
<xsd:element name="tzid" type="tzidEnum" minOccurs="0" maxOccurs="1" > <xsd:annotation> <xsd:documentation> Determines the time zone of the window for which to pull events. If neither tzid or biasOffset are present, getCalendarDays defaults to UTC (+0:00). Note that defaulting to UTC or specifying UTC will also pull floating events because we store all dateTimes in UTC. </xsd:documentation> </xsd:annotation> </xsd:element> <xsd:element name="biasOffset" minOccurs="0" maxOccurs="1" > <xsd:annotation> <xsd:documentation> Determines the biasOffset of the window for which to pull events. It takes the form [GMT/UTC]{+/-}xx[:yy]. In other words, it is a GMT/UTC bias for (thin) clients who would prefer to specify the bias instead of an enum. If neither tzid or biasOffset are present, getCalendarDays defaults to UTC (+0:00). tzid takes precedence over biasOffset. It is restricted to a maximum of 9 characters. <b>TODO: convert to RegEx.</b> </xsd:documentation> </xsd:annotation> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="9"/> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="puid" type="hs:puidType" minOccurs="1" maxOccurs="64" > <xsd:annotation> <xsd:documentation> The puid of the user for whom to retrieve calendar information. <br/>TODO: need email/nickname/puid reverse-lookup mechanism. This is required for meeting invitations as well. </xsd:documentation> </xsd:annotation> </xsd:element> --> <!--
// Domain specific methods // getCalendarDays Request -->
<xsd:annotation>
</xsd:element>
<xsd:documentation>
</xsd:annotation>
This function returns an XML stream of calendar appointments /
</xsd:documentation>
events between two dates. Recurrence rules are expanded to create individual calendar items. Holidays are represented as all-day events, and these are returned as well. getCalendarDays is a query-retrieval of data, but the behavior expands recurrence rules into individual (aliased) events, adds in holidays, and adds regular events and sorts the entire list based on start time. No merging of event blocks occurs. Any object which overlaps the method parameters {startTime, endTime} will be returned. For example, if an event crosses midnight and the startTime is 12am, that event will be returned. In case the startDate, endDate is one day, the events are sorted in the following order: holidays, all-day events, and regular events (based on startTime). <br/>
The {startTime, endTime] time window can define any
interval: 24hr period, week, month, or any other user-defined period. <br/>
<b>getCalendarDays</b>
returns the calendaring info of
any puid that is specified for which the caller has sufficient privileges. The user's own puid must be specified to retrieve their own information. <br/>
<b>getCalendarDays</b>
may be used to retrieve multiple calendar data from
other users using <li><h:key instance="0" cluster="0" puid="xyz"/></li>
in the SOAP headers provided that puid "xyz" is provisioned on the .NET Calendar
server, and provided that the user has been granted access in puid "xyz"'s rolelist.
<xsd:complexContent>
</xsd:complexType>
<xsd:extension base="domainStandardMethodParametersType">
</xsd:complexContent>
<xsd:sequence>
</xsd:extension>
<xsd:element maxOccurs="1" minOccurs="0" name="removeRecurrence" type="xsd:boolean">
</xsd:sequence>
<xsd:annotation>
</xsd:element>
<xsd:documentation>
</xsd:annotation>
Normally, the recurrence sub-schema, (minus modifiedException and minus
</xsd:documentation>
deletedExceptionDate components) is returned with each instance of a recurring event, like "recurring-instance" and "recurring-exception". This allows clients to properly render the recurrence pattern without having to explicitly query the recurring-master. However, because it is heavy on bandwith, .NET Calendar includes the option to not return this data.
<xsd:annotation>
</xsd:element>
<xsd:documentation>
</xsd:annotation>
Response XML blob format, consists of the base event type minus recurrence.
</xsd:documentation>
<xsd:sequence>
</xsd:complexType>
<xsd:element maxOccurs="unbounded" minOccurs="0" name="event">
</xsd:sequence>
<xsd:complexType>
</xsd:element>
<xsd:sequence>
</xsd:complexType>
<xsd:element name="body" type="bodyType"/>
</xsd:sequence>
<xsd:annotation>
</xsd:element>
<xsd:documentation>
</xsd:annotation>
Depending on if <removeRecurrence> parameter is passed into getCalendarDays
</xsd:documentation>
<xsd:annotation>
</xsd:attribute>
<xsd:documentation>
</xsd:annotation>
Distinguishes between a single instance of an event or an instance of a recurring event.
</xsd:documentation>
The recurring instance is a modified exception if eventBody/recurrenceId is present: single, recurring-master, recurring-instance, recurring-exception. <!--
// Domain specific methods // getCalendarView Request --> <!--
<xsd:element name="getCalendarViewRequest"> <xsd:annotation> <xsd:documentation> This function allows a user to retrieve unexpanded calendar information in a method similar to unmerged freebusy info. Each block contains the [startTime, endTime], plus a puid alias back to the original event. Specific properties of that event may be surfaced in a future schema revision. <br/><br/>getCalendarView presents an alternate method to retrieve lightweight data, where a user is interested in where events lie in their calendar, but they wish to defer loading of that event for performance, bandwidth, or additional processing reasons. This method is an additional view of the calendar information. </xsd:documentation> </xsd:annotation> <xsd:complexType> <xsd:sequence> <xsd:element name="startTime" type="xsd:dateTime" use="required"> <xsd:annotation> <xsd:documentation> The starting time window of calendar objects to retrieve. This dateTime also contains the timeZone to retrieve the calendar information in. </xsd:documentation> </xsd:annotation> </xsd:element> <xsd:element name="endTime" type="xsd:dateTime" use="required"> <xsd:annotation> <xsd:documentation> The ending time window of calendar objects to retrieve. This dateTime also contains the timeZone to retrieve the calendar information in. It must be the same timeZone as startTime. </xsd:documentation> </xsd:annotation> </xsd:element> <xsd:element name="puid" type="hs:puidType" minOccurs="1" maxOccurs="64"> <xsd:annotation> <xsd:documentation> The puid of the user for whom to retrieve calendar information. <br/>TODO: need email/nickname/puid reverse-lookup mechanism. This is required for meeting invitations as well. </xsd:documentation> </xsd:annotation> </xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="getCalendarViewResponse"> <xsd:annotation> <xsd:documentation> Response XML blob format. <b>CONSIDER</b>: surfacing additional user-specified properties. </xsd:documentation> </xsd:annotation> <xsd:complexType> <xsd:sequence> <xsd:element name="user" minOccurs="1" maxOccurs="64" > <xsd:complexType> <xsd:attribute name="puid" type="hs:puidType" > <xsd:annotation> <xsd:documentation> Puid of this particular user's calendar information. </xsd:documentation> </xsd:annotation> </xsd:attribute> <xsd:sequence> <xsd:element name="startTime" type="xsd:dateTime"> <xsd:annotation> <xsd:documentation> The time when this event starts, might be an instance of a recurrence. </xsd:documentation> </xsd:annotation> </xsd:element> <xsd:element name="endTime" type="xsd:dateTime"> <xsd:annotation> <xsd:documentation> The time when this event ends, might be an instance of a recurrence. </xsd:documentation> </xsd:annotation> </xsd:element> <xsd:element name="event" minOccurs="0" maxOccurs="unbounded" > <xsd:complexType> <xsd:attributeGroup ref="hs:standardBlueAttributeGroup"/> <xsd:sequence> <xsd:element name="name" type="hs:localizableString"/> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="error" type="xsd:string" > <xsd:annotation> <xsd:documentation> TODO: per-user error information. </xsd:documentation> </xsd:annotation> </xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:sequence> <xsd:attributeGroup ref="hs:standardResponseAttributeGroup"/> </xsd:complexType> </xsd:element> --> <!--
// Domain specific methods // getFreeBusyDays Request -->
<xsd:annotation>
</xsd:element>
<xsd:documentation>
</xsd:annotation>
This function returns a stream of xml fragments defining the user's
</xsd:documentation>
freeBusy information between two dates. Single events and recurring events within the time window are translated into blocks of free/busy time. <br/>
<b>getFreeBusyDays</b>
only returns the blocks and their
associated type. There is no explicit method to return unmerged freeBusy info, that kind of behavior is fully contained within getCalendarDays. <br/>
This method follows the precedence order:
<ul>
<li>Away(OOF), Busy, Tentative, Free</li>
</ul>
<li>
Overlapping blocks of the same freeOrBusyStatus kind
</li>
are coalesced to form larger blocks. <li>
Overlapping blocks of different freeOrBusyStatus are
</li>
overlaid. The events with higher precedence overlay on top ( <b>not</b>
by starting time).
<br/>
For example:
<li>Busy from 8 to 9</li>
<li>Tentative from 8:30 to 10</li>
<li>OOF from 9:30 to 11</li>
<li>Free from 10:30 to 12</li>
<br/>
Merged as:
<li>Busy from 8 to 9</li>
<li>Tentative from 9 to 9:30</li>
<li>OOF from 9:30 to 11</li>
<li>Free from 11 to 12</li>
<br/>
Multiple users' freeBusy information are retrieved
by specifying a puid for each user in question. The caller of this function must also specify their own puid, no implicit assumptions are made. <br/>
The calling method takes a startDate and an endDate to
define the duration over which freebusy information is returned. A third parameter determines if free blocks are explicitly returned. Free blocks are intervals where no calendar object exists. <br/>
<b>getFreeBusyDays</b>
may be used to retrieve multiple calendar data from
other users using <li><h:key instance="0" cluster="0" puid="xyz"/></li>
in the SOAP headers provided that puid "xyz" is provisioned on the .NET Calendar
server, and provided that the user has been granted access in puid "xyz"'s rolelist.
<xsd:complexContent>
</xsd:complexType>
<xsd:extension base="domainStandardMethodParametersType">
</xsd:complexContent>
<xsd:sequence>
</xsd:extension>
<xsd:element maxOccurs="1" minOccurs="0" name="getFreeBlocks" type="xsd:boolean">
</xsd:sequence>
<xsd:annotation>
</xsd:element>
<xsd:documentation>
</xsd:annotation>
This boolean causes .NET Calendar to explicitly return
</xsd:documentation>
free time as freeBusy blocks. By default, free blocks are not returned.
<xsd:annotation>
</xsd:element>
<xsd:documentation>
</xsd:annotation>
This boolean causes .NET Calendar not to coalesce/merge freeBusy information.
</xsd:documentation>
By default, freeBusy information is merged.
<xsd:annotation>
</xsd:element>
<xsd:documentation>
</xsd:annotation>
Response XML blob format, consists of freebusy xml fragments.
</xsd:documentation>
<xsd:sequence>
</xsd:complexType>
<xsd:element maxOccurs="unbounded" minOccurs="0" name="freeOrBusyEvent" type="freeOrBusyEventType"/>
</xsd:sequence>
<!--
// Domain specific methods // sendMeeting Request -->
<xsd:annotation>
</xsd:element>
<xsd:documentation>
</xsd:annotation>
The purpose of this method is for a meeting organizer to invite and uninvite
</xsd:documentation>
(cancel) attendees to this event. sendMeeting also sends updated invitations to existing invitees. Inviting a user to a single instance of a recurring event will cause only that instance to be sent. However, future updates to that event will overwrite the existing instance, including the case where an update is the full recurring event. <br/>
Meeting requests will be sent out as iCal attachments from an SMTP server
unknown at this point in the design. <br/>
When inviting or uninviting, .NET Calendar searches for these existing
attendees by puid first, and then by email address such that the puid receives precedence in the search predication. .NET Calendar will not allow multiple meeting requests/cancellations to the same puid or email address within the scope of the same invite or uninvite block. However, an organizer may uninvite an attendee and then reinvite again (non-standard behavior).
<xsd:attribute name="eventId" type="hs:idRefType" use="required">
</xsd:complexType>
<xsd:annotation>
</xsd:attribute>
<xsd:documentation>
</xsd:annotation>
This is the puid of the event which to send meeting invitations
</xsd:documentation>
or cancellations to. This event must already exist within the .NET Calendar service. Additional server constraints are implemented which verify that potential updates to the attendee tables occur for this event only. This is a required field.
<xsd:annotation>
</xsd:attribute>
<xsd:documentation>
</xsd:annotation>
When this attribute is set to "true", <lastUpdateTime> is
</xsd:documentation>
updated when invitations are sent to the attendees. If "false", <lastUpdateTime> remains untouched.
<xsd:annotation>
</xsd:attribute>
<xsd:documentation>
</xsd:annotation>
The optional recurrenceId allows the meeting organizer to send
</xsd:documentation>
invitations for only a particular instance of a recurring event. If the event is not a recurring event, or if recurrenceId does not correspond to a valid instance/exception, sendMeetingRequest will fail with an error.
<xsd:annotation>
</xsd:attribute>
<xsd:documentation>
</xsd:annotation>
Specifies to .NET Calendar to continue performing the
</xsd:documentation>
sendMeetingRequest even on a failure. Points of failure: <li>
<uninvite> may delete attendees, and the HSDL delete may encounter errors
</li>
<li><updateRequest> may encounter HSDL errors.</li>
<li>
The optional final delete of the event may encounter errors.
</li>
<xsd:annotation>
</xsd:attribute>
<xsd:documentation>
</xsd:annotation>
This event will be deleted upon completion of this sendMeetingRequest.
</xsd:documentation>
This behavior is intended for deleting a meeting and sending cancellations. If recurrenceId is present (and valid), <b>
only this particular recurring
</b>
instance or exception is deleted , in which case a new
<deletedExceptionDate> is added to the recurrence rule. <xsd:sequence>
<xsd:element name="uninvite">
</xsd:sequence>
<xsd:complexType>
</xsd:element>
<xsd:attribute name="behavior" type="sendMeetingBehaviorEnum" use="optional">
</xsd:complexType>
<xsd:annotation>
</xsd:attribute>
<xsd:documentation>
</xsd:annotation>
This attribute will give the option to either choose to send
</xsd:documentation>
cancellations to "all" attendees in the event's attendee table, or send to "none" of them. A third value of "default" would give the default behavior of sending cancellations to all attendees who are replaced in the <replaceRequest> block. When this attribute is set, .NET Calendar will ignore anything within the <uninvite> node. <xsd:sequence>
<xsd:element maxOccurs="unbounded" minOccurs="0" name="attendee" type="uninviteAttendeeType">
</xsd:sequence>
<xsd:annotation>
</xsd:element>
<xsd:documentation>
</xsd:annotation>
Contains a list of people to uninvite. Uninvited attendees must already exist
</xsd:documentation>
in the organizer's attendee table, or else these users are ignored.
<xsd:annotation>
</xsd:element>
<xsd:documentation>
</xsd:annotation>
This replace request can only affect the meeting invitation in question, and is
</xsd:documentation>
thus constrained to be only @select="/m:myCalendar/m:event[@id=@eventId]/...". It will not be allowed to replace-on-null so that event creation cannot be a side-effect.
<xsd:complexType>
</xsd:element>
<xsd:attribute name="behavior" type="sendMeetingBehaviorEnum" use="optional">
</xsd:complexType>
<xsd:annotation>
</xsd:attribute>
<xsd:documentation>
</xsd:annotation>
This attribute will give the option to either choose to send
</xsd:documentation>
invitations to "all" attendees in the event's attendee table, or send to "none" of them. A third value of "default" would give the default behavior of sending invitations to only the new attendees in the <replaceRequest> block. When this attribute is set, .NET Calendar will ignore anything within the <invite> node. <xsd:sequence>
<xsd:element maxOccurs="unbounded" minOccurs="0" name="attendee" type="hs:userReference">
</xsd:sequence>
<xsd:annotation>
</xsd:element>
<xsd:documentation>
</xsd:annotation>
Contains information about this attendee to be invited. An invited
</xsd:documentation>
attendee must already exist in the organizer's attendee table. This attendee may originally be there prior to the sendMeetingRequest method, or be the result of the update operation to this meeting. <br/>
To change the attendee's inviteType, the update operation should
be used. <br/>
When invitations are sent, the attendee's <responseTime>
is set to the current time (now) as a side-effect. <!--
// Domain specific methods // respond Request -->
<xsd:annotation>
</xsd:element>
<xsd:documentation>
</xsd:annotation>
The purpose of this method is for a meeting invitee to respond to an
</xsd:documentation>
invitation. Invitees may accept, decline, accept tentatively, or counterpropose in some means. Currently, we allow the counterproposing of time and location, but we may consider future additions.
<xsd:complexContent>
</xsd:complexType>
<xsd:extension base="attendeeResponseType">
</xsd:complexContent>
<xsd:sequence>
</xsd:extension>
<xsd:element name="eventId" type="hs:idRefType">
</xsd:sequence>
<xsd:annotation>
</xsd:annotation>
</xsd:element>
</xsd:element>
<!--
// Domain specific methods // setReminder Request -->
<xsd:annotation>
</xsd:element>
<xsd:documentation>
</xsd:annotation>
This function is used to update the status of a reminder once the
</xsd:documentation>
user has received the notification. We may expose this as an HTTP API so that non-.NET My Services clients have a means to dismiss, snooze, or be reminded again at a different time. (WIP)
<xsd:sequence>
</xsd:sequence>
</xsd:complexType>
<xsd:annotation>
</xsd:element>
<xsd:documentation>
</xsd:annotation>
Response XML blob format, contains the myAlerts hs:idType
</xsd:documentation>
for the resultant create/modify operation.
<xsd:sequence>
</xsd:sequence>
</xsd:complexType>
<!--
// Domain specific methods // deleteReminder Request -->
<xsd:annotation>
</xsd:element>
<xsd:documentation>
</xsd:annotation>
This function delegates a call to .NET Alerts to delete
</xsd:documentation>
an existing meeting reminder. .NET Calendar acts as a client to the Notification Service. In the underlying implementation, setReminderRequest simply issues a .NET My Services delete message.
<xsd:sequence>
</xsd:sequence>
</xsd:complexType>
<!--
// Domain specific methods // getQuickView Request -->
<xsd:annotation>
</xsd:element>
<xsd:documentation>
</xsd:annotation>
This function provides an efficient, lightweight means to query a
</xsd:documentation>
date range to indicate days that have 1 or more appointments (1) and days without appointments (0). Outlook and OWA use this for their datepicker functionality. <br/>
<br/>
The date range takes timeZone-specific start and end
times, using just the year, month, and day. The time zone can be a simple bias, since this is merely a request for data. startTime and endTime are required to have the same time-zone bias. In effect, the method "overlays" the incoming time zone onto the user's calendar to define the dayblocks for which the QuickView returns data.
<xsd:complexContent>
</xsd:complexType>
<xsd:extension base="domainStandardMethodParametersType">
</xsd:complexContent>
<xsd:sequence>
</xsd:extension>
<xsd:element maxOccurs="1" minOccurs="0" name="tzid" type="tzidEnum">
</xsd:sequence>
<xsd:annotation>
</xsd:element>
<xsd:documentation>
</xsd:annotation>
Optionally specifies a timezone to retrieve the quickView in. If this or biasOffset are
</xsd:documentation>
both missing, TZ_UTC is assumed.
<xsd:annotation>
</xsd:element>
<xsd:documentation>
</xsd:annotation>
Optionally specifies a numeric
</xsd:documentation>
<b>integer</b>
offset timezone bias to retrieve the quickView in.
tzid takes precedence over biasOffset (pending xsd:choice).
<xsd:annotation>
</xsd:element>
<xsd:documentation>
</xsd:annotation>
The return value of getQuickView is a list of calendar days
</xsd:documentation>
grouped into months.
<xsd:sequence>
</xsd:complexType>
<xsd:element maxOccurs="unbounded" minOccurs="1" name="month">
</xsd:sequence>
<xsd:annotation>
</xsd:element>
<xsd:documentation>
</xsd:annotation>
Specifies the month block for the grouping of calendar days.
</xsd:documentation>
<xsd:sequence>
</xsd:complexType>
<xsd:element maxOccurs="31" minOccurs="1" name="day">
</xsd:sequence>
<xsd:annotation>
</xsd:element>
<xsd:documentation>
</xsd:annotation>
Specifies whether this day is free (0) or has at least one event
</xsd:documentation>
on it or overlapping (1).
<xsd:simpleContent>
</xsd:complexType>
<xsd:extension base="xsd:boolean">
</xsd:extension>
</xsd:simpleContent>
<!-- ...............................................................................................................-->
<!--
<xsd:complexType name="CalendarPrefType"> <xsd:annotation> <xsd:documentation> Stores the user's global calendar preferences (myCalendar/*) or a meeting organizer's preferences (myCalendar/event/recurrence/*). The latter case will override the user's global preferences and is used only for an invitation event that recurs. </xsd:documentation> </xsd:annotation> <xsd:sequence> </xsd:element> </xsd:sequence> </xsd:complexType> -->
<xsd:annotation>
</xsd:complexType>
<xsd:documentation>
</xsd:annotation>
Contains the full (extended) structural definition of the timezone.
</xsd:documentation>
<xsd:sequence>
<xsd:element name="tzid" type="tzidEnum"/>
</xsd:sequence>
<!--
<xsd:element name="name" type="hs:localizableString" > <xsd:annotation> <xsd:documentation> The current name of this time zone. Time zones currently in the daylight period will switch names to daylightName. This property is read only, except for id is <b>USER_DEFINED</b>. </xsd:documentation> </xsd:annotation> </xsd:element> -->
<xsd:annotation>
</xsd:element>
<xsd:documentation>
</xsd:annotation>
Specifies the current bias, in minutes, for local time translation.
</xsd:documentation>
The bias is the difference, in minutes, between Coordinated Universal Time (UTC) and local time. All translations between UTC and local time are based on the following formula: <PRE>UTC = local time + bias</PRE>
This property is read only, except for id is
<b>USER_DEFINED</b>
.
<!--
<xsd:element name="daylightName" type="hs:localizableString" minOccurs="0" maxOccurs="1" > <xsd:annotation> <xsd:documentation> [Optional] Specifies the name of the timeZone during daylight periods. </xsd:documentation> </xsd:annotation> </xsd:element> -->
<xsd:annotation>
</xsd:element>
<xsd:documentation>
</xsd:annotation>
[Optional] Specifies an additional bias value to be added to standardBias
</xsd:documentation>
used during local time translations that occur during daylight saving time. In most time zones, the value of this member is minus 60.
<xsd:annotation>
</xsd:element>
<xsd:documentation>
</xsd:annotation>
This fragment describes the standard date to daylight date transition
</xsd:documentation>
using the RepeatYearlyByDay recurrence rule.
<xsd:sequence>
</xsd:complexType>
<xsd:element name="transitionRule" type="transitionRuleType">
</xsd:sequence>
<xsd:annotation>
</xsd:element>
<xsd:documentation>
</xsd:annotation>
Specifies a date and local time when the transition from
</xsd:documentation>
standard time to daylight time occurs.
<xsd:annotation>
</xsd:element>
<xsd:documentation>
</xsd:annotation>
Specifies the local time (e.g. 2am) to transition from standard
</xsd:documentation>
to daylight.
<xsd:annotation>
</xsd:element>
<xsd:documentation>
</xsd:annotation>
This fragment describes the daylight date to standard date transition
</xsd:documentation>
using the RepeatYearlyByDay recurrence rule.
<xsd:sequence>
</xsd:complexType>
<xsd:element name="transitionRule" type="transitionRuleType">
</xsd:sequence>
<xsd:annotation>
</xsd:element>
<xsd:documentation>
</xsd:annotation>
Specifies a date and local time when the transition from daylight
</xsd:documentation>
saving time to standard time occurs.
<xsd:annotation>
</xsd:element>
<xsd:documentation>
</xsd:annotation>
Specifies the local time (e.g. 2am) to transition from daylight
</xsd:documentation>
to standard.
<xsd:restriction base="xsd:string">
</xsd:simpleType>
<xsd:enumeration value="free"/>
</xsd:restriction>
<xsd:enumeration value="busy"/>
<xsd:enumeration value="tentative"/>
<xsd:enumeration value="away"/>
<xsd:annotation>
</xsd:complexType>
<xsd:documentation>
</xsd:annotation>
The scheme the message contents were encoded in. Examples of this are '7bit', '8bit' and 'base64'.
</xsd:documentation>
<xsd:sequence>
<xsd:element name="name" type="hs:localizableString">
</xsd:sequence>
<xsd:annotation>
</xsd:element>
<xsd:documentation>
</xsd:annotation>
This element contains information about an individual attachment in a mail message.
</xsd:documentation>
<!-- TODO: perhaps this should be an enumeration -->
<!-- TODO: factor this out to a simpleType -->
<xsd:annotation>
</xsd:annotation>
</xsd:element>
<!-- TODO: validate this with a regex -->
<xsd:annotation>
</xsd:element>
<xsd:documentation>
</xsd:annotation>
This element contains the encoding of the attachment. This information is necessary
</xsd:documentation>
for decoding the attachment. <!-- TODO: perhaps this should be an enumeration -->
<!-- TODO: factor this out into a simpleType -->
<xsd:annotation>
</xsd:annotation>
</xsd:element>
<xsd:annotation>
</xsd:element>
<xsd:documentation>
</xsd:annotation>
This element contains the MIME body of the attachment.
</xsd:documentation>
<xdb:system type="calculatedFieldLateBound"/>
</xsd:appinfo>
<xsd:annotation>
</xsd:annotation>
</xsd:simpleType>
<xsd:restriction base="xsd:string"/>
<xsd:annotation>
</xsd:simpleType>
<xsd:documentation>
</xsd:annotation>
The system define unique id of an attachment on a given message.
</xsd:documentation>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="128"/>
</xsd:restriction>
<xsd:restriction base="xsd:string">
</xsd:simpleType>
<xsd:enumeration value="single"/>
</xsd:restriction>
<xsd:enumeration value="recurring-master"/>
<xsd:enumeration value="recurring-instance"/>
<xsd:enumeration value="recurring-exception"/>
<xsd:restriction base="xsd:string">
</xsd:simpleType>
<xsd:enumeration value="su"/>
</xsd:restriction>
<xsd:enumeration value="mo"/>
<xsd:enumeration value="tu"/>
<xsd:enumeration value="we"/>
<xsd:enumeration value="th"/>
<xsd:enumeration value="fr"/>
<xsd:enumeration value="sa"/>
<xsd:annotation>
</xsd:simpleType>
<xsd:documentation>
</xsd:annotation>
Specifies which week in a month [first, second, third, fourth, last].
</xsd:documentation>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="first"/>
</xsd:restriction>
<xsd:enumeration value="second"/>
<xsd:enumeration value="third"/>
<xsd:enumeration value="fourth"/>
<xsd:enumeration value="last"/>
<xsd:annotation>
</xsd:complexType>
<xsd:documentation>
</xsd:annotation>
This element's attributes contain whether a given day is or is not considered
</xsd:documentation>
by the user as part of the work week. If this element has no attributes, we will assume that the user has a Monday to Friday work week.
<xsd:restriction base="xsd:string">
</xsd:simpleType>
<xsd:enumeration value="day"/>
</xsd:restriction>
<xsd:enumeration value="weekday"/>
<xsd:enumeration value="weekend day"/>
<xsd:enumeration value="su"/>
<xsd:enumeration value="mo"/>
<xsd:enumeration value="tu"/>
<xsd:enumeration value="we"/>
<xsd:enumeration value="th"/>
<xsd:enumeration value="fr"/>
<xsd:enumeration value="sa"/>
<xsd:restriction base="xsd:int">
</xsd:simpleType>
<xsd:minInclusive value="1"/>
</xsd:restriction>
<xsd:maxInclusive value="31"/>
<xsd:annotation>
</xsd:annotation>
</xsd:simpleType>
<xsd:restriction base="xsd:int">
<xsd:minInclusive value="1"/>
</xsd:restriction>
<xsd:maxInclusive value="13"/>
<!--
TODO: consider xsd:union? <xsd:element name='size'> <xsd:simpleType> <xsd:union> <xsd:simpleType> <xsd:restriction base='integer'/> </xsd:simpleType> <xsd:simpleType> <xsd:restriction base='string'/> </xsd:simpleType> </xsd:union> </xsd:simpleType> </xsd:element> <size>1</size> <size>large</size> <size xsi:type='xsd:string'>1</size> <xsd:restriction base="xsd:string"> <xsd:enumeration value="Jan"></xsd:enumeration> <xsd:enumeration value="Feb"></xsd:enumeration> <xsd:enumeration value="Mar"></xsd:enumeration> <xsd:enumeration value="Apr"></xsd:enumeration> <xsd:enumeration value="May"></xsd:enumeration> <xsd:enumeration value="Jun"></xsd:enumeration> <xsd:enumeration value="Jul"></xsd:enumeration> <xsd:enumeration value="Aug"></xsd:enumeration> <xsd:enumeration value="Sep"></xsd:enumeration> <xsd:enumeration value="Oct"></xsd:enumeration> <xsd:enumeration value="Nov"></xsd:enumeration> <xsd:enumeration value="Dec"></xsd:enumeration> </xsd:restriction> -->
<xsd:annotation>
</xsd:simpleType>
<xsd:documentation>
</xsd:annotation>
This is a .NET My Services specific integer enumeration defining
</xsd:documentation>
the exact supported time zone. If id is <b>USER_DEFINED = -1</b>
,
then this time zone's schema defines the entire time zone rule, including any applicable daylight bias. <b>
.NET My Services
</b>
clients are expected to understand the base set of enumerations. .NET Calendar as a service will provide the enumerations and the additional metadata necessary to fully describe the time zone, including daylight calculations. .NET Calendar will not provide localizable names for the enumerations. <xsd:restriction base="xsd:int">
<xsd:minInclusive value="-1"/>
</xsd:restriction>
<!--
<xsd:union> <xsd:simpleType> <xsd:restriction base="xsd:int"> </xsd:simpleType> <xsd:simpleType> <xsd:restriction base='string'> <xsd:enumeration value="USER_DEFINED"/> </xsd:restriction> </xsd:simpleType> </xsd:union> -->
<xsd:restriction base="xsd:int">
</xsd:simpleType>
<xsd:minInclusive value="-3"/>
</xsd:restriction>
<xsd:maxInclusive value="3"/>
<xsd:restriction base="xsd:string">
</xsd:simpleType>
<xsd:enumeration value="normal"/>
</xsd:restriction>
<xsd:enumeration value="personal"/>
<xsd:enumeration value="private"/>
<xsd:enumeration value="confidential"/>
<xsd:annotation>
</xsd:simpleType>
<xsd:documentation>
</xsd:annotation>
This field identifies an enumeration which determines the kind
</xsd:documentation>
of calendar event this is. <b>
.NET My Services v1 will only support HSCAL_GREGORIAN_US.
</b>
<br/>
<a href="http://msdn.microsoft.com/library/psdk/winbase/nls_9bg8.htm">
http://msdn.microsoft.com/library/psdk/winbase/nls_9bg8.htm
</a>
plus several others:
<br/>
<br/>
<table border="1" cellpadding="1" cellspacing="1">
<tr>
</table>
<td align="center">
</tr>
<b>Value</b>
</td>
<td align="center">
<b>Enumeration Constant</b>
</td>
<td align="center">
<b>Description</b>
</td>
<tr>
<td>-1</td>
</tr>
<td>HSCAL_ALL_CALENDARS</td>
<td>
Unknown Calendar; system default (HSCAL_GREGORIAN_US)
</td>
<tr>
<td>1</td>
</tr>
<td>HSCAL_GREGORIAN</td>
<td>Gregorian (localized) calendar</td>
<tr>
<td>2</td>
</tr>
<td>HSCAL_GREGORIAN_US</td>
<td>Gregorian (U.S.) calendar</td>
<tr>
<td>3</td>
</tr>
<td>HSCAL_JAPAN</td>
<td>Japanese Emperor Era calendar</td>
<tr>
<td>4</td>
</tr>
<td>HSCAL_TAIWAN</td>
<td>Taiwan Era calendar</td>
<tr>
<td>5</td>
</tr>
<td>HSCAL_KOREA</td>
<td>Korean Tangun Era calendar</td>
<tr>
<td>6</td>
</tr>
<td>HSCAL_HIJRI</td>
<td>Hijri (Arabic Lunar) calendar</td>
<tr>
<td>7</td>
</tr>
<td>HSCAL_THAI</td>
<td>Thai calendar</td>
<tr>
<td>8</td>
</tr>
<td>HSCAL_HEBREW</td>
<td>Hebrew (Lunar) calendar</td>
<tr>
<td>9</td>
</tr>
<td>HSCAL_GREGORIAN_ME_FRENCH</td>
<td>Gregorian Middle East French calendar</td>
<tr>
<td>10</td>
</tr>
<td>HSCAL_GREGORIAN_ARABIC</td>
<td>Gregorian Arabic calendar</td>
<tr>
<td>11</td>
</tr>
<td>HSCAL_GREGORIAN_XLIT_ENGLISH</td>
<td>Gregorian Transliterated English calendar</td>
<tr>
<td>12</td>
</tr>
<td>HSCAL_GREGORIAN_XLIT_FRENCH</td>
<td>Gregorian Transliterated French calendar</td>
<tr>
<td>13</td>
</tr>
<td>HSCAL_KOREA_LUNAR</td>
<td>Default Korea Lunar calendar</td>
<tr>
<td>14</td>
</tr>
<td>HSCAL_JAPAN_LUNAR</td>
<td>Default Japanese Lunar calendar</td>
<tr>
<td>15</td>
</tr>
<td>HSCAL_CHINESE_LUNAR</td>
<td>Chinese Lunar calendar</td>
<tr>
<td>16</td>
</tr>
<td>HSCAL_SAKA</td>
<td>Indian Saka calendar</td>
<tr>
<td>17</td>
</tr>
<td>HSCAL_LUNAR_ETO_CHN</td>
<td>Chinese Zodiac calendar</td>
<tr>
<td>18</td>
</tr>
<td>HSCAL_LUNAR_ETO_KOR</td>
<td>Korean Zodiac calendar</td>
<tr>
<td>19</td>
</tr>
<td>HSCAL_LUNAR_ROKUYOU</td>
<td>Japanese Lucky days calendar</td>
<xsd:restriction base="xsd:string">
<!--
</xsd:restriction>
<xsd:minInclusive value="-1"/> <xsd:maxInclusive value="19"/> --> <xsd:enumeration value="-1"/>
<xsd:enumeration value="1"/>
<xsd:enumeration value="2"/>
<xsd:enumeration value="3"/>
<xsd:enumeration value="4"/>
<xsd:enumeration value="5"/>
<xsd:enumeration value="6"/>
<xsd:enumeration value="7"/>
<xsd:enumeration value="8"/>
<xsd:enumeration value="9"/>
<xsd:enumeration value="10"/>
<xsd:enumeration value="11"/>
<xsd:enumeration value="12"/>
<xsd:enumeration value="13"/>
<xsd:enumeration value="14"/>
<xsd:enumeration value="15"/>
<xsd:enumeration value="16"/>
<xsd:enumeration value="17"/>
<xsd:enumeration value="18"/>
<xsd:enumeration value="19"/>
<xsd:complexContent>
</xsd:complexContent>
</xsd:complexType>
</xsd:complexType>
<xsd:complexContent>
</xsd:complexContent>
</xsd:complexType>
<xsd:sequence>
</xsd:complexType>
<xsd:element name="body" type="bodyType"/>
</xsd:sequence>
<xsd:element maxOccurs="1" minOccurs="0" name="attendeeEventExtra" type="attendeeEventExtraBlueType"/>
<xsd:element maxOccurs="unbounded" minOccurs="0" name="attachment" type="attachmentMetadataBlueType">
<xsd:annotation>
</xsd:element>
<xsd:documentation>
</xsd:annotation>
This element contains attachment metadata, name, content-type and id's, and
</xsd:documentation>
may also contain the attachmentBody.
<xsd:annotation>
</xsd:element>
<xsd:documentation>
</xsd:annotation>
A user may optionally define a reminder for this appointment. Reminders
</xsd:documentation>
for recurring appointments will be sent periodically before the appointment as per the rules defined in the reminder subschema. A non-recurring event may have the following: <li>Define no reminders</li>
<li>Define a reminder with <set> = "true"</li>
<li>
Define a reminder with <set> = "false" (
</li>
<b>useless</b>
)
<br/>
A recurring meeting may have any of the following:
<li>Define no reminders</li>
<li>
Define a recurring reminder with all instances receiving reminders
</li>
<li>
To define no reminders by default, but to define reminders for particular
</li>
meeting instances in the exception body: Create a reminder <set> = "false", and turn it on and/or modify it for particular instances. <li>
To define a recurring reminder, but turn it off for particular meeting instances: Create a
</li>
reminder <set> = "true", and turn it off for particular instances. <br/>
If the event's reminder subschema is non-existent, yet the exception body has a reminder blob,
then the exception reminder is ignored. The alternative is to require 1..1. <!--
<xsd:annotation> <xsd:documentation> A user may optionally define 1 to 4 reminders for this event for each device type. Reminders are hosted on .NET Calendar, but they use .NET Alerts as a gateway to deliver the actual notification. Client-support for reminders is also included in the base schema. The user may define any or all of the four kinds of reminders: <br/><br/> <table cellpadding="1" cellspacing="1" border="1"> <tr> <td align="center"><b>Value</b></td> <td align="center"><b>Description</b></td> </tr> <tr> <td>client</td> <td>Client performs the reminder</td> </tr> <tr> <td>email</td> <td>.NET Calendar sends an email to the specified address (via??)</td> </tr> <tr> <td>messenger</td> <td>.NET Calendar sends a messenger alert to the user (via .NET Alerts)</td> </tr> <tr> <td>mobile</td> <td>.NET Calendar sends a mobile alert to the user (via .NET Alerts)</td> </tr> </table> </xsd:documentation> </xsd:annotation> -->
<xsd:annotation>
</xsd:attribute>
<xsd:documentation>
</xsd:annotation>
Required for Hijri calendar support. @advanceHijriValue ranges from
</xsd:documentation>
{-3,-2,-1,1,2,3} and is added to the current date, but the day of the week stays the same. For example, if today is the 24th and @advanceHijriValue is set to be +2, then the user sees the date as being the 26th. Typically @advanceHijriValue is +/-1, and this suffices in most cases. Theoretically it can be any number, but the worst case scenario is +/-3. <!--
<xsd:complexType name="windowStartType"> <xsd:simpleContent> <xsd:extension base="xsd:dateTime"> <xsd:attribute name="isLeapYear" type="xsd:boolean" > <xsd:annotation> <xsd:documentation> International calendar support is used to save some information about the year in which the recurrence was created. </xsd:documentation> </xsd:annotation> </xsd:attribute> <xsd:attribute name="leapMonthValue" type="monthValueEnum" > <xsd:annotation> <xsd:documentation> International calendar support is used to save some information about the year in which the recurrence was created. </xsd:documentation> </xsd:annotation> </xsd:attribute> </xsd:extension> </xsd:simpleContent> </xsd:complexType> <xsd:complexType name="windowEndType"> <xsd:simpleContent> <xsd:extension base="xsd:dateTime"> <xsd:attribute name="repeatForever" type="xsd:boolean" > <xsd:annotation> <xsd:documentation> Overrides the windowEnd date and specifies that this recurrence repeats forever. Client implementations cannot depend on date values repeating forever, like 23:59:59pm Dec 31, 9999 or 23:59 Aug 31, 4500. </xsd:documentation> </xsd:annotation> </xsd:attribute> <xsd:attribute name="repeatInstances" type="xsd:int" > <xsd:annotation> <xsd:documentation> Overrides the windowEnd date and specifies that this recurrence repeats for the specified number of instances. repeatInstances and repeatForever are mutually exclusive, but repeatInstances will override repeatForever for errant schemas. </xsd:documentation> </xsd:annotation> </xsd:attribute> </xsd:extension> </xsd:simpleContent> </xsd:complexType> -->
<xsd:complexContent>
</xsd:complexType>
<xsd:extension base="hs:userReference">
</xsd:complexContent>
<xsd:attribute name="deleteAttendee" type="xsd:boolean">
</xsd:extension>
<xsd:annotation>
</xsd:attribute>
<xsd:documentation>
</xsd:annotation>
Optionally specifies whether or not to delete this attendee
</xsd:documentation>
from the organizer's attendee table. If the attendee is not deleted, .NET Calendar will not know the status of this attendee because the status {not-sent, sent, cancelled} is not stored per-attendee.
<xsd:restriction base="xsd:string">
</xsd:simpleType>
<xsd:enumeration value="all"/>
</xsd:restriction>
<xsd:enumeration value="none"/>
<xsd:enumeration value="default"/>
</xsd:schema>
|