How can we help you?

API

Stripe-style API guides and endpoint reference for FeraCalendar.

FeraCalendar

Check people availability

Implements controller.get in routes/api/v1/person/routes.js:10. The authenticated boundary enforces managed-product and owner/member role rules, uses owner-scoped keys/UUIDs, applies visibility masks only after access resolution, and records mutations.

Applies to all documented versions
FeraCalendar

Check resource availability

Implements controller.get in routes/api/v1/resource/routes.js:11. The authenticated boundary enforces managed-product and owner/member role rules, uses owner-scoped keys/UUIDs, applies visibility masks only after access resolution, and records mutations.

Applies to all documented versions
FeraCalendar

Create or update a calendar

Implements controller.createOrUpdate in routes/api/v1/calendar/routes.js:8. The authenticated boundary enforces managed-product and owner/member role rules, uses owner-scoped keys/UUIDs, applies visibility masks only after access resolution, and records mutations.

Applies to all documented versions
FeraCalendar

Create or update a calendar person

Implements controller.createOrUpdate in routes/api/v1/person/routes.js:8. The authenticated boundary enforces managed-product and owner/member role rules, uses owner-scoped keys/UUIDs, applies visibility masks only after access resolution, and records mutations.

Applies to all documented versions
FeraCalendar

Create or update a resource

Implements controller.createOrUpdate in routes/api/v1/resource/routes.js:8. The authenticated boundary enforces managed-product and owner/member role rules, uses owner-scoped keys/UUIDs, applies visibility masks only after access resolution, and records mutations.

Applies to all documented versions
FeraCalendar

Create or update an event

Implements controller.createOrUpdate in routes/api/v1/event/routes.js:8. The authenticated event boundary resolves the requested calendar and actor, enforces owner/editor/inviter rules, preserves recurrence, and joins attendee/resource invitation state without treating visibility as authorization by itself.

Applies to all documented versions
FeraCalendar

DELETE /calendars/:calendarUuid/:eventFile

Authenticated conditional event deletion implemented at src/caldav/router.js:43 (controller.deleteEvent). The adapter validates the UUID .ics resource, checks write capability and If-Match against the current ETag, and removes the corresponding FeraCal event.

Applies to all documented versions
FeraCalendar

Delete a calendar

Implements controller.delete in routes/api/v1/calendar/routes.js:17. The authenticated boundary enforces managed-product and owner/member role rules, uses owner-scoped keys/UUIDs, applies visibility masks only after access resolution, and records mutations.

Applies to all documented versions
FeraCalendar

Delete a person by key

Implements controller.delete in routes/api/v1/person/routes.js:12. The authenticated boundary enforces managed-product and owner/member role rules, uses owner-scoped keys/UUIDs, applies visibility masks only after access resolution, and records mutations.

Applies to all documented versions
FeraCalendar

Delete a person by UUID

Implements controller.delete in routes/api/v1/person/routes.js:11. The authenticated boundary enforces managed-product and owner/member role rules, uses owner-scoped keys/UUIDs, applies visibility masks only after access resolution, and records mutations.

Applies to all documented versions
FeraCalendar

Delete a resource by key

Implements controller.delete in routes/api/v1/resource/routes.js:13. The authenticated boundary enforces managed-product and owner/member role rules, uses owner-scoped keys/UUIDs, applies visibility masks only after access resolution, and records mutations.

Applies to all documented versions
FeraCalendar

Delete a resource by UUID

Implements controller.delete in routes/api/v1/resource/routes.js:12. The authenticated boundary enforces managed-product and owner/member role rules, uses owner-scoped keys/UUIDs, applies visibility masks only after access resolution, and records mutations.

Applies to all documented versions
FeraCalendar

Delete an event

Implements controller.delete in routes/api/v1/event/routes.js:16. The authenticated event boundary resolves the requested calendar and actor, enforces owner/editor/inviter rules, preserves recurrence, and joins attendee/resource invitation state without treating visibility as authorization by itself.

Applies to all documented versions
FeraCalendar

Delete an event as an actor

Implements controller.delete in routes/api/v1/event/routes.js:15. The authenticated event boundary resolves the requested calendar and actor, enforces owner/editor/inviter rules, preserves recurrence, and joins attendee/resource invitation state without treating visibility as authorization by itself.

Applies to all documented versions
FeraCalendar

Discover /caldav/{path} DAV capabilities

