94fa206e2ef48f45814a2e94b4927258387e374b
All checks were successful
CI / ci (push) Successful in 11m40s
- Rounded, permanently-soft day-column scroll viewport via two viewports sharing one scroll state (gutter + columns stay aligned); plain rectangular column cards inside - Vertical scroll position now persists across week swipes; noon-centring only runs on first entry into the week view (from month/day) - All-day strip height is hoisted + animated, shared by both swipe pages, so it slides along and resizes smoothly instead of jumping - Multi-line event time label so the end time isn't clipped in narrow columns; hour labels centred in the gutter - Calendar-week (ISO) badge in the header gutter, aligned with the date numbers; dropped the redundant "All-day" gutter label - Small breathing room between the top section and the timeline Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Calendula
A modern Material 3 Expressive calendar app for Android.
Calendula is named after the flower of the same name, whose name comes from
the Latin kalendae — the first day of the month — the same root as the
word "calendar". Calendula reads from Android's built-in CalendarContract,
so any calendar source synced to your device (CalDAV via DAVx5, Google,
local, WebCal subscriptions, ...) is shown.
Features (V1)
- Month, Week, and Day views
- Read-only event details (write support comes in V2)
- Multi-calendar visibility toggle
- Material You Dynamic Color (Android 12+)
- Light/Dark theme follows system
- German + English UI
Building
Requires Android SDK 36 and JDK 17. The Gradle wrapper is checked in, so no host Gradle install is needed:
# Build debug APK
./gradlew assembleDebug
# Run unit tests
./gradlew test
# Run lint
./gradlew lint
If your default JDK is something other than 17, set JAVA_HOME explicitly:
JAVA_HOME=/path/to/jdk-17 ./gradlew assembleDebug
License
MIT — Jean-Luc Makiola, 2026