Products · Dash API

Reminders

Remind the person with a notification that opens your dot at one of its pages, once or on a schedule.

dash.reminders.set

TypeScript
dash.reminders.set(reminder: Reminder, callOptions?: CallOptions): DashRequest<void>

Sets a reminder: a notification at the times its schedule gives. When the person taps it, Dash opens your dot at the reminder's page. Setting one with a key your dot already used changes that reminder. A dot can have 12 reminders still to come at a time. Past that, it fails with failed.

TypeScript
await this.dash.reminders.set({
  key: 'school-fees',
  title: 'School fees are due',
  message: 'Pay the fees for Fatmata before the end of the month.',
  page: '/pay?student=fatmata',
  schedule: {
    start: '2026-11-27',
    time: '08:00',
    repeat: { every: 'month', days: [27] },
    end: { after: 3 },
  },
});

Permission in dot.json: reminders. Dash asks the person the first time.

Types: Reminder

dash.reminders.cancel

TypeScript
dash.reminders.cancel(key: string, callOptions?: CallOptions): DashRequest<boolean>

Cancels your dot's reminder with key. Gives false if there wasn't one.

Permission in dot.json: reminders. Dash doesn't ask the person for this one.

dash.reminders.list

TypeScript
dash.reminders.list(callOptions?: CallOptions): DashRequest<Reminder[]>

Your dot's reminders, in the order it set them. The person can delete them in Dash, so read the list instead of assuming a reminder is still there.

Permission in dot.json: reminders. Dash doesn't ask the person for this one.

Types: Reminder

Types

Weekday

TypeScript
type Weekday = 'mon' | 'tue' | 'wed' | 'thu' | 'fri' | 'sat' | 'sun';

ReminderRepeat

How a reminder repeats. once, the default, goes off on the start date only. dates goes off once on each date in the list, written like "2026-12-24". day repeats daily, and week on the listed days. month repeats on day numbers 1 to 31 with days (a day past a short month's end falls on its last day), on the first to fourth weekday with nth and day (-1 for the last), or on the month's last day with lastDay: true. interval repeats every so many days, weeks or months, counted from the start.

TypeScript
type ReminderRepeat =
  | { every: 'once' }
  | { every: 'dates'; dates: string[] }
  | { every: 'day'; interval?: number | undefined }
  | { every: 'week'; interval?: number | undefined; days: Weekday[] }
  | { every: 'month'; interval?: number | undefined; days: number[] }
  | { every: 'month'; interval?: number | undefined; nth: 1 | 2 | 3 | 4 | -1; day: Weekday }
  | { every: 'month'; interval?: number | undefined; lastDay: true };

Types: Weekday

ReminderEnd

When a repeating reminder stops: on a date, written like "2027-03-31", or after so many times.

TypeScript
type ReminderEnd = { on: string } | { after: number };

ReminderSchedule

FieldTypeWhat it is
startstringThe first date, on the phone's calendar, written like "2026-11-05".
time (optional)stringThe time on the phone's clock, written like "17:30". Default: "09:00".
repeat (optional)ReminderRepeatDefault: once.
end (optional)ReminderEndDefault: never.

Reminder

FieldTypeWhat it is
keystringThe dot's own name for it, up to 64 characters. Setting a reminder with the same key changes it.
titlestringWhat the notification says first, up to 80 characters.
message (optional)stringUnder the title, up to 200 characters.
page (optional)stringThe page the notification opens: / and the page's ID, with any launch options as a query, such as "/concert?concert=jazz-night". Default: your dot's first page.
scheduleReminderScheduleWhen the reminder goes off.

Keep reading