<?xml version="1.0" encoding="UTF-8" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
           xmlns:tns="http://webservices.groove.net/Groove/1.0/Calendar/" 
           xmlns:c="http://webservices.groove.net/Groove/1.0/Core/" 
           xmlns:e="http://webservices.groove.net/Groove/1.0/Events/" 
           targetNamespace="http://webservices.groove.net/Groove/1.0/Calendar/" 
           elementFormDefault="qualified" 
           version="1.0">

   <xs:complexType name="CalendarEntry">
      <xs:sequence>
         <xs:element name="ID" type="xs:string" />
         <xs:element name="URI" type="xs:anyURI" />
         <xs:element name="CreatedBy" type="xs:anyURI" />
         <xs:element name="ModifiedBy" type="xs:anyURI" />
         <xs:element name="Created" type="xs:dateTime" />
         <xs:element name="Modified" type="xs:dateTime" />
         <xs:element name="Unread" type="xs:boolean"/>
         <xs:element name="Description" type="xs:string" />
         <xs:element name="Category" type="xs:string" />
         <xs:element name="Details" type="xs:string" />
         <xs:element name="Start" type="xs:dateTime" />
         <xs:element name="End" type="xs:dateTime" />
         <xs:element name="AllDay" type="xs:boolean" />
      </xs:sequence>
   </xs:complexType>

   <xs:complexType name="CalendarEntryList">
      <xs:sequence>
         <xs:element name="CalendarEntry" type="tns:CalendarEntry" minOccurs="0" maxOccurs="unbounded" />
      </xs:sequence>
   </xs:complexType>

   <xs:complexType name="CalendarAddEventData">
      <xs:complexContent>
         <xs:extension base="e:EventData">
            <xs:sequence>
               <xs:element name="CalendarEntries" type="tns:CalendarEntryList" />
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>

   <xs:complexType name="CalendarUpdateEventData">
      <xs:complexContent>
         <xs:extension base="e:EventData">
            <xs:sequence>
               <xs:element name="CalendarEntries" type="tns:CalendarEntryList" />
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>

   <xs:complexType name="CalendarDeleteEventData">
      <xs:complexContent>
         <xs:extension base="e:EventData">
            <xs:sequence>
               <xs:element name="CalendarIDs" type="c:IDList" />
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>

	<xs:element name="Create">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="CalendarEntry" type="tns:CalendarEntry" />
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="CreateResponse">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="CreateResult" type="xs:anyURI" />
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	
   <xs:element name="Read">
		<xs:complexType />
	</xs:element>
	
   <xs:element name="ReadResponse">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="ReadResult" type="tns:CalendarEntryList" />
			</xs:sequence>
		</xs:complexType>
	</xs:element>

   <xs:element name="ReadEntry">
		<xs:complexType />
	</xs:element>
	
   <xs:element name="ReadEntryResponse">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="ReadEntryResult" type="tns:CalendarEntry" />
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="UpdateEntry">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="CalendarEntry" type="tns:CalendarEntry" />
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="UpdateEntryResponse">
		<xs:complexType />
	</xs:element>

	<xs:element name="DeleteEntry">
		<xs:complexType />
	</xs:element>

	<xs:element name="DeleteEntryResponse">
		<xs:complexType />
	</xs:element>

</xs:schema>