A personal schedule does not fire at a fixed calendar date. Instead it fires relative to the moment each participant joined your study. Two participants who enrol a week apart will each receive their Day 1 notification on their own Day 1 — not on the same Monday.
What Day N means
When you set a personal schedule, you define a start and a stop in terms of days after registration, not calendar dates. Samply translates that offset into a real timestamp for each participant individually at the moment they enrol.
| Day label | Actual anchor point | Practical note |
|---|---|---|
| Day 1 | The moment they joined (plus ~1 minute). | Notifications set for Day 1 fire almost immediately after enrolment. |
| Day 2 | Midnight of the next calendar day in the chosen timezone. | A participant who joins at 21:00 on Monday gets their Day 2 notifications on Tuesday. |
| Day N | Midnight of the Nth calendar day after the join date. | Day 14 = midnight of the 14th day counted from the join day. |
The repeating pattern you choose (daily, specific weekdays, every other day) then runs between those two anchored timestamps. Samply expands the schedule against each participant's personal window and writes one queue entry per firing time.
Building a personal schedule in the form
Personal schedules use the same schedule form as all other types. The sections that differ from a standard repeating schedule are Step 6 (Start) and Step 7 (Stop).
Step 6 — When to start
Choose one of two relative-start options:
- On day N after registration
- Samply counts N calendar days from the join date and fires the first notification at midnight of that day. Set N = 1 to start immediately after joining; set N = 3 to leave a two-day buffer before the schedule begins.
- After X days / hours / minutes from registration
- An exact duration offset from the join timestamp. Use this when you need sub-day precision — for example, start 4 hours after joining rather than waiting until the next midnight.
You can also choose a fixed calendar date as the start, which turns the schedule into a hybrid: it still uses the personal stop anchor but the start is the same for everyone.
Step 7 — When to stop
The same two options apply: stop on Day N after registration, or stop after a precise duration. The stop is exclusive — a schedule set to stop on Day 15 fires its last notification at the end of Day 14.
Step 2 — The repeating interval
Within the personal window, choose a repeating pattern: every day, specific weekdays, every other day, and so on. You can also add multiple intervals to the same schedule — for example, three separate time-of-day rows (09:00, 13:00, 18:00) to send three notifications per day.
To send at random times within daily windows instead of fixed clock times, select Time window instead of specific time points. This makes the schedule both personal and randomized. See Randomized schedules for the window controls.
Timezone handling
By default, all times in a personal schedule are interpreted in the timezone you select at the top of the form. Enable Adjust to participant timezone to have Samply re-anchor each participant's times to their device timezone instead.
When participant timezone adjustment is on, a 20:00 notification fires at 20:00 in Berlin for a Berlin participant and at 20:00 in Tokyo for a Tokyo participant — each at their local evening. The device timezone is recorded at enrolment and can be updated by the participant from the app settings.
Future participants
The Recipients section of the form lets you choose between current participants only, or all future participants too. When All future participantsis checked, Samply applies the personal schedule to every new enrolment automatically — no manual action needed.
This is the setting to enable for open-recruitment studies where participants join continuously over weeks or months. Without it, participants who join after the schedule is created receive no notifications from it.
Example configurations
- Start: Day 1 after registration.
- Stop: Day 15 after registration (end of Day 14).
- Interval: daily at 20:00.
- Recipients: all current and future participants.
- Schedule A — Start: Day 1, Stop: Day 8. Interval: daily at 12:00.
- Schedule B — Start: Day 15, Stop: Day 22. Interval: daily at 12:00.
- Both schedules target the same participants.
- Start: Day 3 after registration.
- Stop: Day 10 after registration.
- Interval: three times a day (09:00, 13:00, 18:00) — add three separate intervals.
Common mistakes
- Setting a fixed calendar stop date instead of a relative one
- If you set stop to a specific date in the past, no notifications fire for anyone who joins after that date. Use a relative stop (Day N) whenever participants join on different days.
- Forgetting to check future participants
- A personal schedule with only current participants selected will silently ignore everyone who joins later. For open-recruitment studies, always check All future participants.
- Day 1 meaning different things in your analysis
- Samply counts Day 1 as the join day. If your protocol defines Day 1 as the first full calendar day after joining, set your start to Day 2 in the form.
What to read next
Once a schedule is saved, Samply expands it into a per-participant queue of sends. See The scheduled queue to understand how to read and manage it.