Scheduled mailings
Available on Starter and above
Pick a future date and time for a campaign instead of sending immediately. Useful for: Tuesday-9am newsletter slots, product-launch announcements, time-zone-friendly sends to international audiences, and avoiding Friday-afternoon deploys when reply traffic would land in a quiet support inbox.
How to schedule
- Compose your mailing at
/mailing/composeas normal. - Above the Send button, set the Schedule for later datetime input.
- Click Send — the mailing's status flips to
scheduledinstead ofqueued.
Clearing the field reverts to immediate-on-next-sweep behaviour.
What happens behind the scenes
- The
MailingSenderServicebackground sweep runs every 10 seconds and only picks up mailings whoseStatus = queuedAND(ScheduledFor IS NULL OR ScheduledFor <= now). - A scheduled mailing sits at
Status = scheduleduntil its time arrives, at which point the next sweep transitions it tosendingand starts shipping. - Recipients are still hygiene-filtered (bounced / globally-unsubscribed) at send time, not at schedule time — so a contact who unsubscribes between scheduling and sending is correctly skipped.
Editing or cancelling
Open the mailing from /mailing while it's still in scheduled state. You can:
- Edit subject / body — reopens compose with all fields preloaded.
- Reschedule — pick a new datetime, save.
- Delete — cancels the send entirely.
Once the status flips to sending the mailing is in flight and you can no longer edit
or cancel without contacting support.
A/B tests + scheduling
A/B testing and scheduling work together. Scheduled-for kicks in first; once the
scheduled time arrives the A/B sample portion ships, the mailing flips to ab_waiting,
and the AbTestWinnerService picks the winner after the configured decision window.
Worked example — Tuesday 9am newsletter
- Friday afternoon: write next Tuesday's newsletter in the visual builder.
- Set Schedule for later to next Tuesday 09:00 in your timezone.
- Click Send. Status goes to
scheduled. - Saturday: a contact unsubscribes — correctly excluded at send time on Tuesday.
- Tuesday 09:00 UTC: sweep picks it up, ships to the surviving recipients.
- Tuesday 09:01: stats start populating on
/mailing/{id}/stats.
Related
- Email Mailing — compose page basics
- A/B testing mailings
- Drip campaigns — for time-relative ("Day +3") rather than absolute scheduling