Documentation
Product guides and self-hosting runbooks for Kalendee. The sidebar shows the full planned structure; pages appear here as they are authored.
-
Getting started
Create an account, find your way around the week view, and add your first event.
-
Calendars and events
Create and organize calendars, and manage the events on them.
-
Recurring events
Create repeating events and understand how series are edited and split.
-
Sharing and following
Share a calendar with people on your instance, and follow public calendars.
-
Public access
Publish read-only calendar links and control who can open them.
-
Organizations
Group people and calendars under a shared page, with roles and teams.
-
Groups and quotas
Admin-managed user groups, storage quotas, and how limits resolve.
-
Availability and scheduling
Publish office hours and let people request a time on your calendar.
-
Event invites and RSVP
Invite users or email addresses to an event and collect yes / no / maybe replies.
-
Notifications
In-app activity notifications, unread badges, and browser reminders.
-
External calendar connections
How Kalendee links external calendars and reads remote events: the provider matrix, implementation order, security model, and data model for mirrored calendars.
-
Directory and profiles
Find people, organizations, and public calendars, and manage your own profile.
-
Clients
The web UI, the state of the Compose clients, and the planned CalDAV library.
-
Theming
Accent colors, the web UI theme, and how theming is shared across Kalendee.
-
Accounts and security
Registration policies, sign-in, sessions, passwords, admin powers, and Discord OAuth.
-
Requirements
Supported platforms, Java and PostgreSQL versions, ports, resource guidance, and outbound network access for a self-hosted Kalendee instance.
-
Docker Compose
The primary Kalendee deployment path: a published image plus PostgreSQL, configured with a bind-mounted HOCON file and a secrets-only .env.
-
Standalone binary
Run the Kalendee fat jar or distZip release directly under Java 21, with a service user and a systemd unit.
-
NixOS
Deploy Kalendee declaratively with the services.kalendee flake module, running the published OCI image against an externally managed PostgreSQL.
-
Configuration
The HOCON reference for a self-hosted Kalendee server: config-file precedence, ${?ENV} substitutions, and every key in ktor, database, auth, app, oauth, mail, storage, and keel.
-
Environment variables
Every KALENDEE_* environment variable, the HOCON key it overrides, its default, and the compose-only variables consumed by docker-compose.yml.
-
Database
PostgreSQL is the only supported database for Kalendee: JDBC settings, the Hikari pool, startup Flyway migrations, version requirements, and connection troubleshooting.
-
Object storage
How Kalendee stores user-uploadable objects: the local filesystem backend, the S3-compatible backend, a complete Cloudflare R2 setup, and redirect-based public serving.
-
Email
Configuring outbound mail for Kalendee: the smtp, cloudflare, mailgun, and log transports, the full key set, provider caveats, and how to test delivery.
-
Cloudflare Workers
Deploy the two Kalendee Workers — the Email Routing mailer and the private-R2 read gateway — and wire the server to them with the exact HOCON keys.
-
Reverse proxy
Terminate TLS for Kalendee with Caddy, nginx, or Traefik, and configure the public URL, secure cookies, and forwarded headers correctly.
-
Backups and upgrades
Back up PostgreSQL, avatars, and secrets; understand Flyway migrations on startup; upgrade safely and know the limits of rolling back.
-
Administration
Seed the first admin, grant superadmin, control registration, manage users and groups with storage quotas, and inspect the database.
-
Discord OAuth
Set up the Discord integration: application credentials, the redirect URI derived from app.baseUrl, token-vault key rotation, OAuth sign-in, and server-event import.
-
Security
Secrets handling, session cookies, password hashing, TLS, least privilege, API exposure, rate limiting, and the AGPL network-service source obligation.
-
Troubleshooting
Diagnose configuration, database, migration, port, avatar, mail, OAuth, reverse-proxy, and health-check problems with concrete commands.
-
Overview
What Kalendee is, who it is for, and what the web app does today.
-
Self-hosting overview
What runs in a Kalendee deployment, the three supported ways to run it, and how to pick between them.