This guide covers day-to-day Davvy usage in the web UI.
- Open the app URL and sign in with email/password.
- If your account has 2FA enabled, complete the second step using authenticator code or backup code.
- If public registration is enabled, a registration link appears on the login page.
- If registration approval is required, newly registered users must be approved by an admin before they can sign in.
- Approved users automatically receive:
- one default calendar
- one default address book (
contacts)
The dashboard is the main resource management page.
You can:
- View your DAV endpoint and principal info
- Create calendars and address books
- Rename resources (display name only; URI stays stable)
- Mark owned resources as sharable
- Export all calendars/address books or individual collections
- View resources shared with you and their permission badges
If sharing is enabled for your role:
- Select resource type (
calendaroraddress_book) - Select a sharable owned resource
- Select target user
- Choose permission
- Save share
Permission levels:
General(read_only)Editor(editor, full edit without collection delete)Admin(admin, full edit + collection delete)
For each owned address book, you can configure:
- Birthday calendar on/off
- Anniversary calendar on/off
- Optional custom calendar names
Generated calendars are read from contact data and auto-updated.
- Upcoming milestone horizons are automatically rolled forward daily at
00:15inAPP_TIMEZONE/app.timezoneby scheduled commandapp:milestones:sync. - Keep a scheduler running (
RUN_SCHEDULER=true) or runphp artisan schedule:runexternally every minute.
Birthday generation behavior:
MILESTONE_BIRTHDAY_INCLUDE_LAST_NAMEcontrols whether birthday titles include last names (default istrue, soBen Williams; setfalseforBen).MILESTONE_BIRTHDAY_PRIORITIZE_NICKNAMEcontrols whether birthday titles prefer nickname over first name (default istrue, soJon Doe; setfalseforJonathan Doe).
Anniversary generation behavior:
- Contacts with the same anniversary month/day can be combined into one event when they are mutually linked with spouse-like related-name labels (
spouse,partner,husband,wife, including custom labels containing those terms). Head of Householddetermines name order in the combined anniversary title.MILESTONE_ANNIVERSARY_PAIR_INCLUDE_LAST_NAMEcontrols whether combined titles include the shared last name (default isfalse, soJohn & Jane; settrueforJohn & Jane Doe).MILESTONE_ANNIVERSARY_PRIORITIZE_NICKNAMEcontrols whether anniversary titles prefer nickname over first name (default istrue, soJon & Jane; setfalseforJonathan & Jane).- If either contact has an anniversary year, the combined title includes an ordinal (for example,
13th). If neither contact has a year, the title omits the ordinal. - Contacts that do not match a mutual pair still generate individual anniversary events.
Think of this as a personal draft layer for shared contacts:
- You edit contacts on your own devices.
- Davvy keeps those edits in your private copy first.
- You explicitly choose what to share back to shared address books.
Availability note:
- This section appears only when an admin enables
Private working setglobally in Admin Control Center.
What it does:
- Creates/uses a private address book for your account
- Copies selected source address books into linked private cards
- Keeps local-only overrides (for example personal notes/photos) in your private set until you promote
- Optionally includes your own sharable address books as source books too
Recommended flow:
- Enable Private Working Set and select source address books.
- Edit contacts from your devices as usual.
- In dashboard, use
Suggested updates to shareorPrivate cards linked to shared contacts. - Click
Share this updateonly for changes you want everyone to receive. - Use
Show advanced optionsonly when you need sync-policy controls.
Key settings in plain language:
Use private working set for shared contacts: turns this feature on/off.Hide selected source books in my DAV apps: reduces accidental direct edits in source books.Also include my own sharable address books: lets your own books use the same draft/promote model.Queue my own promotions for review(admin only): routes your own promotions through Review Queue first.Last promotion results: shows your most recent queued/applied promotion outcomes for quick confirmation.
Action buttons:
Refresh from source books (keep my private edits): updates from source but preserves your private overrides.Reset from source books (replace my private edits): updates from source and replaces private overrides.Share this update: sends one linked private card back to source.- with moderation enabled: queued for review
- with moderation disabled: applied immediately
Moderation behavior:
- Non-admin users:
- if moderation is enabled, promotions are always queued (including self-owned sharable sources)
- if moderation is disabled, promotions apply directly when permissions allow
- Admin users:
- can choose whether self-promotions queue (when moderation is enabled)
- can self-approve queued self-promotions
For a focused walkthrough and FAQ, see Private Working Set Guide.
Optional feature for Apple ecosystem visibility:
- Mirrors selected source address books into your default
contactsaddress book - Source books can be owned or shared books you can access
- You can enable/disable and choose mirror sources in dashboard
If admin enables contact management, the Contacts tab appears.
You can:
- Search/filter contacts
- Create/update/delete managed contacts
- Assign contacts to one or more writable address books
- Edit structured fields (phones, emails, addresses, dates, related names, IM)
- Opt contact out of milestone calendar generation
Validation rules:
- At least one of
First Name,Last Name, orCompany - At least one assigned writable address book
Queue behavior:
- If
Review Queueis enabled by admin, some changes (especially cross-owner contexts) may be queued for approval - If
Review Queueis disabled, cross-owner changes apply immediately (latest write wins) - UI shows queued notice when server returns
202 - Private working-set promotions follow the same moderation rules (
202queued vs immediate apply)
The Review Queue tab is optional and appears only when admins enable it.
Recommended usage:
- Personal/single-user deployments: keep disabled (default)
- Family/team deployments: enable when you need owner/admin review before applying cross-owner contact changes
When enabled, the tab is for approving/denying queued contact changes.
Capabilities:
- Filter by status/operation
- Search by requester/contact
- Approve or deny individual requests
- Bulk approve/deny visible actionable groups
- For merge conflicts, use "Edit & Approve" to resolve payload and assignment JSON
Status values include:
pendingapprovedmanual_merge_neededapplieddenied
The Profile page shows current account details and security controls.
Important:
- Password updates affect both web login and DAV clients.
- Update saved client credentials after password change.
- You can choose your preferred language in Profile -> Language.
- Current locale options in the web UI are Chinese, English, French, German, Italian, Japanese, Portuguese, and Spanish.
- You can enable/disable two-factor authentication (TOTP) and regenerate backup codes.
- You can create/revoke DAV app passwords for clients like iOS Calendar/Contacts, DAVx5, or Thunderbird.
- App passwords are shown once at creation time and are required for DAV when 2FA is enabled.
Admins can:
- Toggle feature flags:
- public registration
- require registration approval
- owner sharing
- DAV compatibility mode
- contact management
- review queue moderation (off by default)
- private working set (global on/off)
- 2FA enforcement (with grace period rollout)
- Create users with role selection
- Reset a user's 2FA enrollment and revoke their DAV app passwords (emergency recovery)
- Delete users with typed admin-email confirmation
- Optionally transfer ownership of calendars, address books, and contacts to another user before deleting an account
- Manage cross-user share assignments globally
- Set contact change queue history retention (days)
- Configure automated backups:
- enable/disable backup automation
- configure local and optional S3 destinations
- define one or more daily backup windows (
HH:MM) - tune retention tiers (
daily,weekly,monthly,yearly)
- Run backups on demand from Admin Control Center
- Restore backups from Admin Control Center using ZIP import (
merge,replace, and optional dry-run) - Manual backup reruns in the same day/week/month/year replace that period snapshot (no duplicate period artifacts)
- Purge generated milestone calendars (destructive maintenance action)
Important guards:
- Admins cannot disable review queue moderation while unresolved queue requests still exist; requests must be approved/denied first.
- Admins cannot delete their own account.
- Admins cannot delete the last remaining admin account.
- Ownership transfer is blocked if contact UID conflicts exist between source and target owners.
From the dashboard:
- DAV endpoint:
https://<host>/dav - Principal:
principals/<your-user-id>
See detailed client setup: DAV Client Setup