bambamboole / laravel-dav
CalDAV and CardDAV server for Laravel, powered by sabre/dav, with a typed DTO API.
Requires
- php: ^8.3
- illuminate/contracts: ^12.0 || ^13.0
- illuminate/database: ^12.0 || ^13.0
- illuminate/support: ^12.0 || ^13.0
- sabre/dav: ^4.7
Requires (Dev)
- ext-sockets: *
- amphp/amp: ^3.1
- amphp/http-server: ^3.4
- illuminate/process: ^12.0 || ^13.0
- larastan/larastan: ^3.0
- laravel/boost: ^2.4
- laravel/pint: ^1.27
- orchestra/testbench: ^10.0 || ^11.0
- pestphp/pest: ^4.7
Suggests
None
Provides
None
Conflicts
None
Replaces
None
- dev-main
- 0.2.1
- 0.2.0
- 0.1.1
- 0.1.0
- dev-codex/calendar-access-helpers
- dev-refactor/simplify-shared-concerns
- dev-codex/dav-base-uri-helper
- dev-docs/logo-redesign
- dev-feat/eloquent-dav-mutations
- dev-codex/managed-attachments
- dev-docs/github-pages-starlight
- dev-codex/calendar-proxy-delegation
- dev-codex/calendar-sharing
- dev-codex/calendar-subscriptions
- dev-codex/webdav-locks-backend
- dev-codex/typed-dead-property-storage
- dev-feature/schema-foundation
- dev-feature/vtodo-expand
- dev-feature/auth-discovery-decision
- dev-feature/rfc6638-schedule-tag
- dev-feature/vcard-typed-fields
- dev-feature/vcard4-support
- dev-feature/rfc7953-availability
- dev-test/export-plugin-coverage
- dev-feature/rfc6047-imip
- dev-test/rfc4918-webdav-edges
- dev-test/rfc-docblock-links
- dev-test/rfc3744-acl-coverage
- dev-test/caldav-tester-multi-user-scheduling
- dev-test/rfc6578-sync-coverage
- dev-test/rfc-carddav-collections
- dev-feature/rfc6638-free-busy
- dev-feature/rfc6638-auto-schedule
- dev-feature/rfc6638-scheduling-foundation
- dev-test/rfc4791-calendar-query-filters
- dev-perf/sql-calendar-query
- dev-test/rfc-protocol-coverage
- dev-refactor/dto-value-object-cleanup
- dev-feature/typed-dav-writes
- dev-fix/caldav-tester-timezone
This package is auto-updated.
Last update: 2026-09-06 13:06:18 UTC
README
Laravel DAV
CalDAV & CardDAV server for Laravel, powered by sabre/dav, with a typed DTO API.
Expose your application's calendars and contacts to any standards-compliant client — Apple Calendar, Apple Contacts, Thunderbird, DAVx⁵, and friends — backed by Eloquent and your own owner model.
Features
- Full CalDAV — events (
VEVENT), todos (VTODO), and journals (VJOURNAL). - Full CardDAV — contacts (
VCARD) in vCard 3.0 and 4.0, stored losslessly with version content-negotiation, plus rich, typed parsing. - WebDAV sync — collection synchronization via sync tokens (RFC 6578).
- CalDAV scheduling (RFC 6638) — auto-scheduling between local users, schedule tags, free/busy queries, and optional iMIP email to external attendees (RFC 6047).
- Calendar sharing — CalendarServer-style sharing with read-only and read-write access.
- Calendar proxy delegation — account-level read and write delegation through CalDAV proxy principals.
- CalDAV managed attachments (RFC 8607) — server-managed calendar
ATTACHfiles stored on a configurable Laravel filesystem disk. - Service discovery —
/.well-known/caldavand/.well-known/carddavredirects (RFC 6764). - HTTP Basic authentication — stateless, backed by hashed credentials.
- Owner-agnostic — any model that implements a small contract can own collections.
- Typed DTOs — every calendar object and contact carries the verbatim
rawpayload plus best-effort, strongly-typed parsed fields. - Eloquent storage — collections and objects are plain models you can query, extend, and relate to the rest of your app.
Requirements
- PHP
^8.3 - Laravel
^12or^13 - sabre/dav
^4.7
Installation
composer require bambamboole/laravel-dav
The package auto-registers its service provider and loads its migrations, so php artisan migrate creates the tables. From there, implement the DavOwner contract on your User model, issue a client credential, and create a calendar — the documentation walks through each step.
Documentation
Full documentation lives at bambamboole.github.io/laravel-dav:
- Getting Started — installation, owner setup, credentials, configuration, and connecting a client.
- Core Concepts — principals and owners, calendars, address books, sync tokens, and the raw/DTO data model.
- Guides — creating collections, calendar sharing, proxy delegation, calendar objects, contacts, scheduling, free/busy and availability, reacting to changes, and custom models.
- Protocol Support — WebDAV, CalDAV, CardDAV, discovery, authentication, locks, and client compatibility.
Testing
composer test
License
The MIT License (MIT). See LICENSE for details.