Jean-Luc Makiola 54aed73726
All checks were successful
CI / ci (push) Successful in 4m30s
docs: F-Droid install guide with repo URL + fingerprint; backlog daily-driver ideas
README gains a real install path: add the self-hosted repo
(apps.dev.jeanlucmakiola.de/dev/fdroid/repo, fingerprint inline and as an
add-repo link), search, install. Verified live against the repo index.

Roadmap gains the approved daily-driver idea backlog (unscheduled): slot-tap
create, drag & drop rescheduling, agenda view, pinch-zoom, reminder
snooze/dismiss + default reminder, duplicate event, per-event color,
.ics share/receive, app shortcuts, jump-to-date — plus the consciously
rejected list (network-dependent features, NL quick entry).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-11 22:48:30 +02:00

Calendula icon

Calendula

A modern Material 3 Expressive calendar for Android.
Reads, writes, and reminds — on top of the system calendar, with zero network access.

CI Android 10+ Kotlin + Compose Material 3 Expressive MIT License

Week view  Month view  Event detail  Event form  Reminder onboarding

Calendula is named after the flower whose name — like the word calendar — comes from the Latin kalendae, the first day of the month. It lives entirely on top of Android's CalendarContract: any calendar synced to your device (CalDAV via DAVx5, Google, local, WebCal subscriptions, …) simply appears, and everything you create or edit syncs back the same way. No own database, no sync stack reinvented.

Features

Calendar

  • Month, week, and day views with a one-tap view switcher
  • Full event details — attendees and their responses, reminders, recurrence (humanized), availability, visibility, foreign time zones
  • Per-calendar visibility toggle, grouped by account

Editing

  • Create, edit, and delete events — including recurring events with scoped writes: only this event, this and all following, or the whole series
  • Recurrence picker with one-tap presets and custom rules (interval, weekday toggles, end conditions); rules it can't express are preserved verbatim
  • Conflict-safe saves: if an event changed elsewhere while you were editing, Calendula asks instead of silently overwriting
  • Read-only calendars (WebCal, birthdays) are detected and respected

Reminders

  • Event reminders delivered by Calendula itself as notifications — essential when it's your only calendar app, since Android delegates reminder delivery to calendar apps
  • Tap a reminder to land on the event

Design & privacy

  • Real Material 3 Expressive throughout — dynamic color (Android 12+), expressive motion and shapes, light/dark theme
  • German and English UI, per-app language setting
  • Zero telemetry, zero analytics, no internet permission — your data never leaves the device

📦 Install

Calendula ships through a self-hosted F-Droid repository; every version tag is built, signed, and published there automatically.

  1. Install an F-Droid client (F-Droid, Droid-ify, Neo Store, …).

  2. Add the repository — open this link on your phone, or paste it under Settings → Repositories → Add:

    https://apps.dev.jeanlucmakiola.de/dev/fdroid/repo?fingerprint=968F796B05DF622BBE18AD6FC1D1EF788D5A6DA1FF05BBEC6B7043BF10A09465
    

    Repo: https://apps.dev.jeanlucmakiola.de/dev/fdroid/repo · fingerprint (SHA-256): 968F 796B 05DF 622B BE18 AD6F C1D1 EF78 8D5A 6DA1 FF05 BBEC 6B70 43BF 10A0 9465

  3. Refresh, search for Calendula, install. Updates arrive like any other F-Droid app.

Alternatively, build from source — see below.

🛠 Building

Requires Android SDK 36+ and JDK 17. The Gradle wrapper is checked in:

./gradlew assembleDebug   # debug APK
./gradlew test            # JVM unit tests
./gradlew lint            # Android lint

If your default JDK is not 17, set JAVA_HOME explicitly.

🏗 Architecture

Single-activity Compose app, layered UI → Repository → DataSource → CalendarContract, observer-driven refresh, JVM-first tests. The full tour — including the recurring-write and reminder pipelines — lives in docs/ARCHITECTURE.md.

🗺 Roadmap

Shipped: read (v1.0), write (v1.1v2.0), reminder delivery (v1.4). Next up: power-user features — widget, search, tablet layouts. The living roadmap is in .planning/ROADMAP.md, the release history in CHANGELOG.md.

📜 License

MIT — Jean-Luc Makiola, 2026

Description
A modern Material 3 Expressive calendar app for Android
Readme MIT 3.1 MiB
v2.7.0 Latest
2026-06-18 14:24:35 +00:00
Languages
Kotlin 99.6%
Python 0.4%