<p>This will be the first, in a series (hopefully), of specifications which will define how to utilize GroupWare over jabber. While GroupWare is extremely broad subject, this document will focus on iCal<note>iCalendar <linkurl='http://www.ietf.org/html.charters/calsch-charter.html'>http://www.ietf.org/html.charters/calsch-charter.html</link></note>. Since iCal is a defined standard which is transport-agnostic, all this document will do is define how iCal will be transported over Jabber.</p>
<p>Before sending iCal messages to a jabber entity, a disco query should be performed in order to discover whether or not that entity supports iCal Envelopes.</p>
<p>To send iCal, all that needs to be done is wrap the iCal data in a ical element. All iCal data sent MUST be in the ical element in the http://jabber.org/protocol/gw/ical namespace. The CDATA section is optional and is used here simply to make it readable.</p>
<p>Other than wrapping iCal in XML, the data itself MUST follow the ietf 2445 RFC<note>2445 RFC <linkurl='http://www.ietf.org/rfc/rfc2445.txt'>http://www.ietf.org/rfc/rfc2445.txt</link></note></p>
<p>As a convenience for users which do not have ical support the sender may want to place human readable information in the <body/> for the receiver to read.</p>
</section1>
<section1topic='Receiving iCal Data'>
<p> When a client receives a message containing iCal data there are a few options which are considered reasonable.</p>
<ul>
<li>Ignore the message</li>
<li>Display the ical data in the message</li>
<li>Hand the ical data off to the user's calendaring application</li>
</ul>
<p>Per the jabber standard, any message received which the entity does not understand CAN be ignored. This behavior is expected of clients which have not implemenred this jep.</p>
<p>The entity may display the ical data as text to the user, this is not recommended for obvious reasons. However, some data is better than no data, so this is considered preferable to just dropping the message stanza.</p>
<p>Most users today have some form of calendaring functionality available to them which supports the iCal standard. Simply redirecting the received ical to the user's preferred calendaring application would be the ideal scenario.</p>