Skip to content

Reminders

Calendaria notifies users before scheduled note events occur. Reminders are configured per-note and support four notification types.

Reminders are configured in the note sheet under the Reminder fieldset:

FieldDescription
TypeNotification method: none, toast, chat, or dialog
TargetsWho receives the reminder
OffsetHours before the event to trigger (0 = at event time, max 720)
UsersSpecific user selection (when target is “specific”)

Selecting none as the type disables the reminder and disables other inputs.

User TypeDefault Targets
GM usersGM
Non-GM usersAuthor

[!NOTE] Defaults are based on the current user creating the note, not the note’s visibility setting.

Disables reminders for this note. Other reminder fields are disabled when selected.

Brief popup notification in the top-center of the screen. Auto-dismisses after a few seconds.

Message posted to the chat log with a link to open the note. Can be whispered to specific users based on target settings.

[!NOTE] If a note has visibility: 'hidden' or 'secret', chat reminders are always whispered to GM users regardless of the target setting.

Modal dialog requiring acknowledgment. Includes “Open Note” and “Dismiss” buttons.

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

[!NOTE] The viewers target respects the note’s visibility setting. If the note is hidden or secret, reminders are sent only to GM users regardless of individual permissions.

The ReminderScheduler class monitors world time and triggers reminders:

  1. Only runs on the primary GM client (uses CalendariaSocket.isPrimaryGM())
  2. Checks for pending reminders every 300 game seconds (5 minutes) as time advances
  3. Compares current time against each note’s start time minus the offset
  4. Fires reminders when the current time falls within the reminder window (after offset time, before event time)
  5. Tracks fired reminders using occurrence-based keys (noteId:year-month-day) to support recurring events
  6. Clears the fired reminders list when the date changes
  7. Resets all state and re-checks immediately if time moves backwards

For recurring notes (including those with conditions), the scheduler:

  • Checks if the event occurs today or tomorrow
  • For all-day events occurring tomorrow, triggers the reminder if current time is within the offset window from midnight

For non-recurring events spanning multiple days:

  • The reminder fires the evening before each day the event spans
  • For timed events, the reminder fires before the start time on the first day only

Notes with silent: true are skipped by the reminder system.

For toast and dialog notification types, the primary GM broadcasts the reminder to all targeted users via socket. Each client then displays the notification locally. Chat reminders are created as ChatMessage documents and sync automatically.

See API Reference and Hooks.