Skip to content
3 Death Saves

Reminders

A note can notify users ahead of its scheduled time. You set the notification type, the recipients, and how far in advance on the note itself.

Reminder fields sit in the Reminder fieldset on the note sheet.

FieldDescription
Notification Typenone, toast, chat, or dialog
NotifyWho receives the reminder
Notify BeforeHow far ahead of the event to fire
IncrementUnit applied to Notify Before: hour, day, week, month, or year
UsersSpecific user selection when the target is specific
Save as To-DoCopies the fired reminder into each notified user’s Don’t Forget list

Save as To-Do appears only when the Don’t Forget module is active.

Notify Before takes whole numbers from zero up. Zero fires the reminder at event time.

Setting the type to none disables the other reminder fields.

Increment sets the unit for Notify Before. Hours, days, weeks, and years are measured against the active calendar’s own hours per day, weekday count, and year length. A month is the calendar’s average month length, the year length divided by the number of months. Months of uneven length do not shift the reminder. The reminder message reads in the unit you chose.

A note created by a GM defaults to the gm target. A note created by anyone else defaults to author.

Every reminder carries the note’s icon. A note with no icon falls back to a bell in the note’s color.

No notification is delivered.

A brief popup near the top of the screen. It dismisses itself.

A message posted to the chat log with a link that opens the note. It is whispered to the targeted users unless the target is all.

A window with an Open Note button and a Dismiss button, Dismiss focused by default. It does not block the rest of the interface. Closing the window has the same effect as Dismiss.

TargetRecipients
allAll users
gmOnly GM users
authorOnly the note creator
viewersUsers with at least Observer permission on the note
specificManually selected users

The viewers target respects the note’s visibility. On a hidden or secret note it resolves to GM users only.

With Save as To-Do checked, firing the reminder adds a to-do for every user the reminder targets. The label is the reminder text with its markup stripped, because Don’t Forget renders plain text.

A user who already has an open mirrored to-do for that note is skipped, but one whose mirrored to-do is already marked done receives a fresh one.

Deleting the note, setting its notification type to none, or unchecking Save as To-Do removes every to-do the note produced, including ones already marked done. Cleanup runs on the primary GM client only.

ReminderScheduler watches world time and fires reminders as it advances.

  1. It runs only on the primary GM client, using ATLAS.isPrimaryGM.
  2. It considers only notes belonging to the active calendar. A note stored under a different calendar is skipped until you make that calendar active.
  3. It checks for pending reminders at most once per 60 seconds of game time.
  4. It compares the current time against each note’s start time minus the offset, and fires when the current time falls in the window between the two.
  5. It tracks fired reminders by occurrence key (noteId:year-month-day), so a recurring event fires once per occurrence.
  6. It clears the fired list when the date changes.
  7. It clears the fired list and re-checks immediately when time moves backwards.

Jumping the clock from the Set Date dialog suppresses the next reminder check while Skip Event Triggers is checked, and that box is checked by default. Nothing fires for the span you skipped over, and checking resumes on the following time update.

The fired list lives in memory on the primary GM’s client. Reloading that client clears it, so a reminder whose window is still open fires a second time on the next time update.

For a recurring note, including one with conditions, the scheduler checks whether the event occurs today or on the reminder day N days ahead. N comes from the reminder offset and the event’s time of day, and a large offset can push it more than one day out. The day-ahead case runs the same recurrence check against that day.

For an all-day event occurring today, the reminder fires when the current time is at or before the offset in minutes, or immediately when the offset is zero.

For a non-recurring multi-day event, the scheduler treats the event time as midnight on in-range days after the first.

  • With a nonzero offset, the reminder window cannot be satisfied, so nothing fires on those later days.
  • With a zero offset, the reminder fires at midnight of each spanned day.
  • For a timed event, the reminder fires before the start time on the first day only.

Notes flagged silent are skipped.

Toast and dialog reminders are broadcast from the primary GM over socket, and each targeted client renders its own. Chat reminders are ChatMessage documents and sync on their own.

See API Reference and Hooks.