How can we help you?

PROPFIND /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

PROPFIND /caldav/calendars/{calendarUuid}/{path}

Overview

Authenticated DAV discovery implemented at src/caldav/router.js:39 (controller.propfind). Depth controls whether child collections are included; returned XML covers principal/home/calendar properties, supported reports, sync/ETag metadata, and effective privileges.

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.
path path string Yes Optional descendant resource path consumed by collection discovery or report routing.
Depth header string No DAV traversal depth. Zero returns only the target; one or infinity requests available child collections.

Request body

No request body.

Example request

cURL

curl --request PROPFIND \ \
  --url 'https://caldav.feradel.com/caldav/calendars/715c9ebb-0470-11f1-a928-0ed2cd1b87df/events' \
  --user '$FERA_CALDAV_USERNAME:$FERA_CALDAV_PASSWORD' \
  --header 'Depth: 1'

Responses

207 DAV multistatus describes principal, calendar-home, or calendar collections according to Depth.

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/</d:href><d:propstat><d:prop><d:resourcetype><d:collection/><cal:calendar/></d:resourcetype><d:displayname>Client calendar</d:displayname></d:prop><d:status>HTTP/1.1 200 OK</d:status></d:propstat></d:response></d:multistatus>

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 Calendar discovery or XML generation 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 describes principal, calendar-home, or calendar collections according to Depth. No Continue with the DAV, XML, iCalendar, ETag, or empty-body result described for this status.
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 Calendar discovery or XML generation failed. Yes Correct credentials, capability, resource name, XML/iCalendar content, UID, or ETag before retrying.

Related operations and events

  • Operation caldav_propfind_5
  • Operation caldav_propfind_6
  • Operation caldav_propfind_11
  • Operation caldav_propfind_12

Source trace

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