Try out our new RRULE tool for creating RRULE compatible strings.

The CALDAV

free-busy-query REPORT generates a VFREEBUSY component containing free busy information for all the calendar object resources targeted by the request and that have the CALDAV:read-free- busy or DAV:read privilege granted to the current user.

Only VEVENT components without a TRANSP property or with the TRANSP property set to OPAQUE, and VFREEBUSY components SHOULD be considered in generating the free busy time information.

In the case of VEVENT components, the free or busy time type (FBTYPE) of the FREEBUSY properties in the returned VFREEBUSY component SHOULD be derived from the value of the TRANSP and STATUS properties, as outlined in the table below:

   +---------------------------++------------------+
   |          VEVENT           ||    VFREEBUSY     |
   +-------------+-------------++------------------+
   | TRANSP      | STATUS      || FBTYPE           |
   +=============+=============++==================+
   |             | CONFIRMED   || BUSY             |
   |             | (default)   ||                  |
   | OPAQUE      +-------------++------------------+
   | (default)   | CANCELLED   || FREE             |
   |             +-------------++------------------+
   |             | TENTATIVE   || BUSY-TENTATIVE   |
   |             +-------------++------------------+
   |             | x-name      || BUSY or          |
   |             |             || x-name           |
   +-------------+-------------++------------------+
   |             | CONFIRMED   ||                  |
   | TRANSPARENT | CANCELLED   || FREE             |
   |             | TENTATIVE   ||                  |
   |             | x-name      ||                  |
   +-------------+-------------++------------------+

Duplicate busy time periods with the same FBTYPE parameter value SHOULD NOT be specified in the returned VFREEBUSY component. Servers SHOULD coalesce consecutive or overlapping busy time periods of the same type. Busy time periods with different FBTYPE parameter values MAY overlap.

Support for the CALDAV

free-busy-query REPORT is REQUIRED.

Marshalling

The request body MUST be a CALDAV:free-busy-query XML element (see Section 9.11), which MUST contain exactly one CALDAV:time-range XML element, as defined in Section 9.9.

The request MAY include a Depth header. If no Depth header is included, Depth:0 is assumed.

The response body for a successful request MUST be an iCalendar object that contains exactly one VFREEBUSY component that describes the busy time intervals for the calendar object resources containing VEVENT, or VFREEBUSY components that satisfy the Depth value and for which the current user is at least granted the CALDAV:read-free-busy privilege. If no calendar object resources are found to satisfy these conditions, a VFREEBUSY component with no FREEBUSY property MUST be returned. This report only returns busy time information. Free time information can be inferred from the returned busy time information.

If the current user is not granted the CALDAV:read-free-busy or DAV:read privileges on the Request-URI, the CALDAV:free-busy-query REPORT request MUST fail and return a 404 (Not Found) status value. This restriction will prevent users from discovering URLs of resources for which they are only granted the CALDAV:read-free- busy privilege.

The CALDAV

free-busy-query REPORT request can only be run against a collection (either a regular collection or a calendar collection). An attempt to run the report on a calendar object resource MUST fail and return a 403 (Forbidden) status value.

Preconditions

None.

Postconditions

(DAV

number-of-matches-within-limits) calendar object resources must fall within server-specific, predefined limits. For example, this postcondition might fail if the specified CALDAV:time-range would cause an extremely large number of calendar object resources to be considered in computing the response.

This document was automatically converted to XHTML using an RFC to HTML converter with the original text document at the Internet Engineering Task Force web site at ietf.org .  The original text document should be referred to if there are any errors or discrepancies found in this document.

Need to test your iCalendar feeds?

The iCalendar Validator provides developers and testers a method to validate their iCalendar feeds, which can take data from either a URL, file or text snippet and compare it against the RFC 5545 specification.  We believe we have one of the best iCalendar validation tools available on the internet. More information about the validator can be found here.