DayFront-Beta

DayFront-Beta

apps.detail.types.app from MaplePotion's Repository

apps.detail.sections.overview

Pre-release DayFront image for testing multi-user CalDAV login. Install alongside stable using the isolated default port and appdata paths.

DayFront logo

DayFront

The open-source CalDAV frontend.

Own your day. Own your data.

Support DayFront on Buy Me a Coffee

DayFront calendar in month view

DayFront is a modern, self-hosted web interface for calendars and tasks stored on an existing CalDAV server.

DayFront uses standard CalDAV and WebDAV discovery and connects to standards-compliant CalDAV servers through the caldav configuration.

Status: DayFront 1.0 is stable and ready for self-hosted deployment. Compatibility reports for different CalDAV servers are welcome.

Features

  • Month, week, day, and agenda calendar views
  • Multiple CalDAV calendars with visibility controls and colors
  • Create, edit, and safely delete CalDAV calendars
  • Toggleable, read-only external iCalendar (.ics) subscriptions
  • Timed, all-day, multi-day, and recurring events
  • Fast event search with optional fuzzy matching and keyboard navigation
  • Multi-day selection that pre-fills event and task date ranges
  • Series and single-occurrence recurrence editing
  • Dated and undated CalDAV tasks
  • Recurring tasks, subtasks, priorities, completion workflows, and a focused task sidebar
  • Light and dark themes
  • Docker, Compose, and Unraid deployment support

CalDAV implementations vary in optional features and edge-case behavior. DayFront writes explicit weekdays for weekly all-day recurrences and UTC metadata timestamps for reliable synchronization with Android clients and calendar widgets. Compatibility reports and fixes for different servers are welcome.

Screenshots

Light theme

Calendar Calendar and tasks Login
DayFront light theme calendar in month view DayFront light theme calendar with the calendar and task sidebar open DayFront light theme CalDAV login page

Dark theme

Calendar Calendar and tasks Login
DayFront dark theme calendar in month view DayFront dark theme calendar with the calendar and task sidebar open DayFront dark theme CalDAV login page

Security boundary

DayFront can use one administrator-configured CalDAV account (single-user, the default) or prompt each visitor to sign in with their own CalDAV credentials (caldav-login). Login sessions are encrypted, persistent, and inaccessible to frontend JavaScript. Use HTTPS before exposing either mode externally. See the security guide.

Local development

Requirements:

  • Node.js 24 or newer
  • pnpm 10.14.0
  • An accessible CalDAV server
pnpm install --frozen-lockfile
cp config.example.yaml config.yaml
pnpm dev

Edit config.yaml with the CalDAV URL and credentials. The web application is available at http://localhost:5173 during development.

Run the complete local verification suite with:

pnpm verify

Container deployment

The stable image is available for AMD64 and ARM64 hosts:

docker pull ghcr.io/erik-a-smith/dayfront:latest

Alternatively, copy config.example.yaml to config.yaml, configure the CalDAV connection, and build locally:

docker compose up -d --build dayfront

See the deployment guide for Docker, Compose, Unraid, timezone, health-check, and reverse-proxy configuration.

Using an HTTPS reverse proxy or tunnel? Set DAYFRONT_SERVER_TRUST_PROXY=true. In Unraid, set Reverse Proxy / Tunnel Access to true. Login through the proxy will otherwise be rejected because DayFront cannot recognize the browser's HTTPS origin. Enable this only for a trusted proxy that overwrites forwarded headers.

License

DayFront is available under the MIT License.

apps.detail.sections.mediaGallery

apps.marketingCta.appInstallTitle

apps.marketingCta.appInstallDescription

apps.installHelp.stepOpen apps.installHelp.stepSearchApp apps.installHelp.stepReview apps.installHelp.stepInstall

apps.detail.sections.requirements

An accessible CalDAV server. Enter only its URL for the default multi-user flow; DayFront generates and persists a unique login-session secret automatically.

apps.detail.sections.categories

apps.detail.sections.related

apps.detail.related.exploreCategories

apps.detail.related.exploreAll

apps.detail.sections.details

apps.detail.details.repository
ghcr.io/erik-a-smith/dayfront:beta
apps.detail.details.lastUpdated2026-08-08
apps.detail.details.firstSeen2026-08-03

apps.detail.sections.runtime

apps.detail.details.webui
http://[IP]:[PORT:8080]/
apps.detail.details.network
bridge
apps.detail.details.shell
sh
apps.detail.details.privileged
false
apps.detail.details.extraParams
--security-opt no-new-privileges=true

apps.detail.sections.configuration

Web UI PortPorttcp

Isolated host port for the DayFront beta Web UI.

apps.detail.config.target
8080
apps.detail.config.default
8081
apps.detail.config.value
8081
CalDAV Server URLVariable

Full HTTP or HTTPS URL of the CalDAV server.

apps.detail.config.target
DAYFRONT_CALDAV_URL
Authentication ModeVariable

Prompts each user for their own CalDAV credentials.

apps.detail.config.target
DAYFRONT_AUTH_MODE
apps.detail.config.default
caldav-login
apps.detail.config.value
caldav-login
Session Secret FileVariable

File where DayFront generates and retains its encrypted-login session key. Change only when using a custom data mapping.

apps.detail.config.target
DAYFRONT_AUTH_SESSION_SECRET_FILE
apps.detail.config.default
/data/session-secret
apps.detail.config.value
/data/session-secret
Session LifetimeVariable

Maximum login-session lifetime in hours. The default is 720 hours (30 days).

apps.detail.config.target
DAYFRONT_AUTH_SESSION_TTL_HOURS
apps.detail.config.default
720
apps.detail.config.value
720
Container TimezoneVariable

System timezone used for container logs and runtime behavior, for example UTC or America/Toronto.

apps.detail.config.target
TZ
apps.detail.config.default
UTC
apps.detail.config.value
UTC
Calendar Display TimezoneVariable

Timezone used to display and interpret calendar values. Use local, UTC, or an IANA name such as America/Toronto.

apps.detail.config.target
DAYFRONT_CALENDAR_TIMEZONE
apps.detail.config.default
local
apps.detail.config.value
local
Time Display FormatVariable

Time display format. Use 12h for AM/PM or 24h for 24-hour time.

apps.detail.config.target
DAYFRONT_UI_TIME_FORMAT
apps.detail.config.default
12h
apps.detail.config.value
12h
Sidebar Open by DefaultVariable

Set true to open the sidebar when DayFront loads; false starts with the calendar maximized.

apps.detail.config.target
DAYFRONT_UI_SIDEBAR_DEFAULT_OPEN
apps.detail.config.default
false
apps.detail.config.value
false
Trust Reverse ProxyVariable

Set true only when DayFront is directly behind a trusted proxy that overwrites forwarded headers.

apps.detail.config.target
DAYFRONT_SERVER_TRUST_PROXY
apps.detail.config.default
false
apps.detail.config.value
false
Persistent Session DataPathrw

Stores the generated session secret so users remain signed in across updates and restarts.

apps.detail.config.target
/data
apps.detail.config.default
/mnt/user/appdata/dayfront-beta/session
apps.detail.config.value
/mnt/user/appdata/dayfront-beta/session
Advanced Configuration DirectoryPathro

Optional directory containing config.yaml for advanced settings and external calendar subscriptions.

apps.detail.config.target
/config
apps.detail.config.default
/mnt/user/appdata/dayfront-beta
apps.detail.config.value
/mnt/user/appdata/dayfront-beta