A PHP framework for building WebDAV, CalDAV and CardDAV servers, used to share files, calendars and contacts.
tchapi/davis
A self-hosted CalDAV, CardDAV and WebDAV server with a Symfony-based web admin for managing users, calendars and address books.
Open-source alternative to:Google Calendar
- Stars
- 764
- Forks
- 44
- Open issues
- 13
- Last commit
- 2 days ago
What is it?
Davis is a DAV server with an admin dashboard, built on sabre/dav and Symfony 7. It lets you create users, calendars and address books, share calendars with other users, and manage everything from a responsive Bootstrap 5 interface with light and dark modes. It is an alternative to Baïkal, and the database schema can be migrated from an existing Baïkal installation.
On the protocol side, the server supports CalDAV, CardDAV and WebDAV, with calendar sharing, scheduling and server-side subscriptions where the client supports them. Authentication can use HTTP Basic, or IMAP and LDAP through external providers. Extra features include public calendars reachable by link and an automatic birthday calendar that updates when contact birthdates change.
Davis ships with a Dockerfile, a sample docker-compose setup and prebuilt images (one with a bundled Caddy reverse proxy), and it also has a NixOS package and module. It supports MySQL/MariaDB, PostgreSQL and SQLite, and includes a REST API for user and calendar management.
Key features
- 01Web dashboard for creating users, calendars and address books, with calendar sharing
- 02Supports CalDAV, CardDAV and WebDAV, plus scheduling and mail notifications
- 03Authentication via HTTP Basic, IMAP or LDAP
- 04Public calendars shareable by link
- 05Automatic birthday calendar synced from contacts
- 06Docker images and a NixOS module for deployment
Use cases
- Hosting your own calendar and contacts sync for phones and desktop clients
- Replacing Baïkal with a server that has a more modern admin interface
- Giving a small team shared calendars and address books on a private server
- Running a DAV backend behind an SSO or IMAP/LDAP login
Quick start
- 1
Clone the repository
- 2
Install PHP dependencies with Composer
composer install - 3
Set your database driver and URL in .env.local
- 4
Run the database migrations
bin/console doctrine:migrations:migrate
Things to know
- Requires PHP 8.2 or newer with pdo_mysql, gd and intl extensions, plus Composer 2.
- PostgreSQL and SQLite are not extensively tested; MySQL or MariaDB is recommended.
- IMAP and LDAP authentication need extra PHP extensions that are not enabled by default outside the Docker image.
In collections
Topics
FAQ
- What is davis?
- A self-hosted CalDAV, CardDAV and WebDAV server with a Symfony-based web admin for managing users, calendars and address books. Davis is a DAV server with an admin dashboard, built on sabre/dav and Symfony 7. It lets you create users, calendars and address books, share calendars with other users, and manage everything from a responsive Bootstrap 5 interface with light and dark modes. It is an alternative to Baïkal, and the database schema can be migrated from an existing Baïkal installation.
- Is davis free to use? What license does it have?
- davis is open source under the MIT license. Check the license terms before using it in commercial products.
- Is davis still maintained?
- Actively maintained. The last commit to davis was on Nov 5, 2026.
- What can I use davis for?
- Hosting your own calendar and contacts sync for phones and desktop clients Replacing Baïkal with a server that has a more modern admin interface Giving a small team shared calendars and address books on a private server Running a DAV backend behind an SSO or IMAP/LDAP login
- How do I install davis?
- Clone the repository Install PHP dependencies with Composer: composer install Set your database driver and URL in .env.local Run the database migrations: bin/console doctrine:migrations:migrate
- Where can I get davis?
- The source code and installation instructions are on GitHub: https://github.com/tchapi/davis
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A self-hosted CalDAV and CardDAV server for syncing calendars and contacts across devices and apps.
A small Python CalDAV and CardDAV server that shares calendars, to-do lists and contacts with standard clients.
A CalDAV/CardDAV server written in Rust that stores calendars and contacts in a single SQLite database.
A lightweight, local-first browser calendar client that syncs with CalDAV, CardDAV and JMAP servers you configure.
Self-hostable all-in-one mail and collaboration server in Rust, supporting IMAP, JMAP, POP3, SMTP, CalDAV, CardDAV and WebDAV.