...
Schedules are prescriptive, in the sense that when we have a user, we have a schedule in mind of tasks that they must do to ensure the study data is useful. That implies that we can generate that schedule whether the app asks for it or not, and we can examine (for each task) whether or not the user did it. Against this, long-running studies could involve many thousands of tasks... per user.
Technical Issues
We might want to schedule using LocalDate + LocalTime information, and get rid of time zones and specific times entirely. It could remove an entire class of errors around time zones.
...
We might want to schedule against the intended start time of an activity, not just the time it finishes. We might want to schedule against the start of an activity if and only if that activity is finished.
Cron schedules and the absolute time window complicated the v1 scheduler. The absolute time window should be removed (there are better ways to start/end a study), and the cron scheduler remains unuseful and can also probably be removed. We could possibly keep it if we can think of a good way to convert its timestamps to LocalDateTime instances. Maybe?