Top-level Plug that handles CalDAV requests under the /dav prefix.
Resource layout:
/dav/ — root collection
/dav/principals/{user}/ — principal resource
/dav/calendars/{user}/ — calendar-home-set
/dav/calendars/{user}/{cal}/ — calendar collection
/dav/calendars/{user}/{cal}/{obj} — calendar object resource (.ics)All non-/dav/* requests pass through unmodified.
Required opts:
:storage— module implementingExDav.Storage:authenticator— module implementingExDav.Authenticator, or{module, opts}to pass adapter-specific opts
Example:
plug ExDav.CalDav.Plug,
storage: ExDav.Storage.Postgres,
authenticator: {ExDav.Authenticator.Basic,
verify: {ExDav.Storage.Postgres, :authenticate}}