Subject: [Ietf-caldav] Re: Last Call: 'Calendaring Extensions to WebDAV (CalDAV)' to Proposed Standard (draft-dusseault-caldav)
From: Julian Reschke <[email-masked]>
To: [email-masked]
Cc: CalDAV DevList <[email-masked]>
Date: Sun, 30 Jul 2006 20:26:25 +0200
List-Id: Discussions on Calendar Access protocol based on WebDAV <ietf-caldav.osafoundation.org>

Hi,

below are last call comments, interleaved with the spec text.

Best regards, Julian

--

Section 1., para. 2:

     Discussion of this specification is taking place on the mailing list
     <http://lists.osafoundation.org/mailman/listinfo/ietf-caldav>.
     [[anchor2: Clarify that this paragraph should be removed upon
     publication --reschke]]

Section 1.2., para. 3:

     The XML declarations used in this document do not include namespace
     information.  Thus, implementers MUST NOT use these declarations as
     the only way to create valid CalDAV properties or to validate CalDAV
     XML element type. [[anchor5: "...MUST NOT use these declarations as
     the only way..." is extremly hard to understand; the presence of
     RFC2119 keywords make things worse in that the reader is confused to
     believe that a normative statement is being made.  As far as I can
     tell, all this wants to say is that the missing namespace needs to be
     taken into account.  Please clarify. --reschke]] Some of the
     declarations refer to XML elements defined by WebDAV
     [I-D.ietf-webdav-rfc2518bis] which use the "DAV:" namespace.
     Wherever such XML elements appear, they are explicitly prefixed with
     "DAV:" to avoid confusion.

Section 2., para. 5:

     o  MUST support transport over TLS [RFC2246] as defined in [RFC2818]
        (note that [RFC2246] has been obsoleted by [RFC4346]); [[anchor6:
        I assume that the down reference to RFC2818 (informational RFC) is
        intended; but what about the stuff with RFC2246?  Why doesn't spec
        refer to RFC4346 instead? --reschke]]

Section 3.1., para. 4:

     The CalDAV server or repository is the canonical location for
     calendar data and state information. [[anchor8: "server or
     repository": I think it would be good if the spec would choose one
     term and stick with it --reschke]] Both CalDAV servers and clients
     MUST ensure that the data is consistent and compliant. [[anchor9:
     What does it exactly mean for the data to be "consistent" and
     "compliant"?  If there's no exact definition for that then the "MUST"
     should go --reschke]] Clients may submit requests to change data or
     download data.  Clients may store calendar objects offline and
     attempt to synchronize at a later time.  However, clients MUST be
     prepared for calendar data on the server to change between the time
     of last synchronization and when attempting an update, as calendar
     collections may be shared and accessible via multiple clients.
     Entity tags and other features make this possible.

Section 5.2.4., para. 5:

     Description:  The CALDAV:supported-calendar-data property is used to
        specify the media type supported for the calendar object resources
        contained in a given calendar collection (e.g., iCalendar version
        2.0).  Any attempt by the client to store calendar object
        resources with a media type not listed in this property MUST
        result in an error, with the CALDAV:supported-calendar-data
        precondition (Section 5.3.2.1) being violated.  In the absence of
        this property the server MUST accept data with the media type
        "text/calendar" and iCalendar version 2.0, and clients can assume
        that. [[anchor15: What about other types in this case? --reschke]]

Section 5.3.1., para. 3:

     Clients SHOULD use the DAV:displayname property for a human-readable
     name of the calendar.  Clients can either specify the value of the
     DAV:displayname property in the request body of the MKCALENDAR
     request, or alternatively issue a PROPPATCH request to change the
     DAV:displayname property to the appropriate value immediately after
     issuing the MKCALENDAR request.  Clients SHOULD NOT set the DAV:
     displayname property to be the same as any other calendar collection
     at the same URI "level".  When displaying calendar collections to
     users, clients SHOULD check the DAV:displayname property and use that
     value as the name of the calendar.  In the event that the DAV:
     displayname property is empty, the client MAY use the last part of
     the calendar collection URI as the name, however that path segment
     may be "opaque" and not represent any meaningful human-readable text.
     [[anchor17: This seems to profile DAV:displayname as defined by
     RFC2518bis.  Furthermore it's not clear what happens when the client
     violates the constraint. --reschke]]

Section 5.3.4., para. 4:

     In the case where the data stored by a server as a result of a PUT
     request is not equivalent by octet equality to the submitted calendar
     object resource, the behavior of the ETag response header is not
     specified here, with the exception that a strong entity tag MUST NOT
     be returned in the response.  As a result, clients may need to
     retrieve the modified calendar object resource (and ETag) as a basis
     for further changes, rather than use the calendar object resource it
     had sent with the PUT request. [[anchor22: See comments on ietf-
     discuss mailing list. --reschke]]

Section 6.2.1., para. 4:

     Conformance:  This property MAY be defined in a principal resource.
        If defined, it MAY be protected and SHOULD NOT be returned by a
        PROPFIND DAV:allprop request (as defined in Section 14.2 of
        [I-D.ietf-webdav-rfc2518bis]).  Support for this property is
        RECOMMENDED. [[anchor24: Doesn't compute.  Is this a MAY
        (OPTIONAL) or a SHOULD (RECOMMENDED)? --reschke]]

Section 7.5., para. 1:

     Some calendaring REPORTs defined in this document allow partial
     retrieval of calendar object resources.  A CalDAV client MAY specify
     what information to return in the body of a calendaring REPORT
     request. [[anchor29: Why does this simple statement require RFC2219
     terminology?  Please don't over-use it.  In particular, please check
     that all "MAY" requirements really are needed for the purposes
     outlined in RFC2219. --reschke]]

Section 7.7.6., para. 1:

     In this example, the client requests the server to return the VEVENT
     component that has the UID property set to
     "[email-masked]". [[anchor37: Is whitespace
     significant here?  In which case the example below would be invalid.
     -reschke]]

Section 7.8., para. 4:

        The request body MUST be a CALDAV:calendar-multiget XML element
        (see Section 9.9).  If the Request-URI is a collection resource,
        then the DAV:href elements MUST refer to calendar object resources
        within that collection, and they MAY refer to calendar object
        resources at any depth within the collection.  As a result the
        "Depth" header MUST be ignored by the server and SHOULD NOT be
        sent by the client. [[anchor42: Bad idea.  Just stick with
        RFC3253/RFC3744 terminology (invalid depth values are rejected by
        the server, not ignored).  This leaves the possibilily to later
        define semantics for these values. --reschke]] If the Request-URI
        refers to a non-collection resource, then there MUST be a single
        DAV:href element that is equivalent to the Request-URI.

Section 8.4., para. 3:

     For calendar sharing and scheduling use cases, one might wish to find
     the calendar belonging to another user.  If the other user has a
     calendar in the same repository, that calendar can be found by using
     the principal namespace required by WebDAV ACL support.  For other
     cases, the authors have no universal solution but implementers can
     consider whether to use vCard [RFC2426] or LDAP [RFC2251] standards
     together with calendar attributes [RFC2739]. [[anchor55: LDAP
     reference is outdated. --reschke]]

Section 8.5.2., para. 1:

     CalDAV clients SHOULD support downloading of external attachments
     referenced by arbitrary URI schemes, by either processing them
     directly, or by passing the attachment URI to a suitable "helper
     application" for processing, if such an application exists.  CalDAV
     clients MUST support downloading of external attachments referenced
     by the "http" URI scheme, and MAY support downloading of external
     attachments referenced by the "https" URI scheme.  An external
     attachment could be: [[anchor59: Very confusing: MAY, SHOULD and MUST
     requirements for basically the same thing.  In particular, the MAY
     for "https" is bogus, because the spec just stated that the client
     SHOULD support arbitrary schemes. --reschke]]

Section 9.5., para. 7:

     Note:  The CALDAV:calendar-data XML element is specified in requests
        and responses inside the DAV:prop XML element as if it were a
        WebDAV property.  However, the CALDAV:calendar-data XML element is
        not a WebDAV property and as such it is not returned in PROPFIND
        responses nor used in PROPPATCH requests. [[anchor62: For this
        reason, I think a syntax where it can't be confused with a
        property whould be better. --reschke]]

Date: Sat, 29 Jul 2006 23:19:59 +0200
From: Julian Reschke <[email-masked]>
To: [email-masked]
Cc: CalDAV DevList <[email-masked]>
Subject: [Ietf-caldav] Re: Last Call: 'Calendaring Extensions to WebDAV (CalDAV)' to Proposed Standard (draft-dusseault-caldav)

This is a multi-part message in MIME format.
--------------030400070702060103000103
Content-Type: text/plain; charset=ISO-8859-15; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

below are last call comments, interleaved with the spec text (plus 
additional as HTML formatted diffs to draft 13).

Best regards, Julian

--

Section 1., para. 2:
OLD:

     Discussion of this specification is taking place on the mailing list
     <http://lists.osafoundation.org/mailman/listinfo/ietf-caldav>.

NEW:

     Discussion of this specification is taking place on the mailing list
     <http://lists.osafoundation.org/mailman/listinfo/ietf-caldav>.
     [[anchor2: Clarify that this paragraph should be removed upon
     publication --reschke]]

Section 1.2., para. 3:
OLD:

     The XML declarations used in this document do not include namespace
     information.  Thus, implementers MUST NOT use these declarations as
     the only way to create valid CalDAV properties or to validate CalDAV
     XML element type.  Some of the declarations refer to XML elements
     defined by WebDAV [I-D.ietf-webdav-rfc2518bis] which use the "DAV:"
     namespace.  Wherever such XML elements appear, they are explicitly
     prefixed with "DAV:" to avoid confusion.

NEW:

     The XML declarations used in this document do not include namespace
     information.  Thus, implementers MUST NOT use these declarations as
     the only way to create valid CalDAV properties or to validate CalDAV
     XML element type. [[anchor5: "...MUST NOT use these declarations as
     the only way..." is extremly hard to understand; the presence of
     RFC2119 keywords make things worse in that the reader is confused to
     believe that a normative statement is being made.  As far as I can
     tell, all this wants to say is that the missing namespace needs to be
     taken into account.  Please clarify. --reschke]] Some of the
     declarations refer to XML elements defined by WebDAV
     [I-D.ietf-webdav-rfc2518bis] which use the "DAV:" namespace.
     Wherever such XML elements appear, they are explicitly prefixed with
     "DAV:" to avoid confusion.

Section 2., para. 5:
OLD:

     o  MUST support transport over TLS [RFC2246] as defined in [RFC2818]
        (note that [RFC2246] has been obsoleted by [RFC4346]);

NEW:

     o  MUST support transport over TLS [RFC2246] as defined in [RFC2818]
        (note that [RFC2246] has been obsoleted by [RFC4346]); [[anchor6:
        I assume that the down reference to RFC2818 (informational RFC) is
        intended; but what about the stuff with RFC2246?  Why doesn't spec
        refer to RFC4346 instead? --reschke]]

Section 3.1., para. 4:
OLD:

     The CalDAV server or repository is the canonical location for
     calendar data and state information.  Both CalDAV servers and clients
     MUST ensure that the data is consistent and compliant.  Clients may
     submit requests to change data or download data.  Clients may store
     calendar objects offline and attempt to synchronize at a later time.
     However, clients MUST be prepared for calendar data on the server to
     change between the time of last synchronization and when attempting
     an update, as calendar collections may be shared and accessible via
     multiple clients.  Entity tags and other features make this possible.

NEW:

     The CalDAV server or repository is the canonical location for
     calendar data and state information. [[anchor8: "server or
     repository": I think it would be good if the spec would choose one
     term and stick with it --reschke]] Both CalDAV servers and clients
     MUST ensure that the data is consistent and compliant. [[anchor9:
     What does it exactly mean for the data to be "consistent" and
     "compliant"?  If there's no exact definition for that then the "MUST"
     should go --reschke]] Clients may submit requests to change data or
     download data.  Clients may store calendar objects offline and
     attempt to synchronize at a later time.  However, clients MUST be
     prepared for calendar data on the server to change between the time
     of last synchronization and when attempting an update, as calendar
     collections may be shared and accessible via multiple clients.
     Entity tags and other features make this possible.

Section 5.2.4., para. 5:
OLD:

     Description:  The CALDAV:supported-calendar-data property is used to
        specify the media type supported for the calendar object resources
        contained in a given calendar collection (e.g., iCalendar version
        2.0).  Any attempt by the client to store calendar object
        resources with a media type not listed in this property MUST
        result in an error, with the CALDAV:supported-calendar-data
        precondition (Section 5.3.2.1) being violated.  In the absence of
        this property the server MUST accept data with the media type
        "text/calendar" and iCalendar version 2.0, and clients can assume
        that.

