Skip to content

add custom recurrence to alarms through the newly added "Add advanced alarm" option - #556

Merged
Elektron123 merged 29 commits into
you-apps:mainfrom
RisPNG:alarm-custom-recurrence
Aug 20, 2026
Merged

add custom recurrence to alarms through the newly added "Add advanced alarm" option#556
Elektron123 merged 29 commits into
you-apps:mainfrom
RisPNG:alarm-custom-recurrence

Conversation

@RisPNG

@RisPNG RisPNG commented Aug 18, 2026

Copy link
Copy Markdown
Contributor

this is... quite a big change. take your time auditing and testing things, as I am also doing the same, but I believe it's a good feature that'll make this app stands out from the rest, without really disturbing the normal clock functionality.

this adds an "Add advanced alarm" option in a small menu beside the alarm add button. pressing the add button normally still opens the current alarm editor with its Repeat switch and weekday selection, so the extra settings only appear when the user asks for them.

image

the advanced editor lets an alarm start on a date, repeat for a duration, repeat every number of days, weeks, months, or years, and end on a date or after a number of occurrences. monthly and yearly alarms can also follow either the date or weekday of their start date.

this is basically based on Google Calendar's "Custom recurrence" implementation, so the recurrence model isn't merely a concept but something that has already worked for many users. the main addition here is "Repeats for", which lets each repetition cover several days instead of only a single occurrence.

image

Example use case

this is particularly useful for someone working a six-day rotating shift: 2 morning shifts, 2 night shifts, then 2 days off.

only two alarms are needed:

  1. the morning alarm starts today, repeats for 2 days, and repeats every 6 days
  2. the night alarm starts the day after tomorrow at a different time, also repeats for 2 days, and repeats every 6 days

the morning alarm rings today and tomorrow, followed by the night alarm for the next two days. neither rings during the two days off, then both return at the correct part of the next cycle. the user only has to set them once without moving the alarms around every week.

the same recurrence can also cover schedules such as every 3 days, weekdays every second week, or the 31st of every month while using the last day when the month is shorter.

underneath, occurrences are calculated from the start date and recurrence instead of the old repeat flag. finished schedules disable themselves after their last occurrence, while the database migration keeps existing repeating alarms as weekly repetitions and turns existing one-time alarms into schedules that end after one occurrence.

Related PRs

Solved, whichever order the other PR(s) are merged in shouldn't cause any conflicts.

Extra

image

Normal add alarm untouched when added normally through the plus button directly.

image

Example 1 of scheduled/advanced alarm.

image

Example 2 of scheduled/advanced alarm.

RisPNG added 21 commits August 17, 2026 10:39
… start date, and end on a date or after a number of occurrences
…ields so they match the alarm group, and align them with the alarm name field
…ed field so it stops reading as a pill next to them
…the outlined fields use, since the button outline is a fainter variant
…s start date the way a monthly one does, and rename the monthly anchor since both units now share it
…onthly one does, instead of an ordinal that needs a translated word for every day of the month
…, rather than adding a version that only renames it afterwards
…tition covers a run of days rather than a single one
…der the fields that set them, and say so on the card when a repetition never lets an alarm ring
…ince no single field decides them on its own
…petition stops ringing and when it comes back rather than when the alarm next rings
…since always still covers a week of a weekly repetition and a single day of the others
…he add button itself on the repeat switch the alarm editor always had
…back from the schedule, so an advanced alarm that happens to look simple still opens where it was made
…e control with a subordinate side, and keep the plus itself the square it was
…e editor reads an id and a choice of editor rather than the strings the arguments defaulted to
…hey already share, and move the chevron to the trailing side
@RisPNG
RisPNG force-pushed the alarm-custom-recurrence branch 2 times, most recently from edabb81 to 24372e8 Compare August 18, 2026 04:22
@Elektron123

Copy link
Copy Markdown
Collaborator

Im still testing it a little, looks very nice so far tho :)

# Conflicts:
#	app/src/main/res/values-ar/strings.xml
#	app/src/main/res/values-bg/strings.xml
#	app/src/main/res/values-ca/strings.xml
#	app/src/main/res/values-fa/strings.xml
#	app/src/main/res/values-hi/strings.xml
#	app/src/main/res/values-ia/strings.xml
#	app/src/main/res/values-pl/strings.xml
#	app/src/main/res/values-pt/strings.xml
#	app/src/main/res/values-ro/strings.xml
#	app/src/main/res/values-vi/strings.xml
#	app/src/main/res/values-zh-rCN/strings.xml
#	app/src/main/res/values-zh-rTW/strings.xml
RisPNG and others added 3 commits August 19, 2026 14:50
…g it does not park it at the end of each file where every new Weblate line lands
# Conflicts:
#	app/src/main/java/com/bnyro/clock/presentation/screens/alarmpicker/components/AlarmSettingsSheet.kt
@Elektron123

Elektron123 commented Aug 20, 2026

Copy link
Copy Markdown
Collaborator
image i think i prefer this a little, very very nice work thx :)

@Elektron123
Elektron123 merged commit 217424f into you-apps:main Aug 20, 2026
@RisPNG

RisPNG commented Aug 20, 2026

Copy link
Copy Markdown
Contributor Author
image i think i prefer this a little, very very nice work thx :)

no complain on my side either, I love the new look!

@RisPNG
RisPNG deleted the alarm-custom-recurrence branch August 20, 2026 19:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants