How can we help you?

REPORT /calendars/:calendarUuid

Product: FeraCalendar Topic: API Versions: Applies to all documented versions Current

Audience: Application developers
Editorial status: Published — Source Validated
Product: FeraCalendar
Classification: partner

REPORT /caldav/calendars/{calendarUuid}

Overview

Authenticated CalDAV report implemented at src/caldav/router.js:35 (controller.report). The adapter parses calendar-query time ranges, multiget href UUIDs, or sync-collection intent and returns authorized events, ETags, and iCalendar in DAV multistatus XML.

Authentication and access

Security scheme: basicAuth

Control Contract
Authentication authenticated
Authorization HTTP Basic credentials are verified by FeraAuth and the resolved principal must have read capability for the selected calendar context.
Licensing The adapter has no separate local product-license middleware; it relies on FeraAuth credential verification and FeraCal calendar-access resolution for the effective instance.
Instance Context Principal and instance routes supply an instance UUID. Calendar routes first resolve the calendar UUID to its owner instance, then verify credentials in that effective context.
Ownership The verified FeraAuth user is resolved to a FeraCal person and calendar role; collection and event access is constrained to calendars for which that principal has the required capability.

Parameters

Name Location Type Required Description
calendarUuid path string (uuid) Yes FeraCal calendarUuid UUID used for CalDAV discovery and authorization.

Request body

CalDAV calendar-query, calendar-multiget, or sync-collection XML document.

application/xml

Schema: string

<?xml version="1.0"?><cal:calendar-query xmlns:d="DAV:" xmlns:cal="urn:ietf:params:xml:ns:caldav"><d:prop><d:getetag/><cal:calendar-data/></d:prop><cal:filter><cal:comp-filter name="VCALENDAR"><cal:comp-filter name="VEVENT"><cal:time-range start="20260901T000000Z" end="20261001T000000Z"/></cal:comp-filter></cal:comp-filter></cal:filter></cal:calendar-query>

text/xml

Schema: string

<?xml version="1.0"?><cal:calendar-multiget xmlns:d="DAV:" xmlns:cal="urn:ietf:params:xml:ns:caldav"><d:prop><d:getetag/><cal:calendar-data/></d:prop><d:href>/caldav/calendars/715c9ebb-0470-11f1-a928-0ed2cd1b87df/715c9ebb-0470-11f1-a928-0ed2cd1b87df.ics</d:href></cal:calendar-multiget>

Example request

cURL

curl --request REPORT \ \
  --url 'https://caldav.feradel.com/caldav/calendars/715c9ebb-0470-11f1-a928-0ed2cd1b87df' \
  --user '$FERA_CALDAV_USERNAME:$FERA_CALDAV_PASSWORD' \
  --header 'content-type: application/xml' \
  --data '<?xml version="1.0"?><cal:calendar-query xmlns:d="DAV:" xmlns:cal="urn:ietf:params:xml:ns:caldav"><d:prop><d:getetag/><cal:calendar-data/></d:prop><cal:filter><cal:comp-filter name="VCALENDAR"><cal:comp-filter name="VEVENT"><cal:time-range start="20260901T000000Z" end="20261001T000000Z"/></cal:comp-filter></cal:comp-filter></cal:filter></cal:calendar-query>'

Responses

207 DAV multistatus contains requested or range-matching VEVENT data, ETags, and an optional sync token.

Header Description
DAV DAV compliance classes advertised by the adapter.
MS-Author-Via DAV authoring capability marker.
Allow Methods understood by the CalDAV adapter.

Content type: application/xml; schema: string

<?xml version="1.0" encoding="utf-8"?><d:multistatus xmlns:d="DAV:" xmlns:cal="urn:ietf:params:xml:ns:caldav"><d:response><d:href>/caldav/calendars/715c9ebb-0470-11f1-a928-0ed2cd1b87df/715c9ebb-0470-11f1-a928-0ed2cd1b87df.ics</d:href><d:propstat><d:prop><d:getetag>"event-etag"</d:getetag><cal:calendar-data>BEGIN:VCALENDAR...END:VCALENDAR</cal:calendar-data></d:prop></d:propstat></d:response></d:multistatus>

400 The REPORT XML is malformed or does not select a supported report.

Content type: application/json; schema: CalDavError

{
    "success": false,
    "error": {
        "message": "Unsupported CalDAV report"
    }
}

401 Basic credentials are missing or rejected.

Content type: application/json; schema: CalDavError

{
    "success": false,
    "error": {
        "message": "CalDAV credentials are required"
    }
}

403 The verified principal lacks calendar read access.

Content type: application/json; schema: CalDavError

{
    "success": false,
    "error": {
        "message": "Calendar read access denied"
    }
}

500 The calendar query dependency failed.

Content type: application/json; schema: CalDavError

{
    "success": false,
    "error": {
        "message": "Internal server error"
    }
}

Status and retry matrix

Status Condition Retryable Developer action
207 DAV multistatus contains requested or range-matching VEVENT data, ETags, and an optional sync token. No Continue with the DAV, XML, iCalendar, ETag, or empty-body result described for this status.
400 The REPORT XML is malformed or does not select a supported report. No Correct credentials, capability, resource name, XML/iCalendar content, UID, or ETag before retrying.
401 Basic credentials are missing or rejected. No Correct credentials, capability, resource name, XML/iCalendar content, UID, or ETag before retrying.
403 The verified principal lacks calendar read access. No Correct credentials, capability, resource name, XML/iCalendar content, UID, or ETag before retrying.
500 The calendar query dependency failed. Yes Correct credentials, capability, resource name, XML/iCalendar content, UID, or ETag before retrying.

Related operations and events

  • Operation caldav_report_23
  • Operation caldav_report_27

Source trace

Repository: feradelinc/feradel.calendar.caldav
Route: src/caldav/router.js
Handler: controller.report
Line: 35
Contract: OpenAPI 3.1, source-traced and publication-validated.