Skip to main content

DAV Server #

DAV Server Header

A production-ready, self-hosted CalDAV and CardDAV server built on Spring Boot, designed for organisations that need reliable calendar and contact synchronisation under their own infrastructure — without cloud dependencies, subscription fees, or data leaving the premises.

Released — March 1st, 2026. Pairs natively with the FM GCalendar Module to let your organisation host its own calendar services end-to-end, with zero external cloud dependency.

What it Provides #

  • CalDAV — calendar and event synchronisation compliant with RFC 4791 and RFC 5545 (iCalendar)
  • CardDAV — contacts and address-book synchronisation compliant with RFC 6352 and RFC 6350 (vCard)

Both services share a unified authentication layer, a single PostgreSQL database, and a single HTTPS endpoint — one server to deploy and maintain.


Protocol Compliance #

The server implements the full WebDAV method set required by CalDAV and CardDAV clients:

MethodPurpose
OPTIONSCapabilities advertisement (DAV: 1, 2, calendar-access, addressbook)
GET / PUT / DELETEEvent and contact CRUD
PROPFINDProperty discovery at depth 0, 1, and infinity
REPORTCalendar queries and multiget (RFC 4791)
MKCALENDARCalendar collection creation (RFC 4791 §5.3.1)

Auto-discovery endpoints (/.well-known/caldav, /.well-known/carddav) and principal discovery (/principals/{username}) are implemented so clients can configure themselves with just a hostname and credentials — no manual path entry required.


Client Compatibility #

Tested and verified with:

  • macOS — Calendar.app and Contacts.app (auto-discovery, full sync, calendar creation)
  • iOS / iPadOS — native Calendar and Contacts apps
  • Android — DAVx⁵ (standards-compliant sync client)
  • Linux — Evolution, Thunderbird, GNOME Online Accounts, KDE Kontact
  • Any other CalDAV / CardDAV compliant application

vCard compatibility is handled automatically: the server stores vCards in their original format and converts to vCard 3.0 at serve time for clients — such as macOS Contacts and Thunderbird — that do not support vCard 4.0.


Key Features #

Synchronisation

  • ETag-based conflict detection on every create and update
  • CTag (collection tag) updates propagate immediately to all clients
  • Calendar-query REPORT with time-range filtering for efficient partial sync
  • Calendar-multiget REPORT for bulk event retrieval by UID
  • Contact group support with Apple-compatible formatting

Security

  • HTTPS / TLS first — runs on port 8443 with full SSL/TLS support
  • HTTP Basic Authentication with BCrypt password hashing (RFC 2617)
  • Per-user data isolation via path-based access control (/caldav/{username}/, /carddav/{username}/)

Operations

  • PostgreSQL backend with Flyway schema versioning — schema changes never require manual ALTER TABLE
  • Spring Boot profiles for dev / prod environments
  • REST management API for principals, calendars, events, address books and contacts
  • OpenAPI / Swagger UI included for API exploration
  • Health check endpoint at /api/health for monitoring integration
  • N+1 query optimisation with explicit JOIN FETCH — no performance degradation at scale
  • Automatic change-log cleanup (configurable retention, default 30 days)

Integration with FM GCalendar Module #

The DAV Server is the on-premise backend counterpart of the FM GCalendar Module. Together they form a complete, self-hosted calendar infrastructure:

  1. FM GCalendar Module manages events inside FileMaker, synchronising with Google Calendar or directly with the DAV Server.
  2. DAV Server publishes those calendars and contacts to every user’s devices over standard CalDAV/CardDAV.
  3. Changes from any device sync back through the server — no third-party cloud in the loop.

This pairing is the only configuration that gives a FileMaker-centric organisation full read/write calendar sync on all devices with zero external cloud dependency.


Architecture Overview #

Client devices (macOS / iOS / Android / Linux)
        │  HTTPS (port 8443)
        ▼
  DAV Server (Spring Boot 3.2 · Java 17 · Jetty)
        │
        ▼
  PostgreSQL (principals · calendars · events · address books · contacts)

The server uses a servlet-filter chain to intercept WebDAV methods before Spring’s dispatcher, which keeps the protocol handling layer cleanly separated from the REST management API and from Spring Security.


REST Management API #

Beyond the protocol endpoints, a full REST API is available for administrative operations:

ResourceEndpoints
Principals (users)CRUD at /api/principals
CalendarsCRUD at /api/calendars
EventsCRUD at /api/calendar-objects
Address booksCRUD at /api/addressbooks
ContactsCRUD at /api/contacts
HealthGET /api/health

All endpoints are documented via OpenAPI 3.0 — accessible at /swagger-ui.html and /rapidoc.html on a running instance.


Deployment Requirements #

  • Host OS: Linux (recommended), macOS or Windows
  • Runtime: Java 17 or later
  • Database: PostgreSQL 15+, network-accessible
  • Network: Reachable hostname or VPN endpoint for client connectivity
  • TLS: Self-signed certificate included for development; bring your own or use Let’s Encrypt for production
# Start (development profile, self-signed cert)
./mvnw spring-boot:run

# Start (production profile + TLS)
./mvnw -Pprod,tls spring-boot:run

Implemented RFCs #

RFCStandard
RFC 4918WebDAV — core protocol
RFC 4791CalDAV — calendar access
RFC 5545iCalendar format
RFC 6352CardDAV — contact access
RFC 6350vCard format
RFC 6764Auto-discovery (.well-known endpoints)
RFC 2617HTTP Basic Authentication

Pricing #

No online store. This site does not sell modules directly. For purchases, custom quotes, bundled configurations or special requests, please contact us so we can discuss terms, licensing and implementation options.

DAV Server — Base Deployment #

Single-instance deployment on customer infrastructure. Includes CalDAV and CardDAV services, HTTPS configuration, PostgreSQL schema setup, REST management API, and initial principal and collection provisioning.

Price
Base deployment    950 €

FM GCalendar Integration Pack #

Configuration and verification of the two-way sync between the FM GCalendar Module and the DAV Server. Includes end-to-end testing with at least one desktop client and one mobile client.

Price
Integration pack    350 €

Implementation Support #

On-site or remote assistance for server setup, network configuration, certificate installation, and client onboarding for up to five users.

Price
Implementation support    500 €

Maintenance Support #

RatePackMode
80 €/hour5-hour packremote
60 €/hour30-hour packremote
120 €one on-site visit

On-site visits within the Barcelona area.


Upgrades #

Major upgrades are priced at 50% of the original deployment cost.

Maintenance updates are free.


Warranty #

Permanent and unlimited functional warranty against defects in the delivered deployment. The warranty remains active indefinitely, except in the event of tampering or an upgrade to the underlying Java runtime, PostgreSQL version, or operating system that is outside the agreed compatibility matrix.