DAV capability responder implemented at src/caldav/router.js:12 (controller.options). It advertises compliance classes and supported methods without requiring Basic credentials or exposing tenant calendar data.

Applies to all documented versions
FeraCalendar

Discover /health DAV capabilities

Public liveness probe implemented at src/app.js:29 (inline health). It reports only process availability and does not verify FeraAuth, FeraCal, storage, or downstream readiness.

Applies to all documented versions
FeraCalendar

FeraCalendar API authentication

Authenticate REST and CalDAV requests

Applies to all documented versions
FeraCalendar

FeraCalendar CalDAV overview

Discover, synchronize, retrieve, and mutate calendars over CalDAV

Applies to all documented versions
FeraCalendar

GET /calendars/:calendarUuid/:eventFile

Authenticated event retrieval implemented at src/caldav/router.js:41 (controller.getEvent). A UUID .ics resource is resolved through the authorized calendar and returned as text/calendar with its deterministic ETag.

Applies to all documented versions
FeraCalendar

HEAD /calendars/:calendarUuid

Authenticated collection probe implemented at src/caldav/router.js:31 (controller.headCollection). Basic credentials are verified through FeraAuth with instance/calendar context before FeraCal read capability is confirmed.

Applies to all documented versions
FeraCalendar

HEAD /calendars/:calendarUuid/

Authenticated collection probe implemented at src/caldav/router.js:32 (controller.headCollection). Basic credentials are verified through FeraAuth with instance/calendar context before FeraCal read capability is confirmed.

Applies to all documented versions
FeraCalendar

