by google user
Version 7 (October 17, 2025)
Download (7 downloads)
NEW: when flow is running, starting it a 2nd time will open a date input to skip execution until that date.
exceeds 30 blocks, though
plan recurring daily alarms for different types of schedules:
* students
* normie workers
* shift workers¹
* ...?
~1) randomly assigned workshifts (to fullfill contractual workhours normal schedule doesnt cover) or random rest days outside of the schedule you put down will require manual intervention.
[MANUAL]
1 dnrr means dayshift, nightshift, restday, restday. enter schedule by day, with unique single letters for every type (T would overlap tuesday and thursday, S saturday and sunday). numbers are verboten, they break my code. For full custom weekday schedules you best use A to G. weekly rotations are ex. DDdDDRRNNnNNRR (lower case for ease of reading)
2 after schedule entry, the letter R is preselected as Restday by code, when present.
3a enter long names for alarm label (dayshift,monday,etc)
3b set alarmtime to wake
note: if today is an alarm day, alarm will be set if not in past. if alarm not today but tomorrow, alarm will be set when its less than 24 hours until alarm, otherwise waits until then. further checks happen one minute past midnight every day.
4 set shunt: "push" the schedule to align properly without having to enter like rdnr, rrdn, nrrd or even nastier messes for longer rotation schedules.
5 automatic dnd mode: sets disturbance mode to alarms this far in advance. ex: if alarm sets for 0400, 8:00h enables sleep mode at 2000
6 flow remembers last schedule set if you dont edit the flow (atomic variable) and offers the option to hardcode a schedule by pasting into a variable set block
7 disclaimer: scheduled alarms in the range of DST (2-3am) and 23-0h may act up on dst-change days.
CHECK YOUR ALARMS ON THESE DAYS
- - - -
employed logic:
round(timemerge(now)/time(24))=days since 1970-1-1
days % #cyclelength = n (0 to #cyclelength-1)
cycle[n] = todays schedule
Q&A
why dont you merge the keys times and names?
i'd have to index the resulting dictionary by number then instead of cycle[n], but the dict is not guaranteed to be orderly, theres a risk indexing for a 0400 shift could return alarm time for 1600 then