If the default schedule choices are not sufficient for your use case, you also have the choice of creating custom schedules. In a Broadcast you have the option of creating a Custom Daily schedule, and in a Conditional Alert you have the options of creating a Custom Daily Schedule or a Custom Immediate Schedule. For both types of custom schedules, you create the schedule by creating events that hold information on when to send the content and what content to send.
Custom Daily Schedule
A Custom Daily Schedule is similar to a Daily schedule, only you have much more flexibility in defining the days and times that the content sends. For example, you can define a schedule which sends multiple messages on the same day, or an irregular set of events which send on days 1, 2, 3, and 8 of a 14-day schedule.
The days start numbering at 1, and Day 1 of the schedule corresponds to the begin date that you define in the schedule configuration. For example, for a Broadcast, Day 1 of the schedule will always be the exact start date that you enter. For a Conditional Alert that starts sending 2 days before the date in a case property, Day 1 of the schedule will correspond to 2 days before that case property's value for a given case.
You may also choose to repeat a Custom Daily Schedule. When choosing how often to repeat it, you should consider the number of days the schedule covers (keeping in mind that there might not be an event for every day). For example, if you are defining a schedule which covers 3 weeks, then if you want to repeat it you should choose to repeat it every 21 days.
You also have all the same choices for content to send (SMS, Email, SMS Survey), and all the same choices for how to schedule the time to send (a specific time, a random time, a time in a case property).
Here are some examples of Custom Daily Schedules:
Broadcast: Define a two-week schedule that sends on days 1, 2, 3 (which occur in the first week), and 8 (which occurs on the first day of the second week). There will be 3 total occurrences of the schedule, meaning the Broadcast will cover 6 weeks.
Broadcast: Define a two-day schedule which sends at a random time between 9am and 5pm and alternates which message to send each day.
Conditional Alert: Send appointment reminder 1 week before and 1 day before the appointment. In order for this to work properly, it assumes case property appointment_date exists on the case and is a date.
Note: it's a best practice not to refer to "tomorrow" in an SMS because message delivery can be delayed due to carrier issues or the phone being switched off. So here we reference the appointment date in the message so that there's no ambiguity.
Conditional Alert: Send medication reminders twice a day, every day, to cases.
Note: In order for this to work properly, it assumes case properties morning_med_time and evening_med_time exist on the case with morning_med_time occurring before evening_med_time.
Custom Immediate Schedule
The Custom Immediate Schedule is only available for Condtional Alerts, and it's not as useful as the Custom Daily Schedule. It's provided as an option for backwards compatibility with schedules defined in previous versions of the reminders framework. While editing Custom Immediate schedules, some options chosen at the time the schedule was created (such as the number, ordering, and timing of events) will not be allowed to be changed. Before using the Custom Immediate Schedule, first check to see if you might prefer to use a Custom Daily Schedule for your use case.
The Custom Immediate Schedule allows creating a custom schedule where the events are defined a certain number of minutes apart from each other rather than at a specific day or time, with the first event sending a certain number of minutes after the case matches the rule. Here is an example:
Send 15 minutes after the case matches the rule, and again 45 minutes after that. So for example, if the case matches the rule at 10am, the events would send at 10:15am and 11am.