-
v2.11.1
Stablereleased this
2026-06-28 10:42:01 +00:00 | 356 commits to main since this releaseFixed
- Calendula can now be set as your default calendar app. It registers the
calendar-app intent filters the system uses, so it appears in the chooser when
you tap a date in a launcher or clock — and opening one takes you straight to
that day. Android has no way for an app to make itself the default, so you pick
it once from the system picker. Thanks to @abrossimow for the report ([#9]).
Downloads
- Calendula can now be set as your default calendar app. It registers the
-
v2.11.0
Stablereleased this
2026-06-27 21:56:26 +00:00 | 358 commits to main since this releaseAdded
- Start the week on any day. The Week starts on setting (Settings →
Appearance) now offers every weekday — not just Monday or Sunday — alongside
the automatic, locale-based default. Thanks to @zmaherdev for the suggestion
([#3]). - Choose a 12- or 24-hour clock. A new Time format setting (Settings →
Appearance) lets you force a 12-hour (2:00 PM) or 24-hour (14:00) clock, or
follow the system setting automatically. It applies everywhere times appear —
the week and day timelines, agenda, event details, search and reminders — so
the format is now consistent across the whole app. Thanks to @zmaherdev for
the suggestion ([#6]). - Optional hour lines in the timeline. A new Hour lines switch (Settings →
Appearance) draws a faint separator at each hour in the week and day views,
making it easier to see when events start and end. Off by default. Thanks to
@zmaherdev for the suggestion ([#5]). - Limit how far ahead the agenda looks, and switch it on the fly. New Agenda
range and Agenda widget range settings (Settings → Appearance) let the
agenda screen and its home-screen widget each show just today, the rest of this
week, the rest of this month, a rolling 7 or 30 days, or a custom number of
days — "This week" follows your week-start. The agenda also gains a bar at the
top naming the exact dates in view, with a button to switch the range just for
the current session (it resets when you reopen the app); the bar can be turned
off. Thanks to @zmaherdev for the suggestion ([#4]). - Automatic backup of local calendars. A new Automatic backup option
(Settings → Calendars → Backup) periodically exports your local calendars to an
.icsfile in a folder you choose, on an interval you set (from 30 minutes up).
Useful for file-based syncing such as Syncthing, or simply as a safety net — it
is a one-way export and never touches your synced accounts. Thanks to @shield
for the discussion that inspired it ([#7], [#8]). - Field icons in the event-form settings. Each optional-field toggle (Settings →
Event form) now shows the same icon the field uses in the new-event form, so
the list is easier to scan. - Help translate Calendula. A Help translate link at the top of Settings →
App language opens the project's Weblate, where you can add or improve a
language in your browser — no coding needed. Contributions in any language are
welcome.
Changed
- Tidied Settings → Appearance into clearer groups (theme & colour, calendar,
agenda), and the agenda's empty state now reads "You're all caught up". - Reworked Settings → Calendars. Local and synced calendars are now grouped
into collapsible, source-branded cards — each account shows its app's icon —
with a per-account menu to enable or disable all of its calendars at once or
open the account in its source app. - Reorganised Settings → Notifications: reliable-delivery and snooze settings
moved up with the other global reminder options, and the per-calendar reminder
overrides now fold into a single expandable section. - Moved Add Quick Settings tile out of the event-form section to its own
top-level entry in Settings.
Downloads
- Start the week on any day. The Week starts on setting (Settings →
-
v2.10.0
Stablereleased this
2026-06-25 12:59:24 +00:00 | 394 commits to main since this releaseAdded
- Turn a calendar off across the whole app. Settings → Calendars now has a
switch on every calendar — both your own and synced ones. Switching one off
removes it everywhere: its events disappear from all views and search, and it
drops out of the drawer's hide/show filter, the event-form calendar picker and
the import target picker. Unlike hiding (the quick per-view checkbox in the
drawer), a disabled calendar leaves the app entirely until you turn it back on.
Nothing is deleted and no other app is affected — it's a Calendula-only view
choice — so you can re-enable it any time from the same screen, where disabled
calendars stay listed but dimmed. - An optional way to support development. Settings → About now has a "Support
development" button that opens Ko-fi in your browser. It's a plain donation
link with no perks attached, and it needs no new permissions — Calendula still
has no internet access of its own and just hands the link to your browser.
Downloads
- Turn a calendar off across the whole app. Settings → Calendars now has a
-
v2.9.0
Stablereleased this
2026-06-25 08:18:26 +00:00 | 420 commits to main since this releaseAdded
- Choose the view Calendula opens on. A new Default view setting (Settings →
Appearance) lets you pick Month, Week, Day or Agenda as the view shown each
time you start the app, instead of always opening on Week. Thanks to
@devinside for the suggestion ([#1]). - The month widget is now interactive: tap any day to open it, or tap an event to
open its details. Previously only the month's prev/next/today controls
responded. Thanks to @devinside for spotting this ([#2]). - Predictive back. Swiping back from a screen — an event, the editor, search or
settings — now follows your finger, shrinking the screen to preview what's
behind so you can see where Back will take you before you let go; slide it back
to cancel. The preview needs Android 14 or newer; on older versions Back works
as before. - Respect for "Remove animations". If you've turned animations off in your
device's Accessibility settings, Calendula now honours it everywhere: motion
collapses to a quick fade and the back preview is skipped.
Changed
- Smoother, more consistent motion throughout. Expanding sections, list updates
in search and agenda, and the onboarding screens now animate the same way
across the app, instead of some places sliding or growing while others popped
in. Switching between Month, Week, Day and Agenda now cross-fades rather than
snapping, while paging within a view keeps its slide.
Fixed
- Home-screen widgets now back out the way you came in. A day or event opened
from the Agenda widget keeps you in the agenda context, and from the Month
widget in the month context — pressing Back returns there instead of dropping
you on the week view. More broadly, the app now keeps a real view history:
switching views and drilling into a day are retraced by Back one step at a
time, down to your default view before the app exits. Thanks to @devinside for
reporting ([#2]).
Downloads
- Choose the view Calendula opens on. A new Default view setting (Settings →
-
v2.8.0
Stablereleased this
2026-06-25 05:25:41 +00:00 | 428 commits to main since this releaseAdded
- Find events fast. A search button in the top bar of every calendar view opens
a search box — type a couple of letters and matching events (by title,
location or description) appear, soonest first with past events below. Tap a
result to open it. Search covers your whole calendar, not just what's on
screen, and skips calendars you've hidden. A recurring event shows its next
occurrence rather than the date the series first started. - A current-time line in the day and week views. A thin coloured line marks the
present moment across today's column, so you can see at a glance where you are
in the day. It updates every minute and only appears when today is in view. - Add and remove event guests. The create/edit form now has a Guests section:
add people by email or pick them from your contacts, mark each as required or
optional, and remove them. Calendula never sends invitations itself (it has no
internet access) — it only records the guests; if the event lives on a synced
account, that account may email them when it syncs, and on a local calendar no
one is notified. The form tells you which applies. Picking a guest from
contacts needs no contacts permission. - Pick a location from your contacts. A contacts button beside the location
field drops a contact's address straight into an event — handy for a meeting
at someone's home or office. Like the guest picker, it needs no contacts
permission. - A "New event" Quick Settings tile. Add it to your quick settings to jump
straight into the new-event form from anywhere. Settings → New event has a
one-tap button to add the tile (Android 13+); on older versions you can add it
from the quick-settings editor. - Snooze and dismiss buttons on reminder notifications. Dismiss clears the
reminder; snooze hides it and brings it back after a delay you pick in
Settings → Notifications (5 to 60 minutes, default 10). Android's calendar
system won't re-post a reminder on its own, so Calendula schedules an exact
alarm to bring a snoozed one back on time.
Changed
- Event details now show each guest's email beneath their name, instead of only
when no name is available. - Crash and problem reports now open on the project's public Codeberg tracker,
where anyone can register and file an issue. Nothing is sent automatically —
you still review the report and submit it yourself in the browser.
Downloads
- Find events fast. A search button in the top bar of every calendar view opens
-
v2.7.5
Stablereleased this
2026-06-21 19:05:43 +00:00 | 457 commits to main since this releaseChanged
- Further build cleanup for the official F-Droid repository: stopped embedding
AGP's dependency-metadata block in the APK, which F-Droid's reproducible-build
scanner rejects as an extra signing block. No functional or visible changes —
the same app as 2.7.4, just without that Play-oriented metadata blob.
Downloads
- Further build cleanup for the official F-Droid repository: stopped embedding
-
v2.7.4
Stablereleased this
2026-06-21 18:30:29 +00:00 | 459 commits to main since this releaseChanged
- Build cleanup that lets Calendula ship in the official F-Droid repository:
removed an unused Gradle toolchain-resolver plugin, which F-Droid's offline,
reproducible build process disallows. No functional or visible changes — this
is the same app as 2.7.3.
Downloads
- Build cleanup that lets Calendula ship in the official F-Droid repository:
-
v2.7.3
Stablereleased this
2026-06-21 12:21:36 +00:00 | 463 commits to main since this releaseFixed
- Home-screen widgets no longer get stuck on a loading spinner in the published
(F-Droid) release build. They render via Android's background-work system, and
release optimisation (R8) was stripping a helper class it loads by name, so the
render job never ran. Added the missing keep rule — widgets now load normally.
Downloads
- Home-screen widgets no longer get stuck on a loading spinner in the published
-
v2.7.2
Stablereleased this
2026-06-21 11:19:06 +00:00 | 468 commits to main since this releaseAdded
- Crash reporting you control. If Calendula closes unexpectedly, it now captures
a technical report and, on the next launch, offers to send it as an issue on
the project's tracker. Nothing is uploaded automatically — the report stays on
your device until you choose to share it, it contains no personal data or
calendar content (only the app, Android and device versions plus the stack
trace), and you see the full text before sending. There's also a "Report a
problem" entry in Settings, and if the app ever fails to start repeatedly, a
minimal recovery screen still lets you send the report.
Downloads
- Crash reporting you control. If Calendula closes unexpectedly, it now captures
-
v2.7.1
StableAll checks were successfulCI / ci (push) Successful in 4m8sRelease — F-Droid repo + Gitea release / ci (push) Successful in 2m29sRelease — F-Droid repo + Gitea release / gitea-release (push) Successful in 5sRelease — F-Droid repo + Gitea release / build-and-deploy (push) Successful in 5m43sreleased this
2026-06-21 09:59:32 +00:00 | 478 commits to main since this releaseFixed
- Fixed the app crashing immediately on launch whenever calendar access hadn't
been granted yet (a fresh install, or after revoking the permission). The app
set up its live calendar-change listener before the permission screen could
appear, which newer Android versions reject outright — so the app died before
you could grant access. The listener now waits for the permission and attaches
itself the moment it's granted.
Downloads
- Fixed the app crashing immediately on launch whenever calendar access hadn't