HEAD /calendars/:calendarUuid/*?

Authenticated collection probe implemented at src/caldav/router.js:38 (controller.headCollection). Basic credentials are verified through FeraAuth with instance/calendar context before FeraCal read capability is confirmed.

Applies to all documented versions
FeraCalendar

HEAD /instance/:instance

Authenticated collection probe implemented at src/caldav/router.js:21 (controller.headCollection). Basic credentials are verified through FeraAuth with instance/calendar context before FeraCal read capability is confirmed.

Applies to all documented versions
FeraCalendar

HEAD /instance/:instance/

Authenticated collection probe implemented at src/caldav/router.js:22 (controller.headCollection). Basic credentials are verified through FeraAuth with instance/calendar context before FeraCal read capability is confirmed.

Applies to all documented versions
FeraCalendar

HEAD /instance/:instance/*?

Authenticated collection probe implemented at src/caldav/router.js:26 (controller.headCollection). Basic credentials are verified through FeraAuth with instance/calendar context before FeraCal read capability is confirmed.

Applies to all documented versions
FeraCalendar

HEAD /principals/:instance/:person

Authenticated collection probe implemented at src/caldav/router.js:14 (controller.headCollection). Basic credentials are verified through FeraAuth with instance/calendar context before FeraCal read capability is confirmed.

Applies to all documented versions
FeraCalendar

HEAD /principals/:instance/:person/

Authenticated collection probe implemented at src/caldav/router.js:15 (controller.headCollection). Basic credentials are verified through FeraAuth with instance/calendar context before FeraCal read capability is confirmed.

Applies to all documented versions
FeraCalendar

Invite a person or resource to an event

Implements controller.invite in routes/api/v1/event/routes.js:9. The authenticated event boundary resolves the requested calendar and actor, enforces owner/editor/inviter rules, preserves recurrence, and joins attendee/resource invitation state without treating visibility as authorization by itself.

Applies to all documented versions
FeraCalendar

List calendars accessible to a user

Implements controller.access in routes/api/v1/calendar/routes.js:11. The authenticated boundary enforces managed-product and owner/member role rules, uses owner-scoped keys/UUIDs, applies visibility masks only after access resolution, and records mutations.

Applies to all documented versions
FeraCalendar

List calendars by owner key

Implements controller.get in routes/api/v1/calendar/routes.js:14. The authenticated boundary enforces managed-product and owner/member role rules, uses owner-scoped keys/UUIDs, applies visibility masks only after access resolution, and records mutations.

Applies to all documented versions
FeraCalendar

List calendars by visibility

Implements controller.get in routes/api/v1/calendar/routes.js:15. The authenticated boundary enforces managed-product and owner/member role rules, uses owner-scoped keys/UUIDs, applies visibility masks only after access resolution, and records mutations.

Applies to all documented versions
FeraCalendar

List events by owner key

Implements controller.get in routes/api/v1/event/routes.js:10. The authenticated event boundary resolves the requested calendar and actor, enforces owner/editor/inviter rules, preserves recurrence, and joins attendee/resource invitation state without treating visibility as authorization by itself.

Applies to all documented versions
FeraCalendar

List events by range and calendar

Implements controller.get in routes/api/v1/event/routes.js:14. The authenticated event boundary resolves the requested calendar and actor, enforces owner/editor/inviter rules, preserves recurrence, and joins attendee/resource invitation state without treating visibility as authorization by itself.

Applies to all documented versions
FeraCalendar

List events by range and owner key

Implements controller.get in routes/api/v1/event/routes.js:13. The authenticated event boundary resolves the requested calendar and actor, enforces owner/editor/inviter rules, preserves recurrence, and joins attendee/resource invitation state without treating visibility as authorization by itself.

Applies to all documented versions
FeraCalendar

List resources

Implements controller.get in routes/api/v1/resource/routes.js:9. The authenticated boundary enforces managed-product and owner/member role rules, uses owner-scoped keys/UUIDs, applies visibility masks only after access resolution, and records mutations.

Applies to all documented versions
FeraCalendar

OPTIONS /calendars/:calendarUuid

DAV capability responder implemented at src/caldav/router.js:29 (controller.options). It advertises compliance classes and supported methods without requiring Basic credentials or exposing tenant calendar data.

Applies to all documented versions
FeraCalendar

OPTIONS /calendars/:calendarUuid/

DAV capability responder implemented at src/caldav/router.js:30 (controller.options). It advertises compliance classes and supported methods without requiring Basic credentials or exposing tenant calendar data.

Applies to all documented versions
FeraCalendar

OPTIONS /calendars/:calendarUuid/*?

DAV capability responder implemented at src/caldav/router.js:37 (controller.options). It advertises compliance classes and supported methods without requiring Basic credentials or exposing tenant calendar data.

Applies to all documented versions
FeraCalendar

OPTIONS /instance/:instance

DAV capability responder implemented at src/caldav/router.js:19 (controller.options). It advertises compliance classes and supported methods without requiring Basic credentials or exposing tenant calendar data.

Applies to all documented versions
FeraCalendar

OPTIONS /instance/:instance/

DAV capability responder implemented at src/caldav/router.js:20 (controller.options). It advertises compliance classes and supported methods without requiring Basic credentials or exposing tenant calendar data.

Applies to all documented versions
FeraCalendar

OPTIONS /instance/:instance/*?

DAV capability responder implemented at src/caldav/router.js:25 (controller.options). It advertises compliance classes and supported methods without requiring Basic credentials or exposing tenant calendar data.

Applies to all documented versions
FeraCalendar

PROPFIND /calendars/:calendarUuid

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

Applies to all documented versions
FeraCalendar

PROPFIND /calendars/:calendarUuid/

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

Applies to all documented versions
FeraCalendar

PROPFIND /calendars/:calendarUuid/*?

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.

Applies to all documented versions
FeraCalendar

PROPFIND /instance/:instance

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

Applies to all documented versions
FeraCalendar

PROPFIND /instance/:instance/

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

Applies to all documented versions
FeraCalendar

PROPFIND /instance/:instance/*?

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

Applies to all documented versions
FeraCalendar

PROPFIND /principals/:instance/:person

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

Applies to all documented versions
FeraCalendar

PROPFIND /principals/:instance/:person/

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

Applies to all documented versions
FeraCalendar

PUT /calendars/:calendarUuid/:eventFile

Authenticated conditional event write implemented at src/caldav/router.js:42 (controller.putEvent). The adapter validates one VEVENT, requires its UID to match the UUID .ics filename, checks write capability and If-Match, then creates or updates the…

Applies to all documented versions
FeraCalendar

Receive a FeraCal lifecycle acknowledgment

FeraCal directly posts one exact-body HMAC callback after lifecycle success or failure. There is no internal retry loop; a failed success callback fails the source request so FeraHooks can redeliver the idempotent…

Applies to all documented versions
FeraCalendar

REPORT /calendars/:calendarUuid

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.

Applies to all documented versions
FeraCalendar

REPORT /calendars/:calendarUuid/

Authenticated CalDAV report implemented at src/caldav/router.js:36 (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.

Applies to all documented versions
FeraCalendar

REPORT /calendars/:calendarUuid/*?

Authenticated CalDAV report implemented at src/caldav/router.js:40 (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.

Applies to all documented versions
FeraCalendar

Resolve a calendar

Implements controller.resolve in routes/api/v1/calendar/routes.js:13. The authenticated boundary enforces managed-product and owner/member role rules, uses owner-scoped keys/UUIDs, applies visibility masks only after access resolution, and records mutations.

Applies to all documented versions
FeraCalendar

Resolve a user’s calendar access

Implements controller.resolveAccess in routes/api/v1/calendar/routes.js:12. The authenticated boundary enforces managed-product and owner/member role rules, uses owner-scoped keys/UUIDs, applies visibility masks only after access resolution, and records mutations.

Applies to all documented versions
FeraCalendar

Responses and errors

Handle JSON, DAV XML, iCalendar, and empty-body responses

Applies to all documented versions
FeraCalendar

Retrieve a calendar

Implements controller.one in routes/api/v1/calendar/routes.js:16. The authenticated boundary enforces managed-product and owner/member role rules, uses owner-scoped keys/UUIDs, applies visibility masks only after access resolution, and records mutations.

Applies to all documented versions
FeraCalendar

Retrieve an event

Implements controller.get in routes/api/v1/event/routes.js:11. The authenticated event boundary resolves the requested calendar and actor, enforces owner/editor/inviter rules, preserves recurrence, and joins attendee/resource invitation state without treating visibility as authorization by itself.

Applies to all documented versions
FeraCalendar

Retrieve calendar event history

Implements controller.get in routes/api/v1/event/routes.js:12. The authenticated event boundary resolves the requested calendar and actor, enforces owner/editor/inviter rules, preserves recurrence, and joins attendee/resource invitation state without treating visibility as authorization by itself.

Applies to all documented versions
FeraCalendar

Retrieve people by owner key

Implements controller.get in routes/api/v1/person/routes.js:9. The authenticated boundary enforces managed-product and owner/member role rules, uses owner-scoped keys/UUIDs, applies visibility masks only after access resolution, and records mutations.

Applies to all documented versions
FeraCalendar

Retrieve resources by owner key

Implements controller.get in routes/api/v1/resource/routes.js:10. The authenticated boundary enforces managed-product and owner/member role rules, uses owner-scoped keys/UUIDs, applies visibility masks only after access resolution, and records mutations.

Applies to all documented versions
FeraCalendar

Share a calendar

Implements controller.share in routes/api/v1/calendar/routes.js:9. The authenticated boundary enforces managed-product and owner/member role rules, uses owner-scoped keys/UUIDs, applies visibility masks only after access resolution, and records mutations.

Applies to all documented versions
FeraCalendar

The CalActor object

Source-supported CalActor schema for FeraCalendar integrations.

Applies to all documented versions
FeraCalendar

The CalDavError object

Source-supported CalDavError schema for FeraCalendar integrations.

Applies to all documented versions
FeraCalendar

The Calendar object

Source-supported Calendar schema for FeraCalendar integrations.

Applies to all documented versions
FeraCalendar

The CalendarEvent object

Source-supported CalendarEvent schema for FeraCalendar integrations.

Applies to all documented versions
FeraCalendar

The CalError object

Source-supported CalError schema for FeraCalendar integrations.

Applies to all documented versions
FeraCalendar

The CalMutation object

Source-supported CalMutation schema for FeraCalendar integrations.

Applies to all documented versions
FeraCalendar

The CalResult object

Source-supported CalResult schema for FeraCalendar integrations.

Applies to all documented versions
FeraCalendar

The HealthResponse object

Source-supported HealthResponse schema for FeraCalendar integrations.

Applies to all documented versions
FeraCalendar

The LifecycleAcknowledgment object

Source-supported LifecycleAcknowledgment schema for FeraCalendar integrations.

Applies to all documented versions
FeraCalendar

The LifecycleEvent object

Source-supported LifecycleEvent schema for FeraCalendar integrations.

Applies to all documented versions
FeraCalendar

Unshare a calendar

Implements controller.unshare in routes/api/v1/calendar/routes.js:10. The authenticated boundary enforces managed-product and owner/member role rules, uses owner-scoped keys/UUIDs, applies visibility masks only after access resolution, and records mutations.

Applies to all documented versions