Network Working Group September 29, 2006
Internet-Draft
Intended status: Standards Track
Expires: April 2, 2007
CalAtom
draft-yates-atompub-calatom-00.txt
Status of this Memo
By submitting this Internet-Draft, each author represents that any
applicable patent or other IPR claims of which he or she is aware
have been or will be disclosed, and any of which he or she becomes
aware will be disclosed, in accordance with Section 6 of BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet-
Drafts.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html.
This Internet-Draft will expire on April 2, 2007.
Copyright Notice
Copyright (C) The Internet Society (2006).
Abstract
CalAtom provides a remote api for calendars. It utilizes the Atom
Publishing Protocol and xcal.
Expires April 2, 2007 [Page 1]
Internet-Draft CalAtom September 2006
Table of Contents
1. Requirements notation . . . . . . . . . . . . . . . . . . . . 3
2. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
3. CalAtom Collections . . . . . . . . . . . . . . . . . . . . . 3
4. Service Document in CalAtom . . . . . . . . . . . . . . . . . 3
4.1. Example . . . . . . . . . . . . . . . . . . . . . . . . . 4
4.2. Element Definitions . . . . . . . . . . . . . . . . . . . 4
4.2.1. The "f:feature" Element . . . . . . . . . . . . . . . 5
4.2.2. The "f:url" Element . . . . . . . . . . . . . . . . . 6
5. Creating and Editing Calendar Resources . . . . . . . . . . . 6
5.1. Creating Calendar Resources with POST . . . . . . . . . . 6
5.1.1. Example . . . . . . . . . . . . . . . . . . . . . . . 7
5.2. Modifying and Deleteing Calendar Resources . . . . . . . . 8
6. Date Range Search . . . . . . . . . . . . . . . . . . . . . . 8
6.1. URI Construction . . . . . . . . . . . . . . . . . . . . . 8
6.1.1. Example . . . . . . . . . . . . . . . . . . . . . . . 9
6.2. Search Response . . . . . . . . . . . . . . . . . . . . . 10
6.2.1. xcal Elements . . . . . . . . . . . . . . . . . . . . 11
7. Listing CalAtom Collection Members . . . . . . . . . . . . . . 11
7.1. Example . . . . . . . . . . . . . . . . . . . . . . . . . 11
8. Repeating Events . . . . . . . . . . . . . . . . . . . . . . . 13
9. Attachments . . . . . . . . . . . . . . . . . . . . . . . . . 13
10. Security Considerations . . . . . . . . . . . . . . . . . . . 13
11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 13
12. Normative References . . . . . . . . . . . . . . . . . . . . . 13
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 13
Intellectual Property and Copyright Statements . . . . . . . . . . 14
Expires April 2, 2007 [Page 2]
Internet-Draft CalAtom September 2006
1. Requirements notation
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in [RFC2119].
2. Introduction
The Atom Publishing Protocol (atompub) uses HTTP methods to edit and
author Member Resources. Atompub Collections can contain Member
Resources with representations of arbitrary media type. The Atom
Publishing Protocol defines Media Resources and Media Link Entries to
support the editing and authoring of Member Resources in media types
other than application/atom+xml. This specification uses those
constructs together with the "application/calendar+xml" media type
(xcal) to provide a remote api for a Calendaring. The api has been
designed to work with existing calendaring implementations.
3. CalAtom Collections
This specification defines Calendar Atom Collections (alternatively
referred to as CalAtom Collections). These collections allow for the
editing and authoring of calendar data in its xcal representation and
provide calendar specific query operations.
CalAtom collections MUST support xcal representations of the calendar
data. The xcal representations MUST contain one and only one VEVENT
calendar component. Additionally the representation MUST NOT specify
the iCalendar METHOD property.
4. Service Document in CalAtom
For event management to occur, a client needs to first discover the
capabilities and locations of the available CalAtom Collections. The
ATOM Publishing Protocols Service Documents are designed to support
this discovery process.
In addition to providing the standard collection details in the
Service document CalAtom collections MUST surface additional
information to indicate calendar specific capabilities.
Expires April 2, 2007 [Page 3]
Internet-Draft CalAtom September 2006
4.1. Example
Main SiteMy Calendarapplication/calendar+xmlPicturesimage/*20060901T130000Z-123401@host.com20060901T130000Z20060903T163000Z20060903T190000ZAnnual Employee ReviewPRIVATEBusinessHuman Resources
The server signals a successful creation with a status code of 201.
The response includes a Location header indicating the Member URI of
the CalAtom Media Link Entry and a representation of that entry in
the body of the response. The CalAtom Media Link Entry includes a
content element with a src attribute, and a link using the link
relation "edit-media" specifying the IRI to be used for modifying the
xcal Media Resource.
Expires April 2, 2007 [Page 7]
Internet-Draft CalAtom September 2006
HTTP/1.1 201 Created
Date: Fri, 7 Oct 2005 17:17:11 GMT
Content-Length: nnn
Content-Type: application/atom+xml; charset="utf-8"
Content-Location: http://example.org/calendar/edit/1
Location: http://example.org/calendar/edit/1
Annual Employee Reviewurn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a2005-10-07T17:17:08ZDaffy
5.2. Modifying and Deleteing Calendar Resources
CalAtom Media Link Entries i.e. entries that reference calendar
resources in CalAtom collections MUST contain an "edit-media" link
relation specifying the IRI to be used for modifying or deleting the
resource. GET, PUT and DELETE operations as described in atompub
section 5.4 can then be used to view or manipulate the resource.
CalAtom collections MUST provide an "edit-media" link relation with
media-type application/calendar+xml and MAY provide alternative
represenations.
6. Date Range Search
Calendar applications most frequently display calendar events for a
given date range. The "Date Range Search" allows a client to provide
the ranges start and end dates and returns the results in an atom
feed format.
6.1. URI Construction
CalAtom collections MUST provide a "Date Range Search" URI template
in the Atom Service Document. Clients MUST replace the parameters in
this template to construct a URI.
Two parameters in the URI template are replaceable i.e. "ca:
startdate" and "ca:enddate". These two parameters indicate a date
range. When substituted the constructed URI is dereferenceable and
Expires April 2, 2007 [Page 8]
Internet-Draft CalAtom September 2006
the server response MUST include CalAtom Media Link Entries that
reference a Calendar resource with an event who's start and end time
overlap the provided date range.
6.1.1. Example
In the following example the client requests all events that occur in
the month of September 2006. The atompub introspection document
contains the following URI Template "http://example.org/reilly/
calendar?startdate={ca:startdate}&enddate={ca:enddate}".
GET /reilly/calendar
?startdate=200609001T000000Z&enddate=200609001T115959Z HTTP/1.1
Host: example.org
User-Agent: Thingio/1.0
Accept: application/atom+xml
The client has substituted the parameters{ca:startdate} and {ca:
enddate}. The server responds with the results in Atom Feed format.
Expires April 2, 2007 [Page 9]
Internet-Draft CalAtom September 2006
HTTP/1.1 200 OK
Date: Fri, 7 Oct 2005 17:17:11 GMT
Content-Length: nnn
Content-Type: application/atom+xml; charset="utf-8"
Calendar Events2003-12-13T18:30:02Zurn:uuid:60a76c80-d399-11d9-b93C-0003939e0af6Annual Employee Review20060901T130000Z20060903T190000Zurn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a2005-10-07T17:17:08ZDaffyAnnual Manger Review20060902T130000Z20060902T190000Zurn:uuid:1225c645-cfb8-4ebb-aaaa-80da344efa6a2005-10-07T17:17:08ZDaffy
The response contains two events, "Annual Employee Review" and
"Annual Manager Review" both occuring in September 06. The CalAtom
Media Link Entries in the response also contain the "xcal:dtstart"
and "xcal:dtend" elements.
6.2. Search Response
The Date Range Search Response MUST provide representations in the
form of Atom Feed documents whose CalAtom media entries represent the
Expires April 2, 2007 [Page 10]
Internet-Draft CalAtom September 2006
Calendar Resources that qualify. Each entry in the Feed Document
SHOULD have an atom:link element with a relation of "edit-media".
The Search Response MAY be paged, see section 10.1 atompub.
6.2.1. xcal Elements
The CalAtom media entries in the Date Range Search Response MUST
contain the following xcal elements as immediate children of the
"atom:entry" when the elements exist in the corresponding Calendar
Resource, "xcal:location", "xcal:dtstart", "xcal:dtend", "xcal:
status", "xcal:organizer".
7. Listing CalAtom Collection Members
CalAtom collections MUST respond to GET requests with a member
listing as outlined in atompub section 10. Typically atom clients
use this default listing as their primary listing. CalAtom clients
however will normally use the "Date Range Query" as their primary
listing of events. It is, however, expected that the default
collection listing will be used to "synch" calendar clients with the
server. Therefore in the default collection listing CalAtom Media
Entries SHOULD contain a full inline representation of the Media
Resource in media type application/calendar+xml. The listing SHOULD
also be paged.
7.1. Example
Below is a sample default listing of a CalAtom Collection that
contains two events.
GET /reilly/calendar
Host: example.org
User-Agent: Thingio/1.0
Accept: application/atom+xml
The server responds as follows.
HTTP/1.1 200 OK
Date: Fri, 7 Oct 2005 17:17:11 GMT
Content-Length: nnn
Content-Type: application/atom+xml; charset="utf-8"
Calendar Events2003-12-13T18:30:02Zurn:uuid:60a76c80-d399-11d9-b93C-0003939e0af6
Expires April 2, 2007 [Page 11]
Internet-Draft CalAtom September 2006
Annual Employee Reviewurn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a2005-10-07T17:17:08ZDaffy20060901T130000Z-123401@host.com20060901T130000Z20060903T163000Z20060903T190000ZAnnual Employee ReviewPRIVATEBusinessHuman ResourcesAnnual Manger Reviewurn:uuid:1225c645-cfb8-4ebb-aaaa-80da344efa6a2005-10-07T16:17:08ZDaffy20060901T130000Z-123401@host.com20060901T130000Z20060903T163000Z20060903T190000ZAnnual Manager ReviewPRIVATEBusiness
Expires April 2, 2007 [Page 12]
Internet-Draft CalAtom September 2006
Human Resources
8. Repeating Events
tbd.
9. Attachments
tbd.
10. Security Considerations
tbd.
11. Acknowledgements
Portions of the atompub specification have been included and adapted
12. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
Author's Address
Expires April 2, 2007 [Page 13]
Internet-Draft CalAtom September 2006
Full Copyright Statement
Copyright (C) The Internet Society (2006).
This document is subject to the rights, licenses and restrictions
contained in BCP 78, and except as set forth therein, the authors
retain all their rights.
This document and the information contained herein are provided on an
"AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
Intellectual Property
The IETF takes no position regarding the validity or scope of any
Intellectual Property Rights or other rights that might be claimed to
pertain to the implementation or use of the technology described in
this document or the extent to which any license under such rights
might or might not be available; nor does it represent that it has
made any independent effort to identify any such rights. Information
on the procedures with respect to rights in RFC documents can be
found in BCP 78 and BCP 79.
Copies of IPR disclosures made to the IETF Secretariat and any
assurances of licenses to be made available, or the result of an
attempt made to obtain a general license or permission for the use of
such proprietary rights by implementers or users of this
specification can be obtained from the IETF on-line IPR repository at
http://www.ietf.org/ipr.
The IETF invites any interested party to bring to its attention any
copyrights, patents or patent applications, or other proprietary
rights that may cover technology that may be required to implement
this standard. Please address the information to the IETF at
ietf-ipr@ietf.org.
Acknowledgment
Funding for the RFC Editor function is provided by the IETF
Administrative Support Activity (IASA).
Expires April 2, 2007 [Page 14]