Files
calendula/.planning/PROJECT.md
Jean-Luc Makiola 59d118aba1 docs(planning): pin Kotlin/KSP/AGP patch versions, document KSP constraint
Code review on Task 2 flagged that 'Kotlin 2.3' could mislead a future
reader into bumping to 2.4.0, which has no KSP release yet. Spell out
the full versions and the KSP pairing constraint in both PROJECT.md
(Stack section) and REQUIREMENTS.md (Constraints section).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-06-08 15:01:50 +02:00

1.4 KiB

Calendula

What This Is

A modern Material 3 Expressive Android calendar app, read-only V1. Lives entirely on top of Android's CalendarContract — any calendar synced to the device (CalDAV via DAVx5, Google, local, WebCal, …) shows up automatically. The differentiator is visual: real Material 3 Expressive design that no existing FOSS calendar app delivers.

Core Value

A calendar app that is genuinely pleasant to look at and use, without re-inventing the calendar sync stack — leave that to DAVx5 and the system.

Current Milestone

v0.1 — Foundation & CI: Buildable Android project scaffold with theme, icon, i18n, Hilt, DataStore, green CI.

Stack

Kotlin 2.3.21 (paired with KSP 2.3.9 — Kotlin 2.4.0 has no KSP release yet, do not upgrade until one ships). Jetpack Compose + Material 3 Expressive 1.5.0-alpha21 (alpha is intentional — Expressive APIs only live in the 1.5 alpha line). Hilt 2.59.2, DataStore. Gradle Kotlin DSL with Version Catalog. AGP 9.1.1, Gradle 9.5.1. JVM target 17.

Read-only V1, write support V2.

Android-only (minSdk 29, targetSdk 36). No iOS.

Naming

"Calendula" — Latin kalendae ("first day of the month", root of "calendar") is also the etymological root of the marigold flower Calendula. The icon shows a stylized "1" on a slate squircle.

Source

Hosted on self-hosted Gitea, released through self-hosted F-Droid repo on Hetzner. Same infrastructure as HouseHoldKeaper.