Overview
Discover what makes Davis powerful
Davis is a self‑hosted calendar and contacts server that exposes a full DAV stack (CalDAV, CardDAV, WebDAV) on top of the robust `sabre/dav` library. Built with Symfony 7, it offers a modern admin UI powered by Bootstrap 5 and supports both light and dark themes. The application is designed to be lightweight yet feature‑rich, making it a compelling choice for developers who need an on‑premises solution that can scale from a single user to dozens of accounts without sacrificing performance or maintainability.
Core Framework
DAV Engine
Database Layer
Authentication
Overview
Davis is a self‑hosted calendar and contacts server that exposes a full DAV stack (CalDAV, CardDAV, WebDAV) on top of the robust sabre/dav library. Built with Symfony 7, it offers a modern admin UI powered by Bootstrap 5 and supports both light and dark themes. The application is designed to be lightweight yet feature‑rich, making it a compelling choice for developers who need an on‑premises solution that can scale from a single user to dozens of accounts without sacrificing performance or maintainability.
Architecture & Technical Stack
- Core Framework: Symfony 7 – the application leverages the full Symfony ecosystem (routing, dependency injection, security component) to provide a clean separation of concerns and rapid development.
- DAV Engine:
sabre/dav– the heart of Davis, responsible for parsing DAV requests, managing resources, and implementing CalDAV/CardDAV protocols. - Database Layer: Doctrine ORM with support for MySQL/MariaDB, PostgreSQL, or SQLite. All data models (users, calendars, contacts) are persisted via Doctrine entities.
- Authentication: Basic HTTP auth is the default; optional IMAP and LDAP providers can be enabled via PHP extensions, allowing integration with existing mail or directory services.
- Frontend: Bootstrap 5 for a responsive UI, with Twig templates rendering the admin dashboard. The UI interacts with the server through RESTful endpoints that return JSON or XML, enabling developers to build custom clients.
Core Capabilities & APIs
- Calendar & Contact Management: Create, edit, and share calendars; import/export via iCal or vCard. Automatic birthday calendars are generated on the fly.
- Sharing & Permissions: Fine‑grained ACLs for calendars and address books, with support for public URLs and sharing via email invitations.
- Subscriptions: Clients can subscribe to external calendars; Davis forwards notifications and manages server‑side subscriptions.
- Mail Notifications: Scheduling support triggers email reminders (requires IMAP/SMTP configuration).
- Webhooks & Extensibility: While Davis itself does not expose a full plugin API, its modular Symfony architecture allows developers to inject custom services or extend the routing layer. External applications can consume the DAV endpoints directly or hook into Doctrine events for custom logic.
Deployment & Infrastructure
- Container‑Ready: A Dockerfile and docker‑compose example ship with the source. Two official images are available: a standalone image bundled with Caddy for HTTPS termination, and a bare‑bone image that lets you stack your own reverse proxy.
- NixOS Support: A Nix package and module simplify deployment on NixOS systems.
- Scalability: Stateless HTTP endpoints allow horizontal scaling behind a load balancer. Persistent data resides in the configured database; replication or sharding can be handled at that layer.
- Resource Footprint: Minimal PHP extensions are required (pdo, gd, intl). The application runs comfortably on a single CPU core with 512 MB RAM for moderate workloads.
Integration & Extensibility
Developers can integrate Davis into existing infrastructure in several ways:
- LDAP/IMAP Auth: Hook into corporate directories or mail servers for single sign‑on.
- Custom Clients: Any CalDAV/CardDAV compliant client (iOS, macOS, Thunderbird) can consume the endpoints directly.
- Automation: Use Doctrine event listeners or Symfony Messenger to trigger background jobs (e.g., sending reminders).
- API Consumption: REST endpoints expose CRUD operations for calendars and contacts, enabling rapid prototyping of mobile or web apps.
Developer Experience & Community
The project follows Symfony best practices, making the codebase approachable for developers familiar with PHP frameworks. Comprehensive inline documentation and a clear directory structure aid onboarding. The community actively maintains the repository, with frequent CI checks (GitHub Actions) and a transparent issue tracker. Licensing is permissive (MIT), allowing commercial use without licensing fees.
Use Cases
- Small‑to‑Medium Business: Deploy a single instance to provide internal scheduling and contact sharing without relying on external SaaS.
- Education: Host a campus‑wide calendar system that integrates with university LDAP directories.
- Personal Projects: Run a private server for hobbyists who want full control over their data, with the ability to customize or extend functionality.
- API‑First Applications: Build a custom front‑end (React, Vue) that consumes Davis’s REST endpoints while leveraging its robust DAV backend.
Advantages Over Alternatives
- Open Source & Self‑Hosted: No vendor lock‑in, full data ownership.
- Modern Stack: Symfony 7 and Doctrine provide performance and developer ergonomics.
- Feature‑Rich Out of the Box: Calendar sharing, public URLs, birthday calendars, and subscription support are built‑in.
- Flexible Authentication: Basic auth with optional LDAP/IMAP integration fits diverse environments.
- Docker & NixOS Ready: Rapid deployment in CI/CD pipelines or on managed servers.
In summary, Davis offers a technically mature, extensible platform for calendar and contact management that balances ease of deployment with deep customization possibilities. Its Symfony foundation, coupled with the proven sabre/dav engine, makes it an attractive choice for developers who need a reliable, self‑hosted DAV solution that can grow with their organization.
Open SourceReady to get started?
Join the community and start self-hosting Davis today
Related Apps in other
Immich
Self‑hosted photo and video manager
Syncthing
Peer‑to‑peer file sync, no central server
Strapi
Open-source headless CMS for modern developers
reveal.js
Create stunning web‑based presentations with HTML, CSS and JavaScript
Stirling-PDF
Local web PDF editor with split, merge, convert and more
MinIO
Fast, S3-compatible object storage for AI and analytics
Weekly Views
Repository Health
Information
Explore More Apps
Hoppscotch
Fast, lightweight API development tool
juntagrico
Community garden management made simple
Coder
Self‑hosted cloud dev environments that spin up instantly
Datasette
Explore and publish data as interactive websites
MiroTalk P2P
Peer‑to‑peer web video conferencing, no download needed.
Jelu
Self‑hosted personal Goodreads for books and authors
