Releases: Arishawke/asala-calendar
Releases · Arishawke/asala-calendar
Asala Calendar v0.22.0
Changed
- The color picker now works with TalkBack: each color swatch announces its hex
value and whether it is the selected one, instead of reading as an unlabeled
button. - TalkBack now reads the search field, the Settings switches (dim past dates,
working hours, working days, week numbers, and the translucent-widget toggle),
and the event editor's "All day" toggle with their proper name and on/off
state, and the whole row is tappable rather than just the switch. - The app launcher icon was refreshed to a darker, earthier teal-and-rust
design that matches the rest of the app's palette. - The "+N more" overflow lists now show each event's start time, matching the
schedule and search views.
Fixed
- A custom reminder reads the same everywhere. A reminder such as "3 hours
before" showed as "180 min before" on the event details while reading "3 hours
before" in the editor; both now use the same wording. - Editing an event no longer drops its other reminders. An event with more than
one reminder (for example one synced from another calendar app) kept only one
after you edited any of its details. Your reminders are now preserved when you
save an unrelated change. - A reminder you snoozed no longer rings again after you reschedule or delete
that event. The pending snooze is now cancelled when the event leaves the
schedule. - All-day reminders for the current day now fire reliably. A reminder for an
all-day event happening today could be skipped and silently never fire,
depending on the time of day the app last refreshed its reminders. - Weeks crowded with overlapping all-day events no longer hide some of them
without a trace. When more all-day events overlap than the row can show, a
"+N more" chip now appears and opens a list of the hidden ones. - Reminders re-arm after you set the device clock by hand. Previously only a
time-zone change re-armed them, so a manual clock change could leave a
reminder anchored to the old time. - All-day events with no stored time zone now read their dates in UTC, matching
how all-day dates are stored. Reading them in the device zone could shift the
dates if you opened such an event and turned the all-day toggle off. - Recurring events keep their exact length down to the second. The repeating-
event duration was rounded down to the whole minute when saved, so a length
carrying extra seconds (for example from an imported calendar) lost them. - Drag-to-reschedule now works in the Week, Day, and 3-Day timelines. Holding a
timed event lifted it but it would not move, because a competing tap gesture
swallowed the drag movement. You can now pick up a timed event and drop it at a
new time. - Drag-to-reschedule on a timed event that crosses midnight is steadier. The
continuation piece shown on the next day shared the event's real start, so
dragging it could miscompute the day shift and push the event outside the
visible week. Reschedule now works from the event's first piece, on the day it
starts. - Reminders set far in the future now fire reliably. The app kept reminders armed
only for the next 30 days and slid that window forward only when you opened it
or your calendar changed, so a reminder for an event more than a month out could
be missed if the app stayed closed. A daily background tick now keeps the window
moving forward on its own. - Snoozing a reminder no longer occasionally loses the snooze. The snoozed alarm
shared a scheduling slot with the original reminder, so reopening the app (or a
calendar change) could cancel the pending snooze before it fired. Snoozes now
keep their own slot. - A reminder you delete or reschedule while the app is closed no longer fires at
its old time. The app now remembers which reminders it has scheduled across
restarts, so a stale one is cancelled instead of surviving in the background. - Natural-language quick add no longer crashes if you type an out-of-range
relative date such as "in 99999999999 weeks". The unrecognized amount is left
in the title instead.
Asala Calendar v0.21.0
Removed
- The experimental Tasks toggle and its "coming soon" placeholder view. Asala is
focusing on being a clean calendar; task management is no longer planned. A
saved "Tasks" default-view preference falls back to Month.
Added
- Natural-language quick add in the new-event editor. Type a phrase like "lunch
at Cafe Rio tomorrow at noon" and the title, location, date, and time fill in
for you to review before saving. It recognizes relative dates (today, tomorrow,
weekdays, "next Friday", "the 15th"), times and ranges, durations, and
"at " locations; a date with no time becomes an all-day event. Anything
it does not recognize is left for you to fill in by hand. - Saving a new or edited event now points you to it when it lands off-screen. In
the day, week, and 3-day views, a tappable indicator appears at the top or
bottom edge ("New event at 9:00 PM") without moving your place; tapping it
glides to the event, which briefly glows. An event saved onto a different day
opens that day parked on it. Events already in view just glow, and all-day
events show no indicator. The schedule, month, and year views continue to
jump straight to the date.
Changed
- Calendar day cells in the month grid, mini-month, and year views now announce
their full date (for example "Wednesday, June 10, 2026") and a button role to
TalkBack, instead of reading just the bare day number. - The mini-month date-picker cells are now at least 48dp tall, meeting the
recommended minimum touch-target size. - Text on colored fills (multi-day bars, the account avatar, and day-view all-day
rows) now picks black or white by actual WCAG contrast rather than a rough
brightness midpoint, so labels stay legible across more colors. The custom
calendar-color picker now previews sample text on the chosen color and warns
when a color is too close to the background to tell apart. - TalkBack support improvements: the screen title now announces view and date
changes, Schedule day headers are exposed as headings for quick navigation, and
timeline events offer "Move 15 minutes earlier/later" actions so the drag-to-
reschedule gesture is reachable without dragging.
Fixed
- Applying a change to "All events" of a repeating event from a later occurrence
no longer drops the earlier ones. Dragging an occurrence to a new time (or
editing one) and then choosing "All events" now shifts the whole series by the
amount you moved it, keeping every occurrence, instead of moving the series
start onto the occurrence you touched and silently removing the ones before it.
Choosing "This event" or "This and following" was unaffected. - The Schedule view's event window now follows the date. Previously it was fixed
at app start, so leaving the app open across one or more midnights slowly
shrank how far ahead the agenda showed events. It now re-anchors as the day
changes. - Natural-language quick add no longer misreads the everyday words "sun", "sat",
and "wed" as weekdays, so a phrase like "enjoy the sun" stays a plain title.
Spelled-out names ("sunday") and qualified forms ("next sun") still set the
date. A parsed zero-length time ("for 0 minutes") now falls back to the
default event length instead of creating a 24-hour event. - Opening an existing event to edit (or duplicating one) now shows a brief
loading spinner until its details finish loading, instead of a blank form.
This prevents an edit made in that first moment, such as changing the time,
from being silently discarded when the event's data lands a moment later.
This was only reachable when the load was slow (large or syncing calendars,
slower devices). Creating a new event is unaffected. - Events on read-only calendars (such as holidays, birthdays, and subscribed
calendars) no longer show Edit and Delete buttons that could never work. When
a delete is rejected for any reason, for example a read-only calendar or
calendar permission revoked while the app is open, the app now shows a brief
message instead of failing silently. - A repeating event whose "ends on" date was set earlier than its start date no
longer saves as an event with no occurrences that silently disappears. The
date picker now blocks those dates, and the save is rejected if one slips
through. - Deleting "this and following events" from the first occurrence of a repeating
event now removes the whole series cleanly, instead of leaving an invisible
leftover event behind that could resurface when syncing. - The highlighted "today" now updates after a device time-zone change, for
example when travelling across the date line, instead of staying on the
previous day until the app is restarted.
v0.20.0
Added
- Widget appearance settings (Settings > Widgets): the home-screen agenda and
month widgets can now use their own theme (Follow app, System, Light, Dark, or
AMOLED) independent of the app theme, and an optional translucent background
that lets the wallpaper show through. Existing widgets keep following the app
theme until changed.
Changed
- The Settings screen is now organized into collapsible sections. It opens with
General expanded and the rest collapsed, so it is shorter and easier to scan;
tap a section header to expand or collapse it. - Settings sections reordered: Widgets now sits below Notifications.
- Month scroll style moved into the General section, just below Default view.
- The month view now defaults to continuous (endless vertical scroll) instead of
paged. Switch back any time in Settings > General > Month scroll style. - Week can now start on any day, not just Sunday, Monday, or Saturday.
- The mini-month panel (the split view in Week, 3-Day, Day, and Schedule) now
changes months by swiping left or right instead of arrow buttons, and
switching months moves the view to the first of that month.
Fixed
- Deleting a single occurrence of a repeating event ("this event only") no
longer removes the whole series. The other occurrences now stay. - Editing a single occurrence of a repeating event ("this event only") no
longer removes the whole series. Only that occurrence changes; the rest
stay. The edited occurrence becomes its own one-off event. - A repeating event with an end date now stops on the correct day in time zones
other than UTC. The final occurrence on the end date is no longer dropped. - Editing a repeating event no longer changes its stored time zone to the
device's. An event created in (or imported from) another time zone keeps its
original zone, so its later occurrences stay put instead of shifting. - Saving an event whose end is before its start is now rejected instead of
silently storing an inverted or zero-length time range. - Editing "this and all following" on a repeating event that recurs on specific
weekdays (for example an imported every-Monday-and-Wednesday series) now keeps
those weekdays on the later occurrences instead of repeating every day. - A delete or drag-to-reschedule that the calendar storage rejects no longer
looks like it worked: the event stays visible (delete) or snaps back to its
original time (drag) instead of silently appearing to change. - A cancelled occurrence synced from another calendar (for example an event
cancelled in Google Calendar) is now hidden from the calendar views, search,
and widgets instead of lingering struck-through. - Opening a malformed timed event whose stored end equals its start (for
example a zero-length row from an import) no longer leaves the editor stuck.
Its end is shown as the default event duration so it can be edited and saved.
v0.19.0
Added
- Home-screen agenda widget. A resizable, scrollable list of your upcoming events grouped by day (Today, Tomorrow, then by weekday), in your chosen light or dark theme, showing only the calendars you have visible. Tap an event to open it, or the header to open the app. It refreshes when your calendar changes and rolls over at midnight.
- Home-screen month widget. The current month as a grid, with each day's events as calendar-colored chips, multi-day events spanning every day they cover as a continuous band (and a +N count when a day has more), and today circled. Tap a day to open it in Schedule view, or the month header to open Month view. It follows your theme, week-start, and visible calendars.
Fixed
- Creating or saving a repeating all-day event no longer crashes.
- The app no longer crashes when the calendar storage rejects a change or access is revoked mid-session.
- Editing a repeating event without changing its repeat settings no longer shifts when the series ends or drops repeat details the editor does not show.
- The agenda widget now caps how many events it lists and adds a "+N more" row, so a very busy two weeks can no longer make it fail to load.
- Screen readers can now open events, and hear status (tentative or cancelled) and full dates, across the Week, Day, 3-Day, Month, Schedule, Search, and Year views.
- Several more all-day, recurrence, and reminder fixes. See the full list in CHANGELOG.md.
Known issues
- Deleting only this occurrence of a repeating event currently removes the whole series instead. A fix is coming soon. Until then, avoid the single-occurrence delete on repeating events.
Install the attached asala-calendar-v0.19.0.apk (signed). Obtainium is the recommended path for auto-updates. See CHANGELOG.md for full history.
v0.18.0
First full (non-pre-release) build.
Added
- Year view — a scrollable overview of the whole year as a 3-column grid of mini-months, with today highlighted and dots on days that have events. Tap a day to open it in Day view, or a month name to open Month view. Pick it from the view switcher or set it as your default view.
Changed
- The continuous (scrolling) Month view now shows only each month's own days. Where a month does not start or end on a week boundary the surrounding cells are left blank instead of filled with the previous and next month's dates, so consecutive months no longer run together. The paged Month view is unchanged and still shows the adjacent days.
- Views now switch from a button in the top bar — a dropdown of all views with the current one checked — instead of from the navigation drawer. The drawer now holds only your calendars and Settings.
Install the attached asala-calendar-v0.18.0.apk (signed). See CHANGELOG.md for full history.
v0.17.0
Added
- Custom event and calendar colors: tap "+" in any color picker to choose a free color with an HSV wheel or a hex code. Custom colors are stored on this device only and are not synced to other apps or devices.
- Duplicate an event: the event detail sheet now has a Duplicate action that opens the editor prefilled with a copy to tweak and save separately. Duplicating a repeating event creates a single one-off.
- A "Support Asala" link in Settings, under About, that opens the project's Ko-fi page.
Changed
- The Settings "About" section is now a single compact block: app name, version, and license on two small lines, with a Source / Licenses / Support action row.
- In "Local only" and "Sync only" modes the excluded accounts are fully hidden: gone from the drawer and from the Settings hidden-accounts list.
Fixed
- "Sync only" calendar source now also hides on-device (local) calendar events from the timeline, not just from the drawer and event editor.
Install the signed app-release.apk below. Pre-release software; use at your own discretion.
v0.16.0
Changed
- Events that cross midnight now read as one event in two parts, each with a "1/2" / "2/2" continuation badge and one meaningful time, instead of the next-day slice looking like a separate event at midnight. Applies to Week, Day, 3-Day, and Schedule views.
- The event-editor calendar picker now shows each calendar as a color-dotted chip in a side-scrolling row, with an account selector above it when more than one account has calendars.
Pre-release. Signed APK (app-release.apk) attached.