Calendula
A modern calendar.
Calendar
Loading…
Retry
Something went wrong.
Calendar access is required.
Grant access
No calendars configured.
Open system calendar settings
Could not read the calendar.
See all your events, beautifully
Calendula needs access to your calendar to show and manage your events. That\'s all it asks for up front — and nothing ever leaves your device.
Grant calendar access
Calendar access denied
Calendula cannot show events without calendar access. You can grant it again in the system settings.
Open system settings
Try again
Stays on your device
Your calendars are read locally and never leave the phone.
All your calendars, together
Google, CalDAV, local — anything synced to the device just appears.
No tracking, ever
Zero telemetry, zero analytics, no ads.
Stays on your device · no internet permission
Previous month
Next month
Today
More actions
Open menu
Settings
Today
This week
Wk
Today
Back
Edit
Delete
Share
Duplicate
Share event
Couldn\'t share this event.
Delete event?
The event is removed from your calendar and from every device it syncs to.
Delete recurring event
Only this event
This and all following events
All events in the series
Edit recurring event
Couldn\'t delete the event
Calendula needs write access to delete events
Move…
Move recurring event
Moving the whole series would change which days it falls on, so only this event can move.
Moved to %1$s
Undo
Move undone
Couldn\'t move the event
Calendula needs write access to move events
That event no longer exists
Can\'t move an event past the end of its series
Cancel
OK
New event
Close
Save
Add title
Managed by “%1$s” — the title, date and repeat are kept in sync from your contacts. Reminders, location and notes are yours to edit.
Starts
Ends
Ends before it starts
No writable calendar available
Couldn\'t save the event
Calendula needs write access to create events
More fields
Add
Add reminder
Remove reminder
Guests
Add guest
Add a guest by email…
Add from contacts
Pick address from contacts
Remove guest
Required
Optional
Calendula doesn\'t send invitations. Your calendar account may email guests when it syncs.
Stored on this device. No one is notified.
Custom
minutes
hours
days
weeks
Availability
Visibility
Device time zone
Follows wherever you are
Search time zones
Recent
All time zones
No time zone matches “%1$s”
%1$s your time
Color
Calendar color
Custom color
Reset
Not available for this calendar
This calendar publishes no color set. You can allow custom colors for such calendars in Settings.
This calendar may drop or overwrite the color on its next sync.
Event changed elsewhere
While you were editing, this event was changed — by sync or another app. What should happen to your changes?
Save my changes
Only fields you edited overwrite the outside change
Discard my changes
The event stays as it is now
Event deleted
This event was deleted in the meantime, for example on another device. Your changes can no longer be saved.
Apply your default reminder?
This event was imported without any reminder.
- This event was imported with %1$d reminder.
- This event was imported with %1$d reminders.
Apply default
Keep as-is
Does not repeat
Custom
Every
days
weeks
months
years
Enter a number from 1 to 999
Next: %1$s
This rule never repeats
Ends
Never
On a date
After a number of times
times
Repeats end before the event starts
Busy
Default
Public
All day
Calendar
Unknown calendar
Location
Description
Attendees
Recurrence
Repeating event
Every day
Every week
Every month
Every year
Every %1$d days
Every %1$d weeks
Every %1$d months
Every %1$d years
%1$s on %2$s
%1$s until %2$s
%1$s, %2$d times
This event no longer exists.
Accepted
Declined
Tentative
No response
—
Reminders
Time zone
Tentative
Cancelled
Free
Private
Confidential
Whatever this calendar normally does
Everyone with access sees the full details
Others see only that you\'re busy
Marked confidential; what that means is up to the calendar account
Organizer
Optional
Resource
Your response: %1$s
At time of event
Default reminder
- %d minute before
- %d minutes before
- %d hour before
- %d hours before
- %d day before
- %d days before
- %d week before
- %d weeks before
- %d minute
- %d minutes
- %d hour
- %d hours
- %d day
- %d days
%1$s %2$s
At most %1$s
- %d week
- %d weeks
(No title)
Event reminders
Notifications at the reminder times of your events
Never miss an event
Android doesn\'t show event reminders by itself — a calendar app has to. Let Calendula take that job.
Reminders, delivered
Every reminder on your events arrives as a notification, right on time.
Using a second calendar app?
If another app also posts reminders, you\'ll see them twice — turn them off there or here.
Change it anytime
The switch lives in Settings, under Notifications.
Turn on reminders
Not now
Snooze
Dismiss
Tomorrow
Yesterday
Month
Week
Day
Agenda
View
Jump to date
Today
Today
Tomorrow
You\'re all caught up
No more events today
Starts %1$s
Ends %1$s
Go to today
Search
Search events
Back
Clear
Search your events by title, location or notes.
No events match “%1$s”.
- %d selected
- %d selected
Cancel selection
Select all
Delete selected
- Delete %d event?
- Delete %d events?
- %d event deleted
- %d events deleted
%1$d deleted, %2$d couldn\'t be
Upcoming
Calendula agenda
Calendula month
Refresh
New event
Open Calendula to grant calendar access
Previous month
Next month
Today
Calendars
Settings
Back
Back
Appearance
Theme
System
Light
Dark
Whether the app is light or dark. The choice applies immediately.
Currently %1$s
Default view
Dynamic colour
Requires Android 12 or newer
Harmonise calendar colours
Keep each calendar\'s hue but even out its brightness, so every event stays legible and the colours sit together. Turn off to show the raw colours from the calendar source.
Headings font
Body font
System default
Atkinson Hyperlegible
Lora
JetBrains Mono
Choose file…
Custom font
Couldn\'t read that file as a font
Thursday, 14 May
Team review at 10:00, then lunch with Robin at the café on Marktplatz.
Week starts on
Automatic
Currently %1$s
Week numbers
Show calendar-week numbers in month view
Today button in toolbar
Show a jump-to-today button in the toolbar instead of a floating button
App name
Show Calendula as “Calendar” in your launcher. Only the launcher name changes; the icon may move to a new spot after switching.
Time format
Automatic
12-hour (2:00 PM)
24-hour (14:00)
Following the system: %1$s
Hour lines
Show a separator line at each hour in week and day view
Hour height
How much vertical space one hour takes in week and day view. Both views share this setting. You can also pinch the timeline with two fingers to set any height in between.
Fit whole day
All 24 hours on one screen, no scrolling
Compact
More hours per screen, smaller blocks
Regular
The standard spacing
Comfortable
Roomier blocks, more scrolling
Custom
The height you pinched the timeline to
Dim completed events
Fade events that have already ended in month and week view
Past events
Show
Dim
Hide
Team review
Lunch with Robin
Choir practice
Agenda
Agenda range
How far ahead the Agenda screen lists events.
Agenda widget range
How far ahead the agenda home-screen widget lists events.
Agenda widget size
How large the agenda home-screen widget draws its text. The month widget has no setting — its grid always fits itself to the space you give it.
Small
Medium
Large
Extra large
Event text %1$d%%
Always show today
Keep today at the top of the agenda and its widget, even once nothing is left today.
Range bar
Show a bar at the top of the agenda naming the dates shown, with a button to switch the range for the session
Today
This week
This month
Next 7 days
Next 30 days
Custom…
Days
Just for now — resets to your saved range when you reopen Calendula.
Showing all upcoming events for
- %d day
- %d days
Views
Month view
Month view style
Pages
One month fills the screen. Swipe left or right to change month.
Scrolling months
Each month sits under its own heading, with a little space setting it apart from the next.
Seamless weeks
The weeks run on without a break, each month flowing straight into the next with no gap between them.
Split
A compact grid marks the days that have events, and the day you tap is listed underneath.
Nothing scheduled
Show the whole month
Show the day\'s events
Quick-switch button
Choose which views the top-right button cycles through, and drag to reorder them. Turned-off views stay reachable from the navigation menu.
Navigation menu
Drag to reorder the views listed in the navigation menu.
Drag to reorder
New event form
Fields shown by default — everything else sits behind \"More fields\"
Focus title on new event
When you start a new event, place the cursor in the title field and open the keyboard right away.
Default duration
How long a new event lasts until you change its end time. All-day events aren\'t affected.
Per-calendar duration
Give a calendar its own default length — e.g. 8 hours for work shifts.
Default (%1$s)
Use default duration (%1$s)
Allow colors on unsupported calendars
Some calendars (e.g. certain CalDAV) publish no color set; a custom event color may be dropped or overwritten on their next sync. That\'s a limitation of those calendars, not something Calendula can fix.
Notifications
Event reminders
Seeing reminders twice? Another calendar app is posting them too — turn them off in one of the two.
Default reminder
All-day events
All-day reminder time
Reminders for all-day events fire at %1$s
Notifies at %1$s
None
Use default reminder
Amount
Set
Per-calendar reminders
Override the default per calendar — separately for timed and all-day events. A calendar can keep the default, drop it, or set its own.
Default (%1$s)
Reliable delivery
Android may delay reminders to save battery. Exempt Calendula so they arrive on time.
Exempt from battery optimisation — reminders arrive on time.
Snooze duration
Calendars
Manage calendars
Create local calendars; manage synced ones
Language
App language
System default
Help translate
Add or improve a language on Weblate
Look & behaviour
Data
App
About
Theme, colours, fonts
Default view, layout, order
Default fields and behaviour
Reminders and delivery
Contact birthdays & anniversaries
Agenda widget, Quick Settings tile
Export, import, automatic backup
Widgets & tiles
Settings for the home-screen widgets and the Quick Settings tile. Add a widget by long-pressing your home screen.
Backup & restore
All views
Week & day
The view Calendula opens on when you start it.
The day every week begins on, in all views and widgets.
How times are written throughout the app. Automatic follows your system setting.
What the agenda does with events that have already ended.
Take the app\'s colours from your wallpaper.
Contact special dates
Show contact dates
Mirror your contacts\' birthdays and other dates into local calendars. Reads contacts on this device only — nothing is uploaded, and your contacts are never changed.
Birthdays
Anniversaries
Other dates
Title format
Use {name} for the contact and {year} for the year (the birth year, or an anniversary\'s start year; hidden when unknown).
Reminders
Show year
Include {year} in titles when it is known
Sync now
Not synced yet
Last synced %1$s
Set each calendar\'s colour and visibility in Calendars settings.
Set in Contact special dates
Paused
Calendula can no longer read your contacts, so these calendars aren\'t updating.
Grant access
Turn off contact dates?
This deletes the contact-date calendars and their events. Any reminders or notes you added to them will be lost.
This deletes the “%1$s” calendar and its events. Any reminders or notes you added to them will be lost.
Turn off
Save
About
License
MIT
by Jean-Luc Makiola
Source
Privacy policy
Support development
Version %1$s
Calendula app icon
Report a problem
Send a crash report or open the issue tracker
Calendars
Your calendars
No local calendars yet. Create one to keep events on this device only.
Add calendar
Turn a calendar off to hide it on this device — its events disappear from the app and it stops reminding you. This is the same switch your other calendar apps use, so they hide it too. Nothing is deleted, no other device is affected, and you can turn it back on here anytime.
Show \"%1$s\"
Some calendars are switched off
Calendula now shows the calendars that are switched on for this device, so what you see and what reminds you can no longer disagree. Some of yours are currently off — they were switched off here or in another calendar app. Turn any of them back on in Settings → Calendars.
Missing a calendar?
It may be switched off, read-only, or filled from your contacts — manage your calendars here.
Read-only
Not synced to this device
Filled from your contacts
This calendar is filled from your contacts, so Calendula would create it again on the next sync. Turn special dates off under Settings → Special dates to delete it.
Synced calendars
These come from accounts on your device. Create and edit them in their own app.
Manage in app
%1$s (%2$s)
More options for %1$s
Enable all
Disable all
Add account
New calendar
Edit calendar
Name
Color
Add a description
Delete calendar?
\"%1$s\" and all of its events will be permanently removed from this device.
Couldn\'t save the change.
Backup
Local calendars aren\'t synced anywhere, so export them to an .ics file to keep a copy.
Export as .ics file
Export calendars
Choose which calendars to include in the .ics file.
Export
Restore
Restore from .ics file
Import events from a backup or another calendar app.
Automatic backup
Periodically export your local calendars to a folder as an .ics file.
Backup folder
Tap to choose a folder
Interval
Every %1$s
Minimum 30 minutes.
No automatic backup yet
Last backup: %1$s
Last backup failed: %1$s
Backup
Warns if automatic backups fail repeatedly.
Automatic backup failed
Calendula couldn\'t write the backup file. Check the backup folder in Settings.
- Minutes
- Hours
- Days
- Weeks
Couldn\'t export the backup.
- Exported %d event.
- Exported %d events.
Import events
Add to calendar
No events found in this file.
Couldn\'t read this file.
No writable calendar to import into. Create a local calendar first.
Import complete
Events already in the calendar were skipped.
Added
Duplicates
Close
Some changed occurrences of recurring events were skipped.
An event without a start time was skipped.
Guest lists weren\'t imported.
An unknown time zone fell back to your device\'s.
Import
- Importing %d event
- Importing %d events
- %d event in this file.
- %d events in this file.
- Import %d event
- Import %d events
- Imported %d event.
- Imported %d events.
- Skipped %d already in this calendar.
- Skipped %d already in this calendar.
New event
Create a new event
New event
Add Quick Settings tile
Add a “New event” tile to the Quick Settings panel.
https://codeberg.org/jlmakiola/calendula
https://codeberg.org/jlmakiola/calendula/src/branch/main/LICENSE
https://jeanlucmakiola.de/calendula/privacy
https://ko-fi.com/jeanlucmakiola
https://weblate.dev.jeanlucmakiola.de/engage/calendula/
%1$s crashed
%1$s closed unexpectedly last time. You can help fix it by sending this report as an issue. It stays on your device until you choose to share it, and includes no personal data or calendar content — only the technical details below.
Report
Not now
Crash report
%1$s crash report
Report copied to your clipboard
Couldn\'t open the issue tracker. The report is on your clipboard.
Thanks for reporting a crash in %1$s. Please add anything you remember about what you were doing, then submit.\n\n### What happened\n\n\n### Crash report\n%2$s\n
_(The report was too long for this link — paste it from your clipboard here.)_
https://codeberg.org/jlmakiola/calendula/issues/new
https://codeberg.org/jlmakiola/calendula/issues/new/choose
Birthdays
Anniversaries
Special dates
{name}\'s birthday ({year})
{name}\'s anniversary ({year})
{name}