docs/Notification schedules/Creating a schedule
the form, section by section

Creating a schedule, one section at a time.

The schedule form follows a fixed order: Content, Timezone, Participants, Time, Date. Choosing a recurring Date pattern reveals three more sections — Month, Start, and Stop.

All four schedule types are created in the same form. The section order is fixed: you always move top to bottom. Most sections only become relevant once you make a choice in Step 4 — the form hides irrelevant sections automatically.

ContentTitle, message, and survey URL.
1. TimezoneWhich clock to use, and whether to follow each participant.
2. ParticipantsWho receives this schedule.
3. TimeFixed clock times, random windows, or a minute-level repeat.
4. DateOne specific date, or a recurring day pattern.
5. MonthLimit recurring sends to certain months. Repeating only.
6. StartWhen the repeating schedule begins. Repeating only.
7. StopWhen the repeating schedule ends. Repeating only.
8. ExpiryHow long the survey link stays live after delivery.
9. RemindersFollow-up pings if no completion is detected.

Content

These three fields appear at the top of the form, before the numbered steps, and apply to every send this schedule generates.

Title
The bold first line of the push notification on the participant device. Notifications that share the same title replace each other in the system tray rather than stacking. Use a consistent title per study if you want only one notification visible at a time, or use distinct titles if you want them to coexist.
Message
The notification body — the second line visible in the system tray.
Web Link
The URL that opens when the participant taps the notification. This is typically your Qualtrics, REDCap, or other survey link. Leave out the URL only if you want a notification with no action. See URL placeholders to embed participant-specific values like IDs automatically.

Step 1 — Timezone

All times you enter in Steps 3, 6, and 7 are interpreted in this timezone. Pick the timezone your study is running in — typically where your research group is located.

Adjust to participant timezone overrides the study timezone for each participant individually. When enabled, a 20:00 send fires at 20:00 in each participant device timezone rather than at 20:00 in the study timezone. This works for both current and future participants as long as the Samply app has recorded their timezone.

Step 2 — Participants

Choose who receives notifications from this schedule. You can mix options.

All future participants (excluding current)
Every new enrolment after this schedule is saved will be enrolled into it automatically. Essential for open-recruitment studies. Participants who are already enrolled when you create the schedule are not included by this option alone.
Current participants — All
Everyone enrolled at the moment you click Schedule notifications.
Current participants — specific individuals
Pick from the list of enrolled Samply IDs. Use this for one-off sends or testing.
Groups
Target one or more named groups. You can choose all groups or pick specific ones. See Groups for how groups are created.

Step 3 — Time

This is the most consequential choice in the form. It determines whether send times are fixed, random, or set to a very short repeat cadence.

Specific time point(s)

Enter one or more HH:MM times. Each time becomes a separate send within every firing day. Click Add one more time point to add additional times — for example, 09:00, 13:00, and 18:00 for three sends per day.

Time window

Define a window with a From time, a To time, how many random sends to draw within the window, and a minimum gap between them. Samply picks a different random time for each participant within that window on each firing day.

Click Add one more time window to define multiple windows per day (e.g., morning 08:00–11:00 and afternoon 14:00–17:00, two pings each).

Repeat (high-frequency)

Fires on a very short cycle: every minute, every 2, 5, 10, 15, or 30 minutes. Intended for real-time alerting within a lab session, not for daily ESM protocols.

Step 4 — Date

Combined with your Step 3 choice, this determines the schedule type. Choosing a specific date produces a one-time (or randomized one-time) schedule. Choosing any repeat option reveals the Start and Stop steps and produces a repeating or personal schedule.

Specific date(s)
Pick a calendar day, month, and year. The notification fires at the Step 3 time(s) on that exact date. Add more dates for a multi-wave one-time schedule.
Repeat every N day(s)
Every day (N = 1), every other day (N = 2), every third day (N = 3), and so on.
Repeat on specific weekday(s)
Choose any combination of Monday through Sunday.
Repeat on specific day(s) of month
Choose any combination of the 1st through the 31st.

Step 3 + Step 4 = schedule type

Step 3 — TimeStep 4 — DateResulting type
Specific time point(s)Specific date(s)One-time
Specific time point(s)Repeat every N days / weekdays / month daysRepeating
Specific time point(s)Repeat + start/stop relative to registrationPersonal
Time windowSpecific date(s)One-time randomized
Time windowRepeat + start/stop relative to registrationPersonal randomized

Step 5 — Month

Only visible when Step 4 is a repeat option. Limits the schedule to specific calendar months. Repeat every month (the default) lets it run year-round. Choosing specific months is useful for seasonal protocols or studies that pause during summer and winter.

Step 6 — When to start

Only visible when Step 4 is a repeat option. Sets the date from which the schedule begins producing sends. Three options:

Start at a specific date and time
The schedule starts at the same absolute moment for every participant. Use this when your study has a fixed launch date.
Start after X days / hours / minutes from registration (or from now)
An exact duration added to each participant join timestamp. The schedule window starts at a different wall-clock time for each participant. Choosing now as the reference anchors to the moment you click Schedule notifications rather than to enrolment.
Start on day N after registration (or from now)
Samply counts N calendar days from the join date and starts the schedule at midnight of that day. Day 1 = the join day itself. Day 2 = the next calendar midnight. See Personal scheduling for full details.

Step 7 — When to stop

Same three options as Start. The stop is exclusive: a schedule that stops at the end of Day 14 fires its last send during Day 14, not at the start of Day 15.

If you leave the stop at a calendar date that is already in the past, the schedule generates no sends. For rolling-enrolment studies, always use a relative stop (Day N or duration offset) so that late joiners get their full protocol window.

Step 8 — Link expiry

Controls how long the survey link in the notification stays active after the push is delivered. If a participant taps the notification after the expiry window, the link no longer opens the survey.

Set an expiry when your survey must be completed within a tight window — for example, in a momentary assessment where a stale response would bias the data. Leave it unset (the default) for surveys with no time pressure.

Step 9 — Reminders

Reminders are follow-up notifications sent automatically when Samply has not detected a survey completion. You can add one or more reminders per schedule, each with its own title, message, and delay (days + hours + minutes after the original notification).

For reminders to work correctly, your survey tool must notify Samply when a participant completes the survey — otherwise every send gets a reminder regardless of actual completion. Full setup instructions are in Reminders.

Submitting

Click Schedule notifications at the bottom of the form. Samply immediately expands the schedule into a queue of sends — one row per participant per send time — and schedules each one in the background job runner. You can review the full queue in the Scheduled queue.

A schedule cannot be edited after submission. To change timing or content, delete the schedule and create a new one. Deleting a schedule also removes all its pending sends from the queue.