# ExDav v0.1.0 - Table of Contents > CalDAV server library — mount as a Plug, bring your own storage adapter. Heavily WIP / beta software; APIs may change between releases. ## Modules - [ExDav](ExDav.md): CalDAV server library. - [ExDav.Authenticator](ExDav.Authenticator.md): Behaviour for CalDAV authenticators. - [ExDav.Authenticator.Basic](ExDav.Authenticator.Basic.md): HTTP Basic authenticator. Verifies the username/password pair via a configurable `:verify` MFA tuple `{module, function}` invoked as `apply(module, function, [username, password])`. Returns the username as the principal on success. - [ExDav.CalDav.Plug](ExDav.CalDav.Plug.md): Top-level Plug that handles CalDAV requests under the `/dav` prefix. - [ExDav.CalDav.XML](ExDav.CalDav.XML.md): XML response builders and small request parsers for the CalDAV endpoints. Generates Multi-Status (RFC 4918) responses with the CalDAV (RFC 4791) and CalendarServer extensions. - [ExDav.ICal](ExDav.ICal.md): Tiny iCalendar helpers — just enough to extract the UID and primary component (VEVENT vs VTODO) from an iCalendar object and to compute an ETag from its serialized form. - [ExDav.Storage](ExDav.Storage.md): Behaviour for CalDAV storage adapters. - [ExDav.Storage.Memory](ExDav.Storage.Memory.md): In-memory implementation of `ExDav.Storage`. Backed by a single Agent registered under the module name, for use in dev demos and tests. - [ExDav.Storage.Postgres](ExDav.Storage.Postgres.md): Postgres-backed implementation of `ExDav.Storage`. Owns its own users, calendars, calendar objects, and tombstones tables; the Repo module is configured via `config :ex_dav, repo: MyApp.Repo`. - [ExDav.Storage.Postgres.Schemas.Calendar](ExDav.Storage.Postgres.Schemas.Calendar.md): A CalDAV calendar collection owned by a user. - [ExDav.Storage.Postgres.Schemas.Object](ExDav.Storage.Postgres.Schemas.Object.md): A single calendar resource (an event, todo, etc.). - [ExDav.Storage.Postgres.Schemas.Tombstone](ExDav.Storage.Postgres.Schemas.Tombstone.md): Records the deletion of a calendar object for sync-collection. - [ExDav.Storage.Postgres.Schemas.User](ExDav.Storage.Postgres.Schemas.User.md): A CalDAV principal.