Days of week (repeating alarms)
Repeating alarms use a days-of-week pattern to determine when they should ring. This is the default scheduling mode for new alarms.Configuring repeat days
- Open the alarm details screen
- Tap the “Repeat” row
- Select which days of the week the alarm should repeat
- Save your changes
How days of week work
The app uses a bitmap encoding for days of week:- Monday:
0x01 - Tuesday:
0x02 - Wednesday:
0x04 - Thursday:
0x08 - Friday:
0x10 - Saturday:
0x20 - Sunday:
0x40
Special repeat patterns
Every day
Every day
When all seven days are selected (
0x7f), the alarm displays as “Every day” instead of listing individual days.No repeat days
No repeat days
When no days are selected (
0x00), the alarm shows “Never” and effectively becomes a one-time alarm without a specific date.Weekdays or weekends
Weekdays or weekends
You can create common patterns like:
- Weekdays: Monday through Friday
- Weekends: Saturday and Sunday
- Custom patterns like Monday, Wednesday, Friday
Next alarm calculation
When calculating the next alarm time, the app:- Takes today’s day of week
- Checks each subsequent day (0-6 days ahead)
- Finds the next day in the pattern
- Schedules the alarm for that day at the configured time
One-time alarms with dates
Instead of repeating weekly, you can set an alarm for a specific date.Setting a specific date
- Open the alarm details screen
- Tap the “Repeat” row
- Switch to date mode instead of days-of-week mode
- Select the specific date
- Save your changes
When you set a specific date, the days-of-week pattern is ignored. The alarm will only ring once on that date at the specified time.
Date validation
Alarms with specific dates must be set for a future time:- The app calculates the alarm time by combining the date with the hour and minute
- If the resulting time is in the past, the alarm is marked as invalid
- The save button is disabled until you select a future date and time
Date format
Dates are displayed using your device’s locale settings. Internally, dates use the formatyyyy-MM-dd.
Delete after dismiss
One-time alarms can be configured to automatically delete after you dismiss them.Enabling auto-delete
- Open the alarm details for a one-time alarm (no repeat days set)
- Find the “Delete after dismiss” option
- Enable the checkbox
- Save the alarm
Availability
The “Delete after dismiss” option is only available when:- The alarm has no repeat pattern set (days-of-week coded value is
0x00) - The alarm is not set to repeat
Skip notifications
Alarms can show a skip notification before they’re scheduled to ring, giving you the option to skip the next occurrence.How skip works
- The app shows a notification before the alarm is due (configurable in settings)
- The notification includes an action button to skip the alarm
- If you skip a repeating alarm, it advances to the next occurrence in the pattern
- If you skip a one-time alarm, it’s effectively disabled or deleted
Skip duration
The skip notification appears a configurable number of minutes before the alarm time. This is set globally in settings with the keyKEY_SKIP_DURATION (default: 30 minutes).
Set to -1 to disable skip notifications entirely.
Skipping state
When an alarm is skipped:- Repeating alarms enter a “SkippingSetState” state
- The alarm internally calculates the next occurrence (tomorrow for that day of week)
- The next alarm after the skipped one is scheduled
- An inexact alarm is set for when the current skip period ends
For repeating alarms, skipping only affects the next occurrence. The alarm will ring again on the next scheduled day according to its repeat pattern.
Determining if an alarm is repeating
You can check if an alarm is set to repeat by examining:isRepeatSetreturnstruewhendate == nullanddaysOfWeek.coded != 0- An alarm with a specific date is never considered repeating, even if days are selected
- An alarm with no date and no days set is not repeating
Next time calculation
The app calculates the next alarm time differently based on configuration:For alarms with a specific date
- Start with the date’s timestamp
- Set the hour and minute to the alarm time
- Set seconds and milliseconds to zero
- Use this exact calendar time
For repeating alarms
- Start with the current time
- Set the hour and minute to the alarm time
- Set seconds and milliseconds to zero
- If this time is in the past, advance by one day
- Calculate days until the next matching day-of-week
- Add those days to get the final alarm time