NEW:

     Description:  The CALDAV:supported-calendar-data property is used to
        specify the media type supported for the calendar object resources
        contained in a given calendar collection (e.g., iCalendar version
        2.0).  Any attempt by the client to store calendar object
        resources with a media type not listed in this property MUST
        result in an error, with the CALDAV:supported-calendar-data
        precondition (Section 5.3.2.1) being violated.  In the absence of
        this property the server MUST accept data with the media type
        "text/calendar" and iCalendar version 2.0, and clients can assume
        that. [[anchor15: What about other types in this case? --reschke]]

Section 5.3.1., para. 3:
OLD:

     Clients SHOULD use the DAV:displayname property for a human-readable
     name of the calendar.  Clients can either specify the value of the
     DAV:displayname property in the request body of the MKCALENDAR
     request, or alternatively issue a PROPPATCH request to change the
     DAV:displayname property to the appropriate value immediately after
     issuing the MKCALENDAR request.  Clients SHOULD NOT set the DAV:
     displayname property to be the same as any other calendar collection
     at the same URI "level".  When displaying calendar collections to
     users, clients SHOULD check the DAV:displayname property and use that
     value as the name of the calendar.  In the event that the DAV:
     displayname property is empty, the client MAY use the last part of
     the calendar collection URI as the name, however that path segment
     may be "opaque" and not represent any meaningful human-readable text.

NEW:

     Clients SHOULD use the DAV:displayname property for a human-readable
     name of the calendar.  Clients can either specify the value of the
     DAV:displayname property in the request body of the MKCALENDAR
     request, or alternatively issue a PROPPATCH request to change the
     DAV:displayname property to the appropriate value immediately after
     issuing the MKCALENDAR request.  Clients SHOULD NOT set the DAV:
     displayname property to be the same as any other calendar collection
     at the same URI "level".  When displaying calendar collections to
     users, clients SHOULD check the DAV:displayname property and use that
     value as the name of the calendar.  In the event that the DAV:
     displayname property is empty, the client MAY use the last part of
     the calendar collection URI as the name, however that path segment
     may be "opaque" and not represent any meaningful human-readable text.
     [[anchor17: This seems to profile DAV:displayname as defined by
     RFC2518bis.  Furthermore it's not clear what happens when the client
     violates the constraint. --reschke]]

Section 5.3.4., para. 4:
OLD:

     In the case where the data stored by a server as a result of a PUT
     request is not equivalent by octet equality to the submitted calendar
     object resource, the behavior of the ETag response header is not
     specified here, with the exception that a strong entity tag MUST NOT
     be returned in the response.  As a result, clients may need to
     retrieve the modified calendar object resource (and ETag) as a basis
     for further changes, rather than use the calendar object resource it
     had sent with the PUT request.

NEW:

     In the case where the data stored by a server as a result of a PUT
     request is not equivalent by octet equality to the submitted calendar
     object resource, the behavior of the ETag response header is not
     specified here, with the exception that a strong entity tag MUST NOT
     be returned in the response.  As a result, clients may need to
     retrieve the modified calendar object resource (and ETag) as a basis
     for further changes, rather than use the calendar object resource it
     had sent with the PUT request. [[anchor22: See comments on ietf-
     discuss mailing list. --reschke]]

Section 6.2.1., para. 4:
OLD:

     Conformance:  This property MAY be defined in a principal resource.
        If defined, it MAY be protected and SHOULD NOT be returned by a
        PROPFIND DAV:allprop request (as defined in Section 14.2 of
        [I-D.ietf-webdav-rfc2518bis]).  Support for this property is
        RECOMMENDED.

NEW:

     Conformance:  This property MAY be defined in a principal resource.
        If defined, it MAY be protected and SHOULD NOT be returned by a
        PROPFIND DAV:allprop request (as defined in Section 14.2 of
        [I-D.ietf-webdav-rfc2518bis]).  Support for this property is
        RECOMMENDED. [[anchor24: Doesn't compute.  Is this a MAY
        (OPTIONAL) or a SHOULD (RECOMMENDED)? --reschke]]

Section 7.5., para. 1:
OLD:

     Some calendaring REPORTs defined in this document allow partial
     retrieval of calendar object resources.  A CalDAV client MAY specify
     what information to return in the body of a calendaring REPORT
     request.

NEW:

     Some calendaring REPORTs defined in this document allow partial
     retrieval of calendar object resources.  A CalDAV client MAY specify
     what information to return in the body of a calendaring REPORT
     request. [[anchor29: Why does this simple statement require RFC2219
     terminology?  Please don't over-use it.  In particular, please check
     that all "MAY" requirements really are needed for the purposes
     outlined in RFC2219. --reschke]]

Section 7.7.6., para. 1:
OLD:

     In this example, the client requests the server to return the VEVENT
     component that has the UID property set to
     "[email-masked]".

     See Appendix B for the calendar data being targeted by this example.

NEW:

     In this example, the client requests the server to return the VEVENT
     component that has the UID property set to
     "[email-masked]". [[anchor37: Is whitespace
     significant here?  In which case the example below would be invalid.
     -reschke]]
     See Appendix B for the calendar data being targeted by this example.

Section 7.8., para. 4:
OLD:

        The request body MUST be a CALDAV:calendar-multiget XML element
        (see Section 9.9).  If the Request-URI is a collection resource,
        then the DAV:href elements MUST refer to calendar object resources
        within that collection, and they MAY refer to calendar object
        resources at any depth within the collection.  As a result the
        "Depth" header MUST be ignored by the server and SHOULD NOT be
        sent by the client.  If the Request-URI refers to a non-collection
        resource, then there MUST be a single DAV:href element that is
        equivalent to the Request-URI.

NEW:

        The request body MUST be a CALDAV:calendar-multiget XML element
        (see Section 9.9).  If the Request-URI is a collection resource,
        then the DAV:href elements MUST refer to calendar object resources
        within that collection, and they MAY refer to calendar object
        resources at any depth within the collection.  As a result the
        "Depth" header MUST be ignored by the server and SHOULD NOT be
        sent by the client. [[anchor42: Bad idea.  Just stick with
        RFC3253/RFC3744 terminology (invalid depth values are rejected by
        the server, not ignored).  This leaves the possibilily to later
        define semantics for these values. --reschke]] If the Request-URI
        refers to a non-collection resource, then there MUST be a single
        DAV:href element that is equivalent to the Request-URI.

Section 8.4., para. 3:
OLD:

     For calendar sharing and scheduling use cases, one might wish to find
     the calendar belonging to another user.  If the other user has a
     calendar in the same repository, that calendar can be found by using
     the principal namespace required by WebDAV ACL support.  For other
     cases, the authors have no universal solution but implementers can
     consider whether to use vCard [RFC2426] or LDAP [RFC2251] standards
     together with calendar attributes [RFC2739].

NEW:

     For calendar sharing and scheduling use cases, one might wish to find
     the calendar belonging to another user.  If the other user has a
     calendar in the same repository, that calendar can be found by using
     the principal namespace required by WebDAV ACL support.  For other
     cases, the authors have no universal solution but implementers can
     consider whether to use vCard [RFC2426] or LDAP [RFC2251] standards
     together with calendar attributes [RFC2739]. [[anchor55: LDAP
     reference is outdated. --reschke]]

Section 8.5.2., para. 1:
OLD:

     CalDAV clients SHOULD support downloading of external attachments
     referenced by arbitrary URI schemes, by either processing them
     directly, or by passing the attachment URI to a suitable "helper
     application" for processing, if such an application exists.  CalDAV
     clients MUST support downloading of external attachments referenced
     by the "http" URI scheme, and MAY support downloading of external
     attachments referenced by the "https" URI scheme.  An external
     attachment could be:

NEW:

     CalDAV clients SHOULD support downloading of external attachments
     referenced by arbitrary URI schemes, by either processing them
     directly, or by passing the attachment URI to a suitable "helper
     application" for processing, if such an application exists.  CalDAV
     clients MUST support downloading of external attachments referenced
     by the "http" URI scheme, and MAY support downloading of external
     attachments referenced by the "https" URI scheme.  An external
     attachment could be: [[anchor59: Very confusing: MAY, SHOULD and MUST
     requirements for basically the same thing.  In particular, the MAY
     for "https" is bogus, because the spec just stated that the client
     SHOULD support arbitrary schemes. --reschke]]

--------------030400070702060103000103
Content-Type: text/html; charset=ISO-8859-1;
	name="draft-dusseault-caldav-13-jr-from-.diff.html"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
	filename="draft-dusseault-caldav-13-jr-from-.diff.html"

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<!-- Generated by rfcdiff 1.12: rfcdiff 1 --> 
<html> 
<head> 
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
  <meta http-equiv="Content-Style-Type" content="text/css" /> 
  <title>Diff: draft-dusseault-caldav-13.txt - draft-dusseault-caldav-13-jr.txt</title> 
  <style> 
    body    { margin: 0.4ex; } 
    tr      { } 
    td      { white-space: pre; font-family: monospace; } 
    th      { font-size: 11pt; } 
    .small  { font-size: 8pt; } 
    .left   { background-color: #EEE; } 
    .right  { background-color: #FFF; } 
    .diff   { background-color: lightblue; } 
    .lblock { background-color: #BFB; } 
    .rblock { background-color: #FF8; } 
    .insert { background-color: cyan; } 
    .delete { background-color: #ACF; } 
    .void   { background-color: lightyellow; } 
    .cont   { background-color: #EEE; } 
    .linebr { background-color: #AAA; } 
    .lineno { color: red; background-color: #FFF; font-size: 8pt; text-align: right; padding: 0 2px; } 
    .elipsis{ background-color: #AAA; } 
    .left .cont { background-color: #DDD; } 
    .right .cont { background-color: #EEE; } 
    .lblock .cont { background-color: #9D9; } 
    .rblock .cont { background-color: #DD6; } 
    .insert .cont { background-color: #0DD; } 
    .delete .cont { background-color: #8AD; } 
  </style> 
</head> 
<body > 
  <table border="0" cellpadding="0" cellspacing="0"> 
  <tr bgcolor="orange"><th></th><th>&nbsp;draft-dusseault-caldav-13.txt&nbsp;</th><th> </th><th>&nbsp;draft-dusseault-caldav-13-jr.txt&nbsp;</th><th></th></tr> 
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="diff-1" /><small>skipping to change at</small><em> page 2, line 15</em></th><th> </th><th><a name="diff-1" /><small>skipping to change at</small><em> page 2, line 15</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">Table of Contents</td><td> </td><td class="right">Table of Contents</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   5</td><td> </td><td class="right">   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   5</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">     1.1.  Notational Conventions  . . . . . . . . . . . . . . . . .   5</td><td> </td><td class="right">     1.1.  Notational Conventions  . . . . . . . . . . . . . . . . .   5</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">     1.2.  XML Namespaces and Processing . . . . . . . . . . . . . .   5</td><td> </td><td class="right">     1.2.  XML Namespaces and Processing . . . . . . . . . . . . . .   5</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   2.  Requirements Overview . . . . . . . . . . . . . . . . . . . .   6</td><td> </td><td class="right">   2.  Requirements Overview . . . . . . . . . . . . . . . . . . . .   6</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   3.  Calendaring Data Model  . . . . . . . . . . . . . . . . . . .   7</td><td> </td><td class="right">   3.  Calendaring Data Model  . . . . . . . . . . . . . . . . . . .   7</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">     3.1.  Calendar Server . . . . . . . . . . . . . . . . . . . . .   7</td><td> </td><td class="right">     3.1.  Calendar Server . . . . . . . . . . . . . . . . . . . . .   7</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">     3.2.  Recurrence and the Data Model . . . . . . . . . . . . . .   8</td><td> </td><td class="right">     3.2.  Recurrence and the Data Model . . . . . . . . . . . . . .   8</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   4.  Calendar Resources  . . . . . . . . . . . . . . . . . . . . .   <span class="delete">8</span></td><td> </td><td class="rblock">   4.  Calendar Resources  . . . . . . . . . . . . . . . . . . . . .   <span class="insert">9</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     4.1.  Calendar Object Resources . . . . . . . . . . . . . . . .   <span class="delete">8</span></td><td> </td><td class="rblock">     4.1.  Calendar Object Resources . . . . . . . . . . . . . . . .   <span class="insert">9</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">     4.2.  Calendar Collection . . . . . . . . . . . . . . . . . . .  10</td><td> </td><td class="right">     4.2.  Calendar Collection . . . . . . . . . . . . . . . . . . .  10</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   5.  Calendar Access Feature . . . . . . . . . . . . . . . . . . .  11</td><td> </td><td class="right">   5.  Calendar Access Feature . . . . . . . . . . . . . . . . . . .  11</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">     5.1.  Calendar Access Support . . . . . . . . . . . . . . . . .  11</td><td> </td><td class="right">     5.1.  Calendar Access Support . . . . . . . . . . . . . . . . .  11</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">       5.1.1.  Example: Using OPTIONS for the Discovery of</td><td> </td><td class="right">       5.1.1.  Example: Using OPTIONS for the Discovery of</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">               Calendar Access Support . . . . . . . . . . . . . . .  1<span class="delete">1</span></td><td> </td><td class="rblock">               Calendar Access Support . . . . . . . . . . . . . . .  1<span class="insert">2</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     5.2.  Calendar Collection Properties  . . . . . . . . . . . . .  1<span class="delete">1</span></td><td> </td><td class="rblock">     5.2.  Calendar Collection Properties  . . . . . . . . . . . . .  1<span class="insert">2</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">       5.2.1.  CALDAV:calendar-description Property  . . . . . . . .  12</td><td> </td><td class="right">       5.2.1.  CALDAV:calendar-description Property  . . . . . . . .  12</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">       5.2.2.  CALDAV:calendar-timezone Property . . . . . . . . . .  1<span class="delete">2</span></td><td> </td><td class="rblock">       5.2.2.  CALDAV:calendar-timezone Property . . . . . . . . . .  1<span class="insert">3</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">       5.2.3.  CALDAV:supported-calendar-component-set Property  . .  14</td><td> </td><td class="right">       5.2.3.  CALDAV:supported-calendar-component-set Property  . .  14</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">       5.2.4.  CALDAV:supported-calendar-data Property . . . . . . .  1<span class="delete">5</span></td><td> </td><td class="rblock">       5.2.4.  CALDAV:supported-calendar-data Property . . . . . . .  1<span class="insert">6</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">       5.2.5.  CALDAV:max-resource-size Property . . . . . . . . . .  16</td><td> </td><td class="right">       5.2.5.  CALDAV:max-resource-size Property . . . . . . . . . .  16</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">       5.2.6.  CALDAV:min-date-time Property . . . . . . . . . . . .  17</td><td> </td><td class="right">       5.2.6.  CALDAV:min-date-time Property . . . . . . . . . . . .  17</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">       5.2.7.  CALDAV:max-date-time Property . . . . . . . . . . . .  18</td><td> </td><td class="right">       5.2.7.  CALDAV:max-date-time Property . . . . . . . . . . . .  18</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">       5.2.8.  CALDAV:max-instances Property . . . . . . . . . . . .  19</td><td> </td><td class="right">       5.2.8.  CALDAV:max-instances Property . . . . . . . . . . . .  19</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">       5.2.9.  CALDAV:max-attendees-per-instance Property  . . . . .  <span class="delete">19</span></td><td> </td><td class="rblock">       5.2.9.  CALDAV:max-attendees-per-instance Property  . . . . .  <span class="insert">20</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">       5.2.10. Additional Precondition for PROPPATCH . . . . . . . .  2<span class="delete">0</span></td><td> </td><td class="rblock">       5.2.10. Additional Precondition for PROPPATCH . . . . . . . .  2<span class="insert">1</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">     5.3.  Creating Resources  . . . . . . . . . . . . . . . . . . .  21</td><td> </td><td class="right">     5.3.  Creating Resources  . . . . . . . . . . . . . . . . . . .  21</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">       5.3.1.  MKCALENDAR Method . . . . . . . . . . . . . . . . . .  21</td><td> </td><td class="right">       5.3.1.  MKCALENDAR Method . . . . . . . . . . . . . . . . . .  21</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">         5.3.1.1.  Status Codes  . . . . . . . . . . . . . . . . . .  2<span class="delete">2</span></td><td> </td><td class="rblock">         5.3.1.1.  Status Codes  . . . . . . . . . . . . . . . . . .  2<span class="insert">3</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">         5.3.1.2.  Example: Successful MKCALENDAR request  . . . . .  2<span class="delete">3</span></td><td> </td><td class="rblock">         5.3.1.2.  Example: Successful MKCALENDAR request  . . . . .  2<span class="insert">4</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">       5.3.2.  Creating Calendar Object Resources  . . . . . . . . .  2<span class="delete">5</span></td><td> </td><td class="rblock">       5.3.2.  Creating Calendar Object Resources  . . . . . . . . .  2<span class="insert">6</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">         5.3.2.1.  Additional Preconditions for PUT, COPY and MOVE .  2<span class="delete">6</span></td><td> </td><td class="rblock">         5.3.2.1.  Additional Preconditions for PUT, COPY and MOVE .  2<span class="insert">7</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">       5.3.3.  Non-standard components, properties and parameters  .  2<span class="delete">8</span></td><td> </td><td class="rblock">       5.3.3.  Non-standard components, properties and parameters  .  2<span class="insert">9</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">       5.3.4.  Calendar Object Resource Entity Tag . . . . . . . . .  <span class="delete">29</span></td><td> </td><td class="rblock">       5.3.4.  Calendar Object Resource Entity Tag . . . . . . . . .  <span class="insert">30</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   6.  Calendaring Access Control  . . . . . . . . . . . . . . . . .  <span class="delete">29</span></td><td> </td><td class="rblock">   6.  Calendaring Access Control  . . . . . . . . . . . . . . . . .  <span class="insert">30</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     6.1.  Calendaring Privilege . . . . . . . . . . . . . . . . . .  <span class="delete">29</span></td><td> </td><td class="rblock">     6.1.  Calendaring Privilege . . . . . . . . . . . . . . . . . .  <span class="insert">30</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">       6.1.1.  CALDAV:read-free-busy Privilege . . . . . . . . . . .  <span class="delete">29</span></td><td> </td><td class="rblock">       6.1.1.  CALDAV:read-free-busy Privilege . . . . . . . . . . .  <span class="insert">30</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     6.2.  Additional Principal Property . . . . . . . . . . . . . .  3<span class="delete">0</span></td><td> </td><td class="rblock">     6.2.  Additional Principal Property . . . . . . . . . . . . . .  3<span class="insert">1</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">       6.2.1.  CALDAV:calendar-home-set Property . . . . . . . . . .  3<span class="delete">0</span></td><td> </td><td class="rblock">       6.2.1.  CALDAV:calendar-home-set Property . . . . . . . . . .  3<span class="insert">1</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   7.  Calendaring Reports . . . . . . . . . . . . . . . . . . . . .  3<span class="delete">1</span></td><td> </td><td class="rblock">   7.  Calendaring Reports . . . . . . . . . . . . . . . . . . . . .  3<span class="insert">2</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     7.1.  REPORT Method . . . . . . . . . . . . . . . . . . . . . .  3<span class="delete">1</span></td><td> </td><td class="rblock">     7.1.  REPORT Method . . . . . . . . . . . . . . . . . . . . . .  3<span class="insert">2</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     7.2.  Ordinary collections  . . . . . . . . . . . . . . . . . .  3<span class="delete">1</span></td><td> </td><td class="rblock">     7.2.  Ordinary collections  . . . . . . . . . . . . . . . . . .  3<span class="insert">3</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     7.3.  Date and floating time  . . . . . . . . . . . . . . . . .  3<span class="delete">2</span></td><td> </td><td class="rblock">     7.3.  Date and floating time  . . . . . . . . . . . . . . . . .  3<span class="insert">3</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     7.4.  Time range filtering  . . . . . . . . . . . . . . . . . .  3<span class="delete">2</span></td><td> </td><td class="rblock">     7.4.  Time range filtering  . . . . . . . . . . . . . . . . . .  3<span class="insert">3</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     7.5.  Partial Retrieval . . . . . . . . . . . . . . . . . . . .  3<span class="delete">3</span></td><td> </td><td class="rblock">     7.5.  Partial Retrieval . . . . . . . . . . . . . . . . . . . .  3<span class="insert">4</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     7.6.  Non-standard components, properties and parameters  . . .  3<span class="delete">4</span></td><td> </td><td class="rblock">     7.6.  Non-standard components, properties and parameters  . . .  3<span class="insert">5</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     7.7.  CALDAV:calendar-query Report  . . . . . . . . . . . . . .  3<span class="delete">4</span></td><td> </td><td class="rblock">     7.7.  CALDAV:calendar-query Report  . . . . . . . . . . . . . .  3<span class="insert">5</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">       7.7.1.  Example: Partial retrieval of events by time range  .  3<span class="delete">6</span></td><td> </td><td class="rblock">       7.7.1.  Example: Partial retrieval of events by time range  .  3<span class="insert">7</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">       7.7.2.  Example: Partial retrieval of recurring events  . . .  4<span class="delete">0</span></td><td> </td><td class="rblock">       7.7.2.  Example: Partial retrieval of recurring events  . . .  4<span class="insert">1</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">       7.7.3.  Example: Expanded retrieval of recurring events . . .  4<span class="delete">3</span></td><td> </td><td class="rblock">       7.7.3.  Example: Expanded retrieval of recurring events . . .  4<span class="insert">4</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">       7.7.4.  Example: Partial retrieval of stored free busy</td><td> </td><td class="right">       7.7.4.  Example: Partial retrieval of stored free busy</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">               components  . . . . . . . . . . . . . . . . . . . . .  4<span class="delete">5</span></td><td> </td><td class="rblock">               components  . . . . . . . . . . . . . . . . . . . . .  4<span class="insert">6</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">       7.7.5.  Example: Retrieval of to-dos by alarm time range  . .  4<span class="delete">7</span></td><td> </td><td class="rblock">       7.7.5.  Example: Retrieval of to-dos by alarm time range  . .  4<span class="insert">8</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">       7.7.6.  Example: Retrieval of event by UID  . . . . . . . . .  <span class="delete">49</span></td><td> </td><td class="rblock">       7.7.6.  Example: Retrieval of event by UID  . . . . . . . . .  <span class="insert">50</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">       7.7.7.  Example: Retrieval of events by PARTSTAT  . . . . . .  5<span class="delete">1</span></td><td> </td><td class="rblock">       7.7.7.  Example: Retrieval of events by PARTSTAT  . . . . . .  5<span class="insert">2</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">       7.7.8.  Example: Retrieval of events only . . . . . . . . . .  5<span class="delete">3</span></td><td> </td><td class="rblock">       7.7.8.  Example: Retrieval of events only . . . . . . . . . .  5<span class="insert">4</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">       7.7.9.  Example: Retrieval of all pending to-dos  . . . . . .  5<span class="delete">7</span></td><td> </td><td class="rblock">       7.7.9.  Example: Retrieval of all pending to-dos  . . . . . .  5<span class="insert">8</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">       7.7.10. Example: Attempt to query unsupported property  . . .  6<span class="delete">0</span></td><td> </td><td class="rblock">       7.7.10. Example: Attempt to query unsupported property  . . .  6<span class="insert">1</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     7.8.  CALDAV:calendar-multiget Report . . . . . . . . . . . . .  6<span class="delete">1</span></td><td> </td><td class="rblock">     7.8.  CALDAV:calendar-multiget Report . . . . . . . . . . . . .  6<span class="insert">2</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">       7.8.1.  Example: Successful CALDAV:calendar-multiget Report .  6<span class="delete">2</span></td><td> </td><td class="rblock">       7.8.1.  Example: Successful CALDAV:calendar-multiget Report .  6<span class="insert">3</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     7.9.  CALDAV:free-busy-query Report . . . . . . . . . . . . . .  6<span class="delete">4</span></td><td> </td><td class="rblock">     7.9.  CALDAV:free-busy-query Report . . . . . . . . . . . . . .  6<span class="insert">5</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">       7.9.1.  Example: Successful CALDAV:free-busy-query Report . .  6<span class="delete">6</span></td><td> </td><td class="rblock">       7.9.1.  Example: Successful CALDAV:free-busy-query Report . .  6<span class="insert">7</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   8.  Guidelines  . . . . . . . . . . . . . . . . . . . . . . . . .  6<span class="delete">7</span></td><td> </td><td class="rblock">   8.  Guidelines  . . . . . . . . . . . . . . . . . . . . . . . . .  6<span class="insert">8</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     8.1.  Client-to-client Interoperability . . . . . . . . . . . .  6<span class="delete">7</span></td><td> </td><td class="rblock">     8.1.  Client-to-client Interoperability . . . . . . . . . . . .  6<span class="insert">8</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     8.2.  Synchronization Operations  . . . . . . . . . . . . . . .  6<span class="delete">7</span></td><td> </td><td class="rblock">     8.2.  Synchronization Operations  . . . . . . . . . . . . . . .  6<span class="insert">8</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">       8.2.1.  Use of Reports  . . . . . . . . . . . . . . . . . . .  6<span class="delete">8</span></td><td> </td><td class="rblock">       8.2.1.  Use of Reports  . . . . . . . . . . . . . . . . . . .  6<span class="insert">9</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">         8.2.1.1.  Restrict the Time Range . . . . . . . . . . . . .  6<span class="delete">8</span></td><td> </td><td class="rblock">         8.2.1.1.  Restrict the Time Range . . . . . . . . . . . . .  6<span class="insert">9</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">         8.2.1.2.  Synchronize by Time Range . . . . . . . . . . . .  6<span class="delete">8</span></td><td> </td><td class="rblock">         8.2.1.2.  Synchronize by Time Range . . . . . . . . . . . .  6<span class="insert">9</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">         8.2.1.3.  Synchronization Process . . . . . . . . . . . . .  6<span class="delete">8</span></td><td> </td><td class="rblock">         8.2.1.3.  Synchronization Process . . . . . . . . . . . . .  6<span class="insert">9</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">       8.2.2.  Restrict the Properties Returned  . . . . . . . . . .  7<span class="delete">0</span></td><td> </td><td class="rblock">       8.2.2.  Restrict the Properties Returned  . . . . . . . . . .  7<span class="insert">1</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     8.3.  Use of Locking  . . . . . . . . . . . . . . . . . . . . .  7<span class="delete">0</span></td><td> </td><td class="rblock">     8.3.  Use of Locking  . . . . . . . . . . . . . . . . . . . . .  7<span class="insert">1</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     8.4.  Finding calendars . . . . . . . . . . . . . . . . . . . .  7<span class="delete">1</span></td><td> </td><td class="rblock">     8.4.  Finding calendars . . . . . . . . . . . . . . . . . . . .  7<span class="insert">2</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     8.5.  Storing and Using Attachments . . . . . . . . . . . . . .  7<span class="delete">2</span></td><td> </td><td class="rblock">     8.5.  Storing and Using Attachments . . . . . . . . . . . . . .  7<span class="insert">3</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">       8.5.1.  Inline attachments  . . . . . . . . . . . . . . . . .  7<span class="delete">2</span></td><td> </td><td class="rblock">       8.5.1.  Inline attachments  . . . . . . . . . . . . . . . . .  7<span class="insert">3</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">       8.5.2.  External attachments  . . . . . . . . . . . . . . . .  7<span class="delete">3</span></td><td> </td><td class="rblock">       8.5.2.  External attachments  . . . . . . . . . . . . . . . .  7<span class="insert">4</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     8.6.  Storing and Using Alarms  . . . . . . . . . . . . . . . .  7<span class="delete">4</span></td><td> </td><td class="rblock">     8.6.  Storing and Using Alarms  . . . . . . . . . . . . . . . .  7<span class="insert">5</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   9.  XML Element Definitions . . . . . . . . . . . . . . . . . . .  7<span class="delete">5</span></td><td> </td><td class="rblock">   9.  XML Element Definitions . . . . . . . . . . . . . . . . . . .  7<span class="insert">6</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     9.1.  CALDAV:calendar XML Element . . . . . . . . . . . . . . .  7<span class="delete">5</span></td><td> </td><td class="rblock">     9.1.  CALDAV:calendar XML Element . . . . . . . . . . . . . . .  7<span class="insert">6</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     9.2.  CALDAV:mkcalendar XML Element . . . . . . . . . . . . . .  7<span class="delete">6</span></td><td> </td><td class="rblock">     9.2.  CALDAV:mkcalendar XML Element . . . . . . . . . . . . . .  7<span class="insert">7</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     9.3.  CALDAV:mkcalendar-response XML Element  . . . . . . . . .  7<span class="delete">6</span></td><td> </td><td class="rblock">     9.3.  CALDAV:mkcalendar-response XML Element  . . . . . . . . .  7<span class="insert">7</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     9.4.  CALDAV:calendar-query XML Element . . . . . . . . . . . .  7<span class="delete">6</span></td><td> </td><td class="rblock">     9.4.  CALDAV:calendar-query XML Element . . . . . . . . . . . .  7<span class="insert">7</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     9.5.  CALDAV:calendar-data XML Element  . . . . . . . . . . . .  7<span class="delete">7</span></td><td> </td><td class="rblock">     9.5.  CALDAV:calendar-data XML Element  . . . . . . . . . . . .  7<span class="insert">8</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">       9.5.1.  CALDAV:comp XML Element . . . . . . . . . . . . . . .  7<span class="delete">8</span></td><td> </td><td class="rblock">       9.5.1.  CALDAV:comp XML Element . . . . . . . . . . . . . . .  7<span class="insert">9</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">       9.5.2.  CALDAV:allcomp XML Element  . . . . . . . . . . . . .  <span class="delete">79</span></td><td> </td><td class="rblock">       9.5.2.  CALDAV:allcomp XML Element  . . . . . . . . . . . . .  <span class="insert">80</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">       9.5.3.  CALDAV:allprop XML Element  . . . . . . . . . . . . .  <span class="delete">79</span></td><td> </td><td class="rblock">       9.5.3.  CALDAV:allprop XML Element  . . . . . . . . . . . . .  <span class="insert">80</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">       9.5.4.  CALDAV:prop XML Element . . . . . . . . . . . . . . .  <span class="delete">79</span></td><td> </td><td class="rblock">       9.5.4.  CALDAV:prop XML Element . . . . . . . . . . . . . . .  <span class="insert">80</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">       9.5.5.  CALDAV:expand XML Element . . . . . . . . . . . . . .  8<span class="delete">0</span></td><td> </td><td class="rblock">       9.5.5.  CALDAV:expand XML Element . . . . . . . . . . . . . .  8<span class="insert">1</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">       9.5.6.  CALDAV:limit-recurrence-set XML Element . . . . . . .  8<span class="delete">1</span></td><td> </td><td class="rblock">       9.5.6.  CALDAV:limit-recurrence-set XML Element . . . . . . .  8<span class="insert">2</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">       9.5.7.  CALDAV:limit-freebusy-set XML Element . . . . . . . .  8<span class="delete">2</span></td><td> </td><td class="rblock">       9.5.7.  CALDAV:limit-freebusy-set XML Element . . . . . . . .  8<span class="insert">3</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     9.6.  CALDAV:filter XML Element . . . . . . . . . . . . . . . .  8<span class="delete">2</span></td><td> </td><td class="rblock">     9.6.  CALDAV:filter XML Element . . . . . . . . . . . . . . . .  8<span class="insert">3</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">       9.6.1.  CALDAV:comp-filter XML Element  . . . . . . . . . . .  8<span class="delete">3</span></td><td> </td><td class="rblock">       9.6.1.  CALDAV:comp-filter XML Element  . . . . . . . . . . .  8<span class="insert">4</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">       9.6.2.  CALDAV:prop-filter XML Element  . . . . . . . . . . .  8<span class="delete">4</span></td><td> </td><td class="rblock">       9.6.2.  CALDAV:prop-filter XML Element  . . . . . . . . . . .  8<span class="insert">5</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">       9.6.3.  CALDAV:param-filter XML Element . . . . . . . . . . .  8<span class="delete">4</span></td><td> </td><td class="rblock">       9.6.3.  CALDAV:param-filter XML Element . . . . . . . . . . .  8<span class="insert">5</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">       9.6.4.  CALDAV:is-not-defined XML Element . . . . . . . . . .  8<span class="delete">5</span></td><td> </td><td class="rblock">       9.6.4.  CALDAV:is-not-defined XML Element . . . . . . . . . .  8<span class="insert">6</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">       9.6.5.  CALDAV:text-match XML Element . . . . . . . . . . . .  8<span class="delete">5</span></td><td> </td><td class="rblock">       9.6.5.  CALDAV:text-match XML Element . . . . . . . . . . . .  8<span class="insert">6</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     9.7.  CALDAV:timezone XML Element . . . . . . . . . . . . . . .  8<span class="delete">6</span></td><td> </td><td class="rblock">     9.7.  CALDAV:timezone XML Element . . . . . . . . . . . . . . .  8<span class="insert">7</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     9.8.  CALDAV:time-range XML Element . . . . . . . . . . . . . .  8<span class="delete">7</span></td><td> </td><td class="rblock">     9.8.  CALDAV:time-range XML Element . . . . . . . . . . . . . .  8<span class="insert">8</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     9.9.  CALDAV:calendar-multiget XML Element  . . . . . . . . . .  9<span class="delete">1</span></td><td> </td><td class="rblock">     9.9.  CALDAV:calendar-multiget XML Element  . . . . . . . . . .  9<span class="insert">2</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     9.10. CALDAV:free-busy-query XML Element  . . . . . . . . . . .  9<span class="delete">2</span></td><td> </td><td class="rblock">     9.10. CALDAV:free-busy-query XML Element  . . . . . . . . . . .  9<span class="insert">3</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   10. Internationalization Considerations . . . . . . . . . . . . .  9<span class="delete">2</span></td><td> </td><td class="rblock">   10. Internationalization Considerations . . . . . . . . . . . . .  9<span class="insert">3</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   11. Security Considerations . . . . . . . . . . . . . . . . . . .  9<span class="delete">2</span></td><td> </td><td class="rblock">   11. Security Considerations . . . . . . . . . . . . . . . . . . .  9<span class="insert">3</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   12. IANA Consideration  . . . . . . . . . . . . . . . . . . . . .  9<span class="delete">3</span></td><td> </td><td class="rblock">   12. IANA Consideration  . . . . . . . . . . . . . . . . . . . . .  9<span class="insert">4</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     12.1. Namespace Registration  . . . . . . . . . . . . . . . . .  9<span class="delete">3</span></td><td> </td><td class="rblock">     12.1. Namespace Registration  . . . . . . . . . . . . . . . . .  9<span class="insert">4</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   13. Acknowledgements  . . . . . . . . . . . . . . . . . . . . . .  9<span class="delete">4</span></td><td> </td><td class="rblock">   13. Acknowledgements  . . . . . . . . . . . . . . . . . . . . . .  9<span class="insert">5</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   14. References  . . . . . . . . . . . . . . . . . . . . . . . . .  9<span class="delete">4</span></td><td> </td><td class="rblock">   14. References  . . . . . . . . . . . . . . . . . . . . . . . . .  9<span class="insert">5</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     14.1. Normative References  . . . . . . . . . . . . . . . . . .  9<span class="delete">4</span></td><td> </td><td class="rblock">     14.1. Normative References  . . . . . . . . . . . . . . . . . .  9<span class="insert">5</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     14.2. Informative References  . . . . . . . . . . . . . . . . .  9<span class="delete">5</span></td><td> </td><td class="rblock">     14.2. Informative References  . . . . . . . . . . . . . . . . .  9<span class="insert">6</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   Appendix A.  CalDAV Method Privilege Table (Normative)  . . . . .  9<span class="delete">5</span></td><td> </td><td class="rblock">   Appendix A.  CalDAV Method Privilege Table (Normative)  . . . . .  9<span class="insert">6</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   Appendix B.  Calendar collections used in the examples  . . . . .  9<span class="delete">6</span></td><td> </td><td class="rblock">   Appendix B.  Calendar collections used in the examples  . . . . .  9<span class="insert">7</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Appendix C.  Changes (to be removed prior to publication as an</td><td> </td><td class="right">   Appendix C.  Changes (to be removed prior to publication as an</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">                RFC) . . . . . . . . . . . . . . . . . . . . . . . . 10<span class="delete">2</span></td><td> </td><td class="rblock">                RFC) . . . . . . . . . . . . . . . . . . . . . . . . 10<span class="insert">3</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     C.1.  Changes in -13  . . . . . . . . . . . . . . . . . . . . . 10<span class="delete">2</span></td><td> </td><td class="rblock">     C.1.  Changes in -13  . . . . . . . . . . . . . . . . . . . . . 10<span class="insert">3</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     C.2.  Changes in -12  . . . . . . . . . . . . . . . . . . . . . 10<span class="delete">3</span></td><td> </td><td class="rblock">     C.2.  Changes in -12  . . . . . . . . . . . . . . . . . . . . . 10<span class="insert">4</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     C.3.  Changes in -11  . . . . . . . . . . . . . . . . . . . . . 10<span class="delete">3</span></td><td> </td><td class="rblock">     C.3.  Changes in -11  . . . . . . . . . . . . . . . . . . . . . 10<span class="insert">4</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     C.4.  Changes in -10  . . . . . . . . . . . . . . . . . . . . . 10<span class="delete">4</span></td><td> </td><td class="rblock">     C.4.  Changes in -10  . . . . . . . . . . . . . . . . . . . . . 10<span class="insert">5</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     C.5.  Changes in -09  . . . . . . . . . . . . . . . . . . . . . 10<span class="delete">5</span></td><td> </td><td class="rblock">     C.5.  Changes in -09  . . . . . . . . . . . . . . . . . . . . . 10<span class="insert">6</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     C.6.  Changes in -08  . . . . . . . . . . . . . . . . . . . . . 10<span class="delete">6</span></td><td> </td><td class="rblock">     C.6.  Changes in -08  . . . . . . . . . . . . . . . . . . . . . 10<span class="insert">7</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     C.7.  Changes in -07  . . . . . . . . . . . . . . . . . . . . . 10<span class="delete">7</span></td><td> </td><td class="rblock">     C.7.  Changes in -07  . . . . . . . . . . . . . . . . . . . . . 10<span class="insert">8</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     C.8.  Changes in -06  . . . . . . . . . . . . . . . . . . . . . 10<span class="delete">8</span></td><td> </td><td class="rblock">     C.8.  Changes in -06  . . . . . . . . . . . . . . . . . . . . . 10<span class="insert">9</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     C.9.  Changes in -05  . . . . . . . . . . . . . . . . . . . . . 10<span class="delete">8</span></td><td> </td><td class="rblock">     C.9.  Changes in -05  . . . . . . . . . . . . . . . . . . . . . 10<span class="insert">9</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     C.10. Changes in -04  . . . . . . . . . . . . . . . . . . . . . 1<span class="delete">09</span></td><td> </td><td class="rblock">     C.10. Changes in -04  . . . . . . . . . . . . . . . . . . . . . 1<span class="insert">10</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     C.11. Changes in -03  . . . . . . . . . . . . . . . . . . . . . 11<span class="delete">0</span></td><td> </td><td class="rblock">     C.11. Changes in -03  . . . . . . . . . . . . . . . . . . . . . 11<span class="insert">1</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     C.12. Changes in -02  . . . . . . . . . . . . . . . . . . . . . 11<span class="delete">0</span></td><td> </td><td class="rblock">     C.12. Changes in -02  . . . . . . . . . . . . . . . . . . . . . 11<span class="insert">1</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     C.13. Changes in -01  . . . . . . . . . . . . . . . . . . . . . 11<span class="delete">0</span></td><td> </td><td class="rblock">     C.13. Changes in -01  . . . . . . . . . . . . . . . . . . . . . 11<span class="insert">1</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . . 11<span class="delete">0</span></td><td> </td><td class="rblock">   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . . 11<span class="insert">1</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   Intellectual Property and Copyright Statements  . . . . . . . . . 11<span class="delete">2</span></td><td> </td><td class="rblock">   Intellectual Property and Copyright Statements  . . . . . . . . . 11<span class="insert">3</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">1.  Introduction</td><td> </td><td class="right">1.  Introduction</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   The concept of using HTTP [RFC2616] and WebDAV</td><td> </td><td class="right">   The concept of using HTTP [RFC2616] and WebDAV</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   [I-D.ietf-webdav-rfc2518bis] as a basis for a calendar access</td><td> </td><td class="right">   [I-D.ietf-webdav-rfc2518bis] as a basis for a calendar access</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   protocol is by no means a new concept: it was discussed in the IETF</td><td> </td><td class="right">   protocol is by no means a new concept: it was discussed in the IETF</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   CALSCH working group as early as 1997 or 1998.  Several companies</td><td> </td><td class="right">   CALSCH working group as early as 1997 or 1998.  Several companies</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   have implemented calendar access protocols using HTTP to upload and</td><td> </td><td class="right">   have implemented calendar access protocols using HTTP to upload and</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   download iCalendar [RFC2445] objects, and using WebDAV to get</td><td> </td><td class="right">   download iCalendar [RFC2445] objects, and using WebDAV to get</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   listings of resources.  However, those implementations do not</td><td> </td><td class="right">   listings of resources.  However, those implementations do not</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   interoperate because there are many small and big decisions to be</td><td> </td><td class="right">   interoperate because there are many small and big decisions to be</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   made in how to model calendaring data as WebDAV resources, as well as</td><td> </td><td class="right">   made in how to model calendaring data as WebDAV resources, as well as</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   how to implement required features that aren't already part of</td><td> </td><td class="right">   how to implement required features that aren't already part of</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   WebDAV.  This document proposes a way to model calendar data in</td><td> </td><td class="right">   WebDAV.  This document proposes a way to model calendar data in</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   WebDAV, with additional features to make an interoperable calendar</td><td> </td><td class="right">   WebDAV, with additional features to make an interoperable calendar</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   access protocol.</td><td> </td><td class="right">   access protocol.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Discussion of this specification is taking place on the mailing list</td><td> </td><td class="right">   Discussion of this specification is taking place on the mailing list</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   &lt;http://lists.osafoundation.org/mailman/listinfo/ietf-caldav&gt;.</td><td> </td><td class="right">   &lt;http://lists.osafoundation.org/mailman/listinfo/ietf-caldav&gt;.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"><span class="insert">   [[anchor2: Clarify that this paragraph should be removed upon</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"><span class="insert">   publication --reschke]]</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">1.1.  Notational Conventions</td><td> </td><td class="right">1.1.  Notational Conventions</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",</td><td> </td><td class="right">   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this</td><td> </td><td class="right">   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   document are to be interpreted as described in [RFC2119].</td><td> </td><td class="right">   document are to be interpreted as described in [RFC2119].</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   The term "protected" is used in the Conformance field of property</td><td> </td><td class="right">   The term "protected" is used in the Conformance field of property</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   definitions as defined in Section 1.4.2 of [RFC3253].</td><td> </td><td class="right">   definitions as defined in Section 1.4.2 of [RFC3253].</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="diff-2" /><small>skipping to change at</small><em> page 6, line 4</em></th><th> </th><th><a name="diff-2" /><small>skipping to change at</small><em> page 6, line 6</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   The namespace "urn:ietf:params:xml:ns:caldav" is reserved for the XML</td><td> </td><td class="right">   The namespace "urn:ietf:params:xml:ns:caldav" is reserved for the XML</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   elements defined in this specification, its revisions, and related</td><td> </td><td class="right">   elements defined in this specification, its revisions, and related</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   CalDAV specifications.  XML elements defined by individual</td><td> </td><td class="right">   CalDAV specifications.  XML elements defined by individual</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   implementations MUST NOT use the "urn:ietf:params:xml:ns:caldav"</td><td> </td><td class="right">   implementations MUST NOT use the "urn:ietf:params:xml:ns:caldav"</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   namespace, and instead should use a namespace that they control.</td><td> </td><td class="right">   namespace, and instead should use a namespace that they control.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   The XML declarations used in this document do not include namespace</td><td> </td><td class="right">   The XML declarations used in this document do not include namespace</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   information.  Thus, implementers MUST NOT use these declarations as</td><td> </td><td class="right">   information.  Thus, implementers MUST NOT use these declarations as</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   the only way to create valid CalDAV properties or to validate CalDAV</td><td> </td><td class="right">   the only way to create valid CalDAV properties or to validate CalDAV</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   XML element type. <span class="delete"> Some of the declarations refer to XML element</span>s</td><td> </td><td class="rblock">   XML element type. <span class="insert">[[anchor5: "...MUST NOT use these declarations a</span>s</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   <span class="delete">defined by WebDAV [I-D.ietf-webdav-rfc2518bis] which use the "DAV:"</span></td><td> </td><td class="rblock">   <span class="insert">the only way..." is extremly hard to understand; the presence of</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   <span class="delete">namespace.  Wherever such XML elements appear, they are explicitly</span></td><td> </td><td class="rblock">   <span class="insert">RFC2119 keywords make things worse in that the reader is confused to</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   <span class="delete">prefixed with "DAV:" to avoid confusion.</span></td><td> </td><td class="rblock">   <span class="insert">believe that a normative statement is being made.  As far as I can</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"><span class="insert">   tell, all this wants to say is that the missing namespace needs to be</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"><span class="insert">   taken into account.  Please clarify. --reschke]] Some of the</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"><span class="insert">   declarations refer to XML elements defined by WebDAV</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"><span class="insert">   [I-D.ietf-webdav-rfc2518bis] which use the "DAV:" namespace.</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"><span class="insert">   Wherever such XML elements appear, they are explicitly prefixed with</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"><span class="insert">   "DAV:" to avoid confusion.</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Also note that some CalDAV XML element names are identical to WebDAV</td><td> </td><td class="right">   Also note that some CalDAV XML element names are identical to WebDAV</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   XML element names, though their namespace differs.  Care must be</td><td> </td><td class="right">   XML element names, though their namespace differs.  Care must be</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   taken not to confuse the two sets of names.</td><td> </td><td class="right">   taken not to confuse the two sets of names.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Processing of XML by CalDAV clients and servers MUST follow the rules</td><td> </td><td class="right">   Processing of XML by CalDAV clients and servers MUST follow the rules</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   described in [I-D.ietf-webdav-rfc2518bis], in particular Sections 8.2</td><td> </td><td class="right">   described in [I-D.ietf-webdav-rfc2518bis], in particular Sections 8.2</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   and 17, and Appendix A of that specification.</td><td> </td><td class="right">   and 17, and Appendix A of that specification.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">2.  Requirements Overview</td><td> </td><td class="right">2.  Requirements Overview</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="diff-3" /><small>skipping to change at</small><em> page 6, line 32</em></th><th> </th><th><a name="diff-3" /><small>skipping to change at</small><em> page 6, line 40</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   o  MUST support iCalendar [RFC2445] as a media type for calendar</td><td> </td><td class="right">   o  MUST support iCalendar [RFC2445] as a media type for calendar</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      object resource format;</td><td> </td><td class="right">      object resource format;</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   o  MUST support WebDAV Class 1 and Class 3</td><td> </td><td class="right">   o  MUST support WebDAV Class 1 and Class 3</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      [I-D.ietf-webdav-rfc2518bis];</td><td> </td><td class="right">      [I-D.ietf-webdav-rfc2518bis];</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   o  MUST support WebDAV ACL [RFC3744] with the additional privilege</td><td> </td><td class="right">   o  MUST support WebDAV ACL [RFC3744] with the additional privilege</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      defined in Section 6.1 of this document;</td><td> </td><td class="right">      defined in Section 6.1 of this document;</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   o  MUST support transport over TLS [RFC2246] as defined in [RFC2818]</td><td> </td><td class="right">   o  MUST support transport over TLS [RFC2246] as defined in [RFC2818]</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">      (note that [RFC2246] has been obsoleted by [RFC4346]);<span class="delete"></span></td><td> </td><td class="rblock">      (note that [RFC2246] has been obsoleted by [RFC4346]);<span class="insert"> [[anchor6:</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"><span class="insert">      I assume that the down reference to RFC2818 (informational RFC) is</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"><span class="insert">      intended; but what about the stuff with RFC2246?  Why doesn't spec</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"><span class="insert">      refer to RFC4346 instead? --reschke]]</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   o  MUST support ETags [RFC2616] with additional requirements</td><td> </td><td class="right">   o  MUST support ETags [RFC2616] with additional requirements</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      specified in Section 5.3.4 of this document;</td><td> </td><td class="right">      specified in Section 5.3.4 of this document;</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   o  MUST support all calendaring REPORTs defined in Section 7 of this</td><td> </td><td class="right">   o  MUST support all calendaring REPORTs defined in Section 7 of this</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      document; and</td><td> </td><td class="right">      document; and</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">                                                                         </span></td><td> </td><td class="rblock"><span class="insert"></span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   o  MUST advertise support on all calendar collections and calendar</td><td> </td><td class="right">   o  MUST advertise support on all calendar collections and calendar</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      object resources for the calendaring REPORTs in the DAV:supported-</td><td> </td><td class="right">      object resources for the calendaring REPORTs in the DAV:supported-</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      report-set property as defined in Versioning Extensions to WebDAV</td><td> </td><td class="right">      report-set property as defined in Versioning Extensions to WebDAV</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      [RFC3253].</td><td> </td><td class="right">      [RFC3253].</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   In addition, a server:</td><td> </td><td class="right">   In addition, a server:</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   o  SHOULD support the MKCALENDAR method defined in Section 5.3.1 of</td><td> </td><td class="right">   o  SHOULD support the MKCALENDAR method defined in Section 5.3.1 of</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      this document.</td><td> </td><td class="right">      this document.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="diff-4" /><small>skipping to change at</small><em> page 8, line 4</em></th><th> </th><th><a name="diff-4" /><small>skipping to change at</small><em> page 8, line 15</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   /home/lisa/calendars/ as well as in /home/bernard/calendars/, and</td><td> </td><td class="right">   /home/lisa/calendars/ as well as in /home/bernard/calendars/, and</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   non-calendar data in /home/lisa/contacts/).  Or, it might mean that</td><td> </td><td class="right">   non-calendar data in /home/lisa/contacts/).  Or, it might mean that</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   calendar data can be found only in certain sections of the repository</td><td> </td><td class="right">   calendar data can be found only in certain sections of the repository</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   (e.g., /calendar/).  Calendaring features are only required in the</td><td> </td><td class="right">   (e.g., /calendar/).  Calendaring features are only required in the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   repository sections that are or contain calendar object resources.</td><td> </td><td class="right">   repository sections that are or contain calendar object resources.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   So a repository confining calendar data to the /calendar/ collection</td><td> </td><td class="right">   So a repository confining calendar data to the /calendar/ collection</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   would only need to support the CalDAV required features within that</td><td> </td><td class="right">   would only need to support the CalDAV required features within that</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   collection.</td><td> </td><td class="right">   collection.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   The CalDAV server or repository is the canonical location for</td><td> </td><td class="right">   The CalDAV server or repository is the canonical location for</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   calendar data and state information. <span class="delete"> Both CalDAV servers and clients</span></td><td> </td><td class="rblock">   calendar data and state information. <span class="insert">[[anchor8: "server or</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   <span class="delete">MUST ensure that the data is consistent and compliant.  Clients may</span></td><td> </td><td class="rblock">   <span class="insert">repository": I think it would be good if the spec would choose one</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   <span class="delete">submit requests to change data or download data.  Clients may store</span></td><td> </td><td class="rblock">   <span class="insert">term and stick with it --reschke]] Both CalDAV servers and clients</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   <span class="delete">calendar objects offline and attempt to synchronize at a later time.</span></td><td> </td><td class="rblock">   <span class="insert">MUST ensure that the data is consistent and compliant. [[anchor9:</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   <span class="delete">However, clients MUST be prepared for calendar data on the server to</span></td><td> </td><td class="rblock">   <span class="insert">What does it exactly mean for the data to be "consistent" and</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   <span class="delete">change between the time of last synchronization and when attempting</span></td><td> </td><td class="rblock">   <span class="insert">"compliant"?  If there's no exact definition for that then the "MUST"</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   <span class="delete">an update, as calendar collections may be shared and accessible via</span></td><td> </td><td class="rblock">   <span class="insert">should go --reschke]] Clients may submit requests to change data or</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   <span class="delete">multiple clients.  Entity tags and other features make this possible.</span></td><td> </td><td class="rblock">   <span class="insert">download data.  Clients may store calendar objects offline and</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"><span class="insert">   attempt to synchronize at a later time.  However, clients MUST be</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"><span class="insert">   prepared for calendar data on the server to change between the time</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"><span class="insert">   of last synchronization and when attempting an update, as calendar</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"><span class="insert">   collections may be shared and accessible via multiple clients.</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"><span class="insert">   Entity tags and other features make this possible.</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">3.2.  Recurrence and the Data Model</td><td> </td><td class="right">3.2.  Recurrence and the Data Model</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Recurrence is an important part of the data model because it governs</td><td> </td><td class="right">   Recurrence is an important part of the data model because it governs</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   how many resources are expected to exist.  This specification models</td><td> </td><td class="right">   how many resources are expected to exist.  This specification models</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   a recurring calendar component and its recurrence exceptions as a</td><td> </td><td class="right">   a recurring calendar component and its recurrence exceptions as a</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   single resource.  In this model, recurrence rules, recurrence dates,</td><td> </td><td class="right">   single resource.  In this model, recurrence rules, recurrence dates,</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   exception rules, and exception dates are all part of the data in a</td><td> </td><td class="right">   exception rules, and exception dates are all part of the data in a</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   single calendar object resource.  This model avoids problems of</td><td> </td><td class="right">   single calendar object resource.  This model avoids problems of</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   limiting how many recurrence instances to store in the repository,</td><td> </td><td class="right">   limiting how many recurrence instances to store in the repository,</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="diff-5" /><small>skipping to change at</small><em> page 15, line 49</em></th><th> </th><th><a name="diff-5" /><small>skipping to change at</small><em> page 16, line 28</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Description:  The CALDAV:supported-calendar-data property is used to</td><td> </td><td class="right">   Description:  The CALDAV:supported-calendar-data property is used to</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      specify the media type supported for the calendar object resources</td><td> </td><td class="right">      specify the media type supported for the calendar object resources</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      contained in a given calendar collection (e.g., iCalendar version</td><td> </td><td class="right">      contained in a given calendar collection (e.g., iCalendar version</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      2.0).  Any attempt by the client to store calendar object</td><td> </td><td class="right">      2.0).  Any attempt by the client to store calendar object</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      resources with a media type not listed in this property MUST</td><td> </td><td class="right">      resources with a media type not listed in this property MUST</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      result in an error, with the CALDAV:supported-calendar-data</td><td> </td><td class="right">      result in an error, with the CALDAV:supported-calendar-data</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      precondition (Section 5.3.2.1) being violated.  In the absence of</td><td> </td><td class="right">      precondition (Section 5.3.2.1) being violated.  In the absence of</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      this property the server MUST accept data with the media type</td><td> </td><td class="right">      this property the server MUST accept data with the media type</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      "text/calendar" and iCalendar version 2.0, and clients can assume</td><td> </td><td class="right">      "text/calendar" and iCalendar version 2.0, and clients can assume</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">      that.<span class="delete"></span></td><td> </td><td class="rblock">      that.<span class="insert"> [[anchor15: What about other types in this case? --reschke]]</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Definition:</td><td> </td><td class="right">   Definition:</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">         &lt;!ELEMENT supported-calendar-data (calendar-data*)&gt;</td><td> </td><td class="right">         &lt;!ELEMENT supported-calendar-data (calendar-data*)&gt;</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Example:</td><td> </td><td class="right">   Example:</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">         &lt;C:supported-calendar-data</td><td> </td><td class="right">         &lt;C:supported-calendar-data</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">            xmlns:C="urn:ietf:params:xml:ns:caldav"&gt;</td><td> </td><td class="right">            xmlns:C="urn:ietf:params:xml:ns:caldav"&gt;</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">           &lt;C:calendar-data content-type="text/calendar" version="2.0"/&gt;</td><td> </td><td class="right">           &lt;C:calendar-data content-type="text/calendar" version="2.0"/&gt;</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="diff-6" /><small>skipping to change at</small><em> page 21, line 44</em></th><th> </th><th><a name="diff-6" /><small>skipping to change at</small><em> page 22, line 5</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   request, or alternatively issue a PROPPATCH request to change the</td><td> </td><td class="right">   request, or alternatively issue a PROPPATCH request to change the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   DAV:displayname property to the appropriate value immediately after</td><td> </td><td class="right">   DAV:displayname property to the appropriate value immediately after</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   issuing the MKCALENDAR request.  Clients SHOULD NOT set the DAV:</td><td> </td><td class="right">   issuing the MKCALENDAR request.  Clients SHOULD NOT set the DAV:</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   displayname property to be the same as any other calendar collection</td><td> </td><td class="right">   displayname property to be the same as any other calendar collection</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   at the same URI "level".  When displaying calendar collections to</td><td> </td><td class="right">   at the same URI "level".  When displaying calendar collections to</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   users, clients SHOULD check the DAV:displayname property and use that</td><td> </td><td class="right">   users, clients SHOULD check the DAV:displayname property and use that</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   value as the name of the calendar.  In the event that the DAV:</td><td> </td><td class="right">   value as the name of the calendar.  In the event that the DAV:</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   displayname property is empty, the client MAY use the last part of</td><td> </td><td class="right">   displayname property is empty, the client MAY use the last part of</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   the calendar collection URI as the name, however that path segment</td><td> </td><td class="right">   the calendar collection URI as the name, however that path segment</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   may be "opaque" and not represent any meaningful human-readable text.</td><td> </td><td class="right">   may be "opaque" and not represent any meaningful human-readable text.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"><span class="insert">   [[anchor17: This seems to profile DAV:displayname as defined by</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"><span class="insert">   RFC2518bis.  Furthermore it's not clear what happens when the client</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"><span class="insert">   violates the constraint. --reschke]]</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   If a MKCALENDAR request fails, the server state preceding the request</td><td> </td><td class="right">   If a MKCALENDAR request fails, the server state preceding the request</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   MUST be restored.</td><td> </td><td class="right">   MUST be restored.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Marshalling:</td><td> </td><td class="right">   Marshalling:</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      If a request body is included, it MUST be a CALDAV:mkcalendar XML</td><td> </td><td class="right">      If a request body is included, it MUST be a CALDAV:mkcalendar XML</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      element.  Instruction processing MUST occur in the order</td><td> </td><td class="right">      element.  Instruction processing MUST occur in the order</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      instructions are received (i.e., from top to bottom).</td><td> </td><td class="right">      instructions are received (i.e., from top to bottom).</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">                                                                         </span></td><td> </td><td class="rblock"><span class="insert"></span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      Instructions MUST either all be executed or none executed.  Thus</td><td> </td><td class="right">      Instructions MUST either all be executed or none executed.  Thus</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      if any error occurs during processing, all executed instructions</td><td> </td><td class="right">      if any error occurs during processing, all executed instructions</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      MUST be undone and a proper error result returned.  Instruction</td><td> </td><td class="right">      MUST be undone and a proper error result returned.  Instruction</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      processing details can be found in the definition of the DAV:set</td><td> </td><td class="right">      processing details can be found in the definition of the DAV:set</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      instruction in Section 14.26 of [I-D.ietf-webdav-rfc2518bis].</td><td> </td><td class="right">      instruction in Section 14.26 of [I-D.ietf-webdav-rfc2518bis].</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">         &lt;!ELEMENT mkcalendar (DAV:set)&gt;</td><td> </td><td class="right">         &lt;!ELEMENT mkcalendar (DAV:set)&gt;</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      If a response body for a successful request is included, it MUST</td><td> </td><td class="right">      If a response body for a successful request is included, it MUST</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      be a CALDAV:mkcalendar-response XML element.</td><td> </td><td class="right">      be a CALDAV:mkcalendar-response XML element.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="diff-7" /><small>skipping to change at</small><em> page 29, line 32</em></th><th> </th><th><a name="diff-7" /><small>skipping to change at</small><em> page 30, line 32</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   know that if they are equal, then the calendar object resource on the</td><td> </td><td class="right">   know that if they are equal, then the calendar object resource on the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   server has not been changed.</td><td> </td><td class="right">   server has not been changed.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   In the case where the data stored by a server as a result of a PUT</td><td> </td><td class="right">   In the case where the data stored by a server as a result of a PUT</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   request is not equivalent by octet equality to the submitted calendar</td><td> </td><td class="right">   request is not equivalent by octet equality to the submitted calendar</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   object resource, the behavior of the ETag response header is not</td><td> </td><td class="right">   object resource, the behavior of the ETag response header is not</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   specified here, with the exception that a strong entity tag MUST NOT</td><td> </td><td class="right">   specified here, with the exception that a strong entity tag MUST NOT</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   be returned in the response.  As a result, clients may need to</td><td> </td><td class="right">   be returned in the response.  As a result, clients may need to</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   retrieve the modified calendar object resource (and ETag) as a basis</td><td> </td><td class="right">   retrieve the modified calendar object resource (and ETag) as a basis</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   for further changes, rather than use the calendar object resource it</td><td> </td><td class="right">   for further changes, rather than use the calendar object resource it</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   had sent with the PUT request.<span class="delete"></span></td><td> </td><td class="rblock">   had sent with the PUT request.<span class="insert"> [[anchor22: See comments on ietf-</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"><span class="insert">   discuss mailing list. --reschke]]</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">6.  Calendaring Access Control</td><td> </td><td class="right">6.  Calendaring Access Control</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">6.1.  Calendaring Privilege</td><td> </td><td class="right">6.1.  Calendaring Privilege</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   CalDAV servers MUST support and adhere to the requirements of WebDAV</td><td> </td><td class="right">   CalDAV servers MUST support and adhere to the requirements of WebDAV</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   ACL [RFC3744].  WebDAV ACL provides a framework for an extensible set</td><td> </td><td class="right">   ACL [RFC3744].  WebDAV ACL provides a framework for an extensible set</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   of privileges that can be applied to WebDAV collections and ordinary</td><td> </td><td class="right">   of privileges that can be applied to WebDAV collections and ordinary</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   resources.  CalDAV servers MUST also support the calendaring</td><td> </td><td class="right">   resources.  CalDAV servers MUST also support the calendaring</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   privilege defined in this section.</td><td> </td><td class="right">   privilege defined in this section.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="diff-8" /><small>skipping to change at</small><em> page 30, line 42</em></th><th> </th><th><a name="diff-8" /><small>skipping to change at</small><em> page 31, line 42</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Namespace:  urn:ietf:params:xml:ns:caldav</td><td> </td><td class="right">   Namespace:  urn:ietf:params:xml:ns:caldav</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Purpose:  Identifies the URL of any WebDAV collections that contain</td><td> </td><td class="right">   Purpose:  Identifies the URL of any WebDAV collections that contain</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      calendar collections owned by the associated principal resource.</td><td> </td><td class="right">      calendar collections owned by the associated principal resource.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Conformance:  This property MAY be defined in a principal resource.</td><td> </td><td class="right">   Conformance:  This property MAY be defined in a principal resource.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      If defined, it MAY be protected and SHOULD NOT be returned by a</td><td> </td><td class="right">      If defined, it MAY be protected and SHOULD NOT be returned by a</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      PROPFIND DAV:allprop request (as defined in Section 14.2 of</td><td> </td><td class="right">      PROPFIND DAV:allprop request (as defined in Section 14.2 of</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      [I-D.ietf-webdav-rfc2518bis]).  Support for this property is</td><td> </td><td class="right">      [I-D.ietf-webdav-rfc2518bis]).  Support for this property is</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">      RECOMMENDED.<span class="delete"></span></td><td> </td><td class="rblock">      RECOMMENDED.<span class="insert"> [[anchor24: Doesn't compute.  Is this a MAY</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"><span class="insert">      (OPTIONAL) or a SHOULD (RECOMMENDED)? --reschke]]</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Description:  The CALDAV:calendar-home-set property is meant to allow</td><td> </td><td class="right">   Description:  The CALDAV:calendar-home-set property is meant to allow</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      users to easily find the calendar collections owned by the</td><td> </td><td class="right">      users to easily find the calendar collections owned by the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      principal.  Typically, users will group all the calendar</td><td> </td><td class="right">      principal.  Typically, users will group all the calendar</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      collections that they own under a common collection.  This</td><td> </td><td class="right">      collections that they own under a common collection.  This</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      property specifies the URL of collections that either are calendar</td><td> </td><td class="right">      property specifies the URL of collections that either are calendar</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      collections or ordinary collections that have child or descendant</td><td> </td><td class="right">      collections or ordinary collections that have child or descendant</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      calendar collections owned by the principal.</td><td> </td><td class="right">      calendar collections owned by the principal.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Definition:</td><td> </td><td class="right">   Definition:</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="diff-9" /><small>skipping to change at</small><em> page 33, line 22</em></th><th> </th><th><a name="diff-9" /><small>skipping to change at</small><em> page 34, line 27</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   components.  The server MUST expand recurring components to determine</td><td> </td><td class="right">   components.  The server MUST expand recurring components to determine</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   whether any recurrence instances overlap the specified time range.</td><td> </td><td class="right">   whether any recurrence instances overlap the specified time range.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   If one or more recurrence instances overlap the time range, then the</td><td> </td><td class="right">   If one or more recurrence instances overlap the time range, then the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   calendar object resource matches the filter element.</td><td> </td><td class="right">   calendar object resource matches the filter element.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">7.5.  Partial Retrieval</td><td> </td><td class="right">7.5.  Partial Retrieval</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Some calendaring REPORTs defined in this document allow partial</td><td> </td><td class="right">   Some calendaring REPORTs defined in this document allow partial</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   retrieval of calendar object resources.  A CalDAV client MAY specify</td><td> </td><td class="right">   retrieval of calendar object resources.  A CalDAV client MAY specify</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   what information to return in the body of a calendaring REPORT</td><td> </td><td class="right">   what information to return in the body of a calendaring REPORT</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   request.<span class="delete"></span></td><td> </td><td class="rblock">   request.<span class="insert"> [[anchor29: Why does this simple statement require RFC2219</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"><span class="insert">   terminology?  Please don't over-use it.  In particular, please check</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"><span class="insert">   that all "MAY" requirements really are needed for the purposes</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"><span class="insert">   outlined in RFC2219. --reschke]]</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   A CalDAV client MAY request particular WebDAV property values, all</td><td> </td><td class="right">   A CalDAV client MAY request particular WebDAV property values, all</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   WebDAV property values, or a list of the names of the resource's</td><td> </td><td class="right">   WebDAV property values, or a list of the names of the resource's</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   WebDAV properties.  A CalDAV client MAY also request calendar data to</td><td> </td><td class="right">   WebDAV properties.  A CalDAV client MAY also request calendar data to</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   be returned and whether all calendar components and properties should</td><td> </td><td class="right">   be returned and whether all calendar components and properties should</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   be returned or only particular ones.  See CALDAV:calendar-data in</td><td> </td><td class="right">   be returned or only particular ones.  See CALDAV:calendar-data in</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Section 9.5.</td><td> </td><td class="right">   Section 9.5.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   By default, the returned calendar data will include the component</td><td> </td><td class="right">   By default, the returned calendar data will include the component</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   that defines the recurrence set, referred to as the "master</td><td> </td><td class="right">   that defines the recurrence set, referred to as the "master</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="diff-10" /><small>skipping to change at</small><em> page 49, line 47</em></th><th> </th><th><a name="diff-10" /><small>skipping to change at</small><em> page 50, line 47</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">         &lt;/D:prop&gt;</td><td> </td><td class="right">         &lt;/D:prop&gt;</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">         &lt;D:status&gt;HTTP/1.1 200 OK&lt;/D:status&gt;</td><td> </td><td class="right">         &lt;D:status&gt;HTTP/1.1 200 OK&lt;/D:status&gt;</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">       &lt;/D:propstat&gt;</td><td> </td><td class="right">       &lt;/D:propstat&gt;</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">     &lt;/D:response&gt;</td><td> </td><td class="right">     &lt;/D:response&gt;</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   &lt;/D:multistatus&gt;</td><td> </td><td class="right">   &lt;/D:multistatus&gt;</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">7.7.6.  Example: Retrieval of event by UID</td><td> </td><td class="right">7.7.6.  Example: Retrieval of event by UID</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   In this example, the client requests the server to return the VEVENT</td><td> </td><td class="right">   In this example, the client requests the server to return the VEVENT</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   component that has the UID property set to</td><td> </td><td class="right">   component that has the UID property set to</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   "[email-masked]".<span class="delete"></span></td><td> </td><td class="rblock">   "[email-masked]".<span class="insert"> [[anchor37: Is whitespace</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   <span class="delete">                                                                      </span></td><td> </td><td class="rblock">   <span class="insert">significant here?  In which case the example below would be invalid.</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"><span class="insert">   -reschke]]</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   See Appendix B for the calendar data being targeted by this example.</td><td> </td><td class="right">   See Appendix B for the calendar data being targeted by this example.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   &gt;&gt; Request &lt;&lt;</td><td> </td><td class="right">   &gt;&gt; Request &lt;&lt;</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   REPORT /bernard/work/ HTTP/1.1</td><td> </td><td class="right">   REPORT /bernard/work/ HTTP/1.1</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Host: cal.example.com</td><td> </td><td class="right">   Host: cal.example.com</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Depth: 1</td><td> </td><td class="right">   Depth: 1</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Content-Type: application/xml; charset="utf-8"</td><td> </td><td class="right">   Content-Type: application/xml; charset="utf-8"</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Content-Length: xxxx</td><td> </td><td class="right">   Content-Length: xxxx</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="diff-11" /><small>skipping to change at</small><em> page 61, line 39</em></th><th> </th><th><a name="diff-11" /><small>skipping to change at</small><em> page 62, line 39</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Support for the calendar-multiget REPORT is REQUIRED.</td><td> </td><td class="right">   Support for the calendar-multiget REPORT is REQUIRED.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Marshalling:</td><td> </td><td class="right">   Marshalling:</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      The request body MUST be a CALDAV:calendar-multiget XML element</td><td> </td><td class="right">      The request body MUST be a CALDAV:calendar-multiget XML element</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      (see Section 9.9).  If the Request-URI is a collection resource,</td><td> </td><td class="right">      (see Section 9.9).  If the Request-URI is a collection resource,</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      then the DAV:href elements MUST refer to calendar object resources</td><td> </td><td class="right">      then the DAV:href elements MUST refer to calendar object resources</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      within that collection, and they MAY refer to calendar object</td><td> </td><td class="right">      within that collection, and they MAY refer to calendar object</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      resources at any depth within the collection.  As a result the</td><td> </td><td class="right">      resources at any depth within the collection.  As a result the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      "Depth" header MUST be ignored by the server and SHOULD NOT be</td><td> </td><td class="right">      "Depth" header MUST be ignored by the server and SHOULD NOT be</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">      sent by the client. <span class="delete"> If the Request-URI refers to a non-collection</span></td><td> </td><td class="rblock">      sent by the client. <span class="insert">[[anchor42: Bad idea.  Just stick with</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">      <span class="delete">resource, then there MUST be a single DAV:href element that is</span></td><td> </td><td class="rblock">      <span class="insert">RFC3253/RFC3744 terminology (invalid depth values are rejected by</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">      <span class="delete">equivalent to the Request-URI.</span></td><td> </td><td class="rblock">      <span class="insert">the server, not ignored).  This leaves the possibilily to later</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"><span class="insert">      define semantics for these values. --reschke]] If the Request-URI</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"><span class="insert">      refers to a non-collection resource, then there MUST be a single</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"><span class="insert">      DAV:href element that is equivalent to the Request-URI.</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      The response body for a successful request MUST be a DAV:</td><td> </td><td class="right">      The response body for a successful request MUST be a DAV:</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      multistatus XML element.</td><td> </td><td class="right">      multistatus XML element.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      The response body for a successful CALDAV:calendar-multiget REPORT</td><td> </td><td class="right">      The response body for a successful CALDAV:calendar-multiget REPORT</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      request MUST contain a DAV:response element for each calendar</td><td> </td><td class="right">      request MUST contain a DAV:response element for each calendar</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      object resource referenced by the provided set of DAV:href</td><td> </td><td class="right">      object resource referenced by the provided set of DAV:href</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      elements.  Calendar data is being returned in the CALDAV:calendar-</td><td> </td><td class="right">      elements.  Calendar data is being returned in the CALDAV:calendar-</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      data element inside the DAV:prop element.</td><td> </td><td class="right">      data element inside the DAV:prop element.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="diff-12" /><small>skipping to change at</small><em> page 71, line 35</em></th><th> </th><th><a name="diff-12" /><small>skipping to change at</small><em> page 72, line 35</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   CalDAV usage.  This specification does not offer a way through this</td><td> </td><td class="right">   CalDAV usage.  This specification does not offer a way through this</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   other than making the information available in the OPTIONS response</td><td> </td><td class="right">   other than making the information available in the OPTIONS response</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   should this be requested.</td><td> </td><td class="right">   should this be requested.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   For calendar sharing and scheduling use cases, one might wish to find</td><td> </td><td class="right">   For calendar sharing and scheduling use cases, one might wish to find</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   the calendar belonging to another user.  If the other user has a</td><td> </td><td class="right">   the calendar belonging to another user.  If the other user has a</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   calendar in the same repository, that calendar can be found by using</td><td> </td><td class="right">   calendar in the same repository, that calendar can be found by using</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   the principal namespace required by WebDAV ACL support.  For other</td><td> </td><td class="right">   the principal namespace required by WebDAV ACL support.  For other</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   cases, the authors have no universal solution but implementers can</td><td> </td><td class="right">   cases, the authors have no universal solution but implementers can</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   consider whether to use vCard [RFC2426] or LDAP [RFC2251] standards</td><td> </td><td class="right">   consider whether to use vCard [RFC2426] or LDAP [RFC2251] standards</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   together with calendar attributes [RFC2739].<span class="delete"></span></td><td> </td><td class="rblock">   together with calendar attributes [RFC2739].<span class="insert"> [[anchor55: LDAP</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"><span class="insert">   reference is outdated. --reschke]]</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Because CalDAV requires servers to support WebDAV ACL [RFC3744]</td><td> </td><td class="right">   Because CalDAV requires servers to support WebDAV ACL [RFC3744]</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   including principal namespaces, and with the addition of the CALDAV:</td><td> </td><td class="right">   including principal namespaces, and with the addition of the CALDAV:</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   calendar-home-set property, there are a couple options for CalDAV</td><td> </td><td class="right">   calendar-home-set property, there are a couple options for CalDAV</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   clients to find one's own calendar or another user's calendar.</td><td> </td><td class="right">   clients to find one's own calendar or another user's calendar.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   In this case, a DAV:principal-match REPORT is used to find a named</td><td> </td><td class="right">   In this case, a DAV:principal-match REPORT is used to find a named</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   property (the CALDAV:calendar-home-set) on the Principal-URL of the</td><td> </td><td class="right">   property (the CALDAV:calendar-home-set) on the Principal-URL of the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   current user.  Using this, a WebDAV client can learn "who am I" and</td><td> </td><td class="right">   current user.  Using this, a WebDAV client can learn "who am I" and</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   "where are my calendars".  The REPORT request body looks like this:</td><td> </td><td class="right">   "where are my calendars".  The REPORT request body looks like this:</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="diff-13" /><small>skipping to change at</small><em> page 73, line 30</em></th><th> </th><th><a name="diff-13" /><small>skipping to change at</small><em> page 74, line 30</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">8.5.2.  External attachments</td><td> </td><td class="right">8.5.2.  External attachments</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   CalDAV clients SHOULD support downloading of external attachments</td><td> </td><td class="right">   CalDAV clients SHOULD support downloading of external attachments</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   referenced by arbitrary URI schemes, by either processing them</td><td> </td><td class="right">   referenced by arbitrary URI schemes, by either processing them</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   directly, or by passing the attachment URI to a suitable "helper</td><td> </td><td class="right">   directly, or by passing the attachment URI to a suitable "helper</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   application" for processing, if such an application exists.  CalDAV</td><td> </td><td class="right">   application" for processing, if such an application exists.  CalDAV</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   clients MUST support downloading of external attachments referenced</td><td> </td><td class="right">   clients MUST support downloading of external attachments referenced</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   by the "http" URI scheme, and MAY support downloading of external</td><td> </td><td class="right">   by the "http" URI scheme, and MAY support downloading of external</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   attachments referenced by the "https" URI scheme.  An external</td><td> </td><td class="right">   attachments referenced by the "https" URI scheme.  An external</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   attachment could be:<span class="delete"></span></td><td> </td><td class="rblock">   attachment could be:<span class="insert"> [[anchor59: Very confusing: MAY, SHOULD and MUST</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"><span class="insert">   requirements for basically the same thing.  In particular, the MAY</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"><span class="insert">   for "https" is bogus, because the spec just stated that the client</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"><span class="insert">   SHOULD support arbitrary schemes. --reschke]]</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   o  In a collection in the calendar collection containing the calendar</td><td> </td><td class="right">   o  In a collection in the calendar collection containing the calendar</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      object resource;</td><td> </td><td class="right">      object resource;</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   o  Somewhere else in the same repository that hosts the calendar</td><td> </td><td class="right">   o  Somewhere else in the same repository that hosts the calendar</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      collection; or</td><td> </td><td class="right">      collection; or</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   o  On an HTTP or FTP server elsewhere.</td><td> </td><td class="right">   o  On an HTTP or FTP server elsewhere.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   CalDAV servers MAY provide support for child collections in calendar</td><td> </td><td class="right">   CalDAV servers MAY provide support for child collections in calendar</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="diff-14" /><small>skipping to change at</small><em> page 77, line 47</em></th><th> </th><th><a name="diff-14" /><small>skipping to change at</small><em> page 78, line 47</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      calendar-data XML element MAY be invalid per their media type</td><td> </td><td class="right">      calendar-data XML element MAY be invalid per their media type</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      specification if the CALDAV:calendar-data XML element part of the</td><td> </td><td class="right">      specification if the CALDAV:calendar-data XML element part of the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      calendaring REPORT request did not specify required properties</td><td> </td><td class="right">      calendaring REPORT request did not specify required properties</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      (e.g., UID, DTSTAMP, etc.) or specified a CALDAV:prop XML element</td><td> </td><td class="right">      (e.g., UID, DTSTAMP, etc.) or specified a CALDAV:prop XML element</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      with the "novalue" attribute set to "yes".</td><td> </td><td class="right">      with the "novalue" attribute set to "yes".</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Note:  The CALDAV:calendar-data XML element is specified in requests</td><td> </td><td class="right">   Note:  The CALDAV:calendar-data XML element is specified in requests</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      and responses inside the DAV:prop XML element as if it were a</td><td> </td><td class="right">      and responses inside the DAV:prop XML element as if it were a</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      WebDAV property.  However, the CALDAV:calendar-data XML element is</td><td> </td><td class="right">      WebDAV property.  However, the CALDAV:calendar-data XML element is</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      not a WebDAV property and as such it is not returned in PROPFIND</td><td> </td><td class="right">      not a WebDAV property and as such it is not returned in PROPFIND</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">      responses nor used in PROPPATCH requests.<span class="delete"></span></td><td> </td><td class="rblock">      responses nor used in PROPPATCH requests.<span class="insert"> [[anchor62: For this</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">      <span class="delete">                                                                   </span></td><td> </td><td class="rblock">      <span class="insert">reason, I think a syntax where it can't be confused with a</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"><span class="insert">      property whould be better. --reschke]]</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Note:  The iCalendar data embedded within the CALDAV:calendar-data</td><td> </td><td class="right">   Note:  The iCalendar data embedded within the CALDAV:calendar-data</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      XML element MUST follow the standard XML character data encoding</td><td> </td><td class="right">      XML element MUST follow the standard XML character data encoding</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      rules, including use of &amp;lt;, &amp;gt;, &amp;amp; etc entity encoding or</td><td> </td><td class="right">      rules, including use of &amp;lt;, &amp;gt;, &amp;amp; etc entity encoding or</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      the use of a &lt;[!CDATA[ ... ]]&gt; construct.  In the later case the</td><td> </td><td class="right">      the use of a &lt;[!CDATA[ ... ]]&gt; construct.  In the later case the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      iCalendar data cannot contain the character sequence "]]&gt;" which</td><td> </td><td class="right">      iCalendar data cannot contain the character sequence "]]&gt;" which</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      is the end delimiter for the CDATA section.</td><td> </td><td class="right">      is the end delimiter for the CDATA section.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Definition:</td><td> </td><td class="right">   Definition:</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">         &lt;!ELEMENT calendar-data ((comp?, (expand |</td><td> </td><td class="right">         &lt;!ELEMENT calendar-data ((comp?, (expand |</td><td class="lineno" valign="top"></td></tr>

     <tr><td></td><td class="left"></td><td> </td><td class="right"></td><td></td></tr>
     <tr bgcolor="gray"><th colspan="5" align="center"><a name="end">&nbsp;End of changes.&nbsp;</th></tr>
     <tr><td colspan="5" align="center"><br/><small><small><i>This html diff was produced by rfcdiff 1.12, available from <a href="http://www.levkowetz.com/ietf/tools/rfcdiff/">http://www.levkowetz.com/ietf/tools/rfcdiff/</a></i></small></small></td></tr>
   </table>
   </body>
   </html>

--------------030400070702060103000103--

Date: Tue, 25 Jul 2006 17:08:17 -0400
From: "Robert Sayre" <[email-masked]>
To: "Julian Reschke" <[email-masked]>
Subject: Re: [Ietf-caldav] Last Call comment on Etag requirements in draft-dusseault-caldav-12
Cc: Ted Hardie <[email-masked]>, [email-masked], CalDAV DevList <[email-masked]>

On 7/25/06, Julian Reschke <[email-masked]> wrote:
>
> Again, this profiles HTTP in a way that may turn out to be incompatible
> with the way the issue will be resolved in general; also this conflicts
> with ETag requirements in XCAP, which is also under IESG evaluation. By
> all means, please let this issue be clarified in a *single* place and in
> a way consistent for all HTTP resources.

Neither draft obsoletes RFC2616, right? It seems obviously
inappropriate for either draft to redefine ETag. If the protocols need
something HTTP doesn't provide, they can mint a new header name,
rather than base the semantics of the ETag response header on the
results of a previous request. Wouldn't it be easier send "Sync: OK"
or something?

-- 

Robert Sayre

Date: Tue, 25 Jul 2006 22:28:55 +0200
From: Julian Reschke <[email-masked]>
To: Cyrus Daboo <[email-masked]>
Subject: Re: [Ietf-caldav] Last Call comment on Etag requirements	in	draft-dusseault-caldav-12
Cc: Ted Hardie <[email-masked]>, [email-masked], CalDAV DevList <[email-masked]>

Cyrus Daboo schrieb:
> Hi Julian,
> 
> --On June 5, 2006 8:30:25 PM +0200 Julian Reschke 
> <[email-masked]> wrote:
> 
>> I notice that draft-dusseault-caldav-12 now is in IESG Evaluation
>> (<https://datatracker.ietf.org/public/pidtracker.cgi?command=view_id&dTag
>> =11253>).
>>
>> For the record: as far as I can tell, the issue that I raised below is
>> critical (given the fact that we have a separate activity to clarify this
>> in HTTP), and has not been addressed. It's not clear to me whether the
>> client issue it attempts to solve really is important. If it is, there is
>> a simpler way to accomplish this ([1]) that doesn't risk making CalDAV
>> incompatible with other specs extending HTTP (or HTTP itself, for that
>> matter).
> 
> We are planning on addressing this ETag issue in a revision now that 
> last-call is over. Authors are discussing right now.

The new text says 
(<http://greenbytes.de/tech/webdav/draft-dusseault-caldav-13.html#rfc.section.5.3.4.p.2>):

"A response to a GET request targeted at a calendar object resource MUST 
contain an ETag response header field indicating the current value of 
the strong entity tag of the calendar object resource.

Servers SHOULD return a strong entity tag (ETag header) in a PUT 
response when the stored calendar object resource is equivalent by octet 
equality to the calendar object resource submitted in the body of the 
PUT request. This allows clients to reliably use the returned strong 
entity tag for data synchronization purposes. For instance, the client 
can do a PROPFIND request on the stored calendar object resource and 
have the DAV:getetag property returned, and compare that value with the 
strong entity tag it received on the PUT response, and know that if they 
are equal, then the calendar object resource on the server has not been 
changed.

In the case where the data stored by a server as a result of a PUT 
request is not equivalent by octet equality to the submitted calendar 
object resource, the behavior of the ETag response header is not 
specified here, with the exception that a strong entity tag MUST NOT be 
returned in the response. As a result, clients may need to retrieve the 
modified calendar object resource (and ETag) as a basis for further 
changes, rather than use the calendar object resource it had sent with 
the PUT request."

Again, this profiles HTTP in a way that may turn out to be incompatible 
with the way the issue will be resolved in general; also this conflicts 
with ETag requirements in XCAP, which is also under IESG evaluation. By 
all means, please let this issue be clarified in a *single* place and in 
a way consistent for all HTTP resources.

Also note a proposal was made back in April how CalDAV *could* resolve 
the syncing issue without relying on a specific ETag behavior which may 
not be the one a clarification of HTTP yields (see [1]). It would have 
been nice if the authors would have given feedback on why the proposed 
solution doesn't work for them.

Best regards, Julian

[1] 
<http://lists.osafoundation.org/pipermail/ietf-caldav/2006-April/000787.html>

Date: Mon, 03 Jul 2006 08:54:39 -0400
From: Cyrus Daboo <[email-masked]>
To: Adam Laurie <[email-masked]>, [email-masked]
Subject: Re: [Ietf-caldav] What happened to the CalDav website?

Hi Adam,

--On June 29, 2006 12:39:00 PM +0100 Adam Laurie 
<[email-masked]> wrote:

> For the past couple of weeks I've been trying to find a download with no
> joy... All URLS previously mentioned appear to be down:
>
>   http://ietf.cse.ucsc.edu/caldav
>   http://caldav.org/
>   http://www.caldav.org/
>   http://ietf.webdav.org/caldav/
>
> Is there CVS or some other access, or is the distribution site likely to
> come back any time soon?
>
> BTW, please copy me on replies - I'm not subscribed to this list.

The website has moved, but the owner of caldav.org has not updated to 
redirect to the new site.

<http://ietf.osafoundation.org/caldav/home.html>

-- 
Cyrus Daboo