Scheduling and campaigns
Sends at a fixed time, at each user's local time, and recurring sends.
Schedule types (schedule.type)
| Type | Fields | Sends |
|---|---|---|
now |
— | Immediately (default) |
at |
sendAt, timezone |
At that date and time. Without a zone, your company's is used |
local_time |
date, time |
At that time in each device's zone. It's spread over ~26 hours, as that time arrives in each zone |
Options:
windowMinutes: spreads the send over a window, so opens don't overload your server;expireAt: don't send after that time.
You can schedule up to 365 days ahead.
"schedule": { "type": "local_time", "date": "2026-11-28", "time": "09:00" }
A scheduled send can be edited, cancelled or sent now (POST /v1/notifications/{id}/send-now) as long as it hasn't started.
Recurring campaigns
POST /v1/campaigns with:
name;- the
notification(target and content); - the
recurrence:
| Field | Example |
|---|---|
freq |
daily, weekly, monthly |
interval |
2 = every 2 weeks |
weekdays |
["mon","thu"] |
monthDay or monthWeek |
15, or { "nth": -1, "weekday": "fri" } (last Friday) |
time, timezone |
"09:00", "America/New_York" |
startDate, endDate, count |
The campaign's limits |
Each occurrence creates a normal notification, with its own history and analytics. Campaigns can be paused and resumed.
Errors
2011: invalid schedule (past date, beyond the limit or missing fields).2012: invalid time zone. Use IANA names, such asAmerica/New_York.3004: your plan doesn't include scheduling, local time or recurrences.