The scheduling decision#
When you launch a campaign, you pick one of:
| Option |
Use when |
| Send now |
Immediate transactional (welcome, password reset); first test campaigns |
| Schedule for later |
All marketing campaigns; coordinate with business events |
| Send by subscriber timezone |
Global audience; want everyone to receive at the same LOCAL time |
AcelleMail's scheduler defaults to the account-wide timezone. Subscriber-local timezones require per-subscriber timezone tagging.
The scheduling UI#
Step 1: Open the schedule step#
In the campaign builder, after completing setup + template, you reach the Schedule step:

By default, "Send now" is selected. Toggle to "Schedule for later" to set a specific date+time.
Step 2: Pick the schedule time#

Pick the date + time. The picker uses your account timezone (visible in the field label).
Step 3: Confirm the timezone#
Settings → Account → Timezone:

This is what AcelleMail uses for all schedule calculations + display. Change it once when your account is created; rarely after.
Best practices for send time#
Default rule: weekday mid-morning, recipient timezone#
For most B2C and B2B audiences, the consistent winner is:
- Weekday: Tuesday / Wednesday / Thursday (avoid Monday + Friday)
- Time: 9:30am - 11:00am in recipient's timezone
- Avoid: weekends, early morning (<7am), late afternoon (>4pm), midnight
For a US-East-Coast-dominant audience using account timezone of America/New_York:
Tuesday 09:30 ET
Tuesday 10:00 ET
Wednesday 10:00 ET
Thursday 09:30 ET
These windows hit recipients when they're starting their work day — open rates peak.
When to break the rule#
| Audience |
Better time |
| News junkies (financial, sports) |
Earlier — 6:30am ET catches morning commute |
| B2B SaaS / tech |
Tuesday 10am OR Friday 2pm (weekly wrap-up) |
| E-commerce promotions |
Saturday 9am for weekend shoppers |
| College students |
Sunday evening (homework time) |
| International (no clear majority) |
Multiple send waves per timezone band |
Multi-timezone audience#
If your audience is split US + EU + APAC, three patterns:
Pattern A: Send at "your" timezone (simplest)#
Tuesday 10:00 ET
→ US East gets it at 10am local
→ US West gets it at 7am local (early)
→ London gets it at 3pm local (afternoon — different but workable)
→ Tokyo gets it at 11pm local (night — engagement drops)
Sub-optimal for non-US recipients but easy to ship.
Pattern B: Multiple send waves#
Tuesday 09:30 PT (West Coast US)
Tuesday 09:30 ET (East Coast US)
Tuesday 09:30 GMT (London)
Tuesday 09:30 JST (Tokyo)
Each subscriber's timezone tag determines which wave they receive in. AcelleMail handles this via per-segment campaign launches OR via per-subscriber send-time-optimization (advanced).
Pattern C: Subscriber-local timezone#
If your install supports per-subscriber timezone:
Tuesday 09:30 in subscriber's local timezone
Each subscriber receives at 9:30am THEIR time. AcelleMail's scheduler does the math.
Requires:
- Per-subscriber
timezone field on the list
- Send-time optimization feature enabled (varies per install)
Common UI signals + fixes#
| Symptom |
Likely cause |
Fix |
| Schedule rejects "tomorrow 9am" |
Date is in past relative to account timezone |
Verify account timezone matches what you expect |
| Send happens 1 hour off expected time |
Daylight saving transition |
AcelleMail handles DST automatically; if off, confirm timezone setting (not "UTC offset") |
| Different recipients receive hours apart |
Send queue throttling spreading over time |
Expected for large sends; tune sending limit if too slow |
| Schedule shows in UTC despite account TZ set |
Browser session timezone different from account |
Reset by re-saving the schedule via the explicit picker |
| Campaign sends in the wrong week |
Time-of-day in account TZ vs subscriber TZ confusion |
Use ISO format dates to remove ambiguity |
| Subscriber-local timezone shows everyone at midnight UTC |
Per-subscriber timezone field empty |
Back-fill timezone column or fall back to account TZ |
Send-time optimization#
AcelleMail's send-time optimization (varies per install) uses each subscriber's past-open-time pattern to predict the best send time for them:
Subscriber A: opens at 9:30am ET routinely → schedule for 9:30am ET
Subscriber B: opens at 6:30pm PT (evening browse) → schedule for 6:30pm PT
Subscriber C: no clear pattern → use default 10:00 account TZ
If your install has this feature, enable in Settings → Sending → Send-time optimization.
How to pick the right time when you don't know your audience#
- Test 3 windows over 6 weeks (Tuesday 10am, Wednesday 2pm, Sunday 9am)
- Compare open rates across the 3 cohorts
- Continue with the winner
- Re-test annually as audience behavior shifts
Advanced: per-segment scheduling, automated optimal-time selection, and avoiding holiday clashes
Per-segment scheduling:
Split your audience by behavior + schedule each segment optimally:
Engaged segment (open <7d ago): Tuesday 9:30 ET (proven optimal)
At-risk segment (open >30d ago): Saturday 10am ET (different cadence)
New segment (signup <14d ago): Welcome series — automation-triggered
Each segment gets a separate campaign with its own optimal schedule. Improves overall engagement vs. one-size-fits-all blast.
Automated optimal-time selection:
#!/bin/bash
# Daily-run script: identify optimal time per segment based on last 90 days
ACELLE_TOKEN="..."
LIST_UID="..."
for segment in engaged at-risk new; do
# Query open events for this segment over last 90 days, group by hour-of-week
best_time=$(curl -sH "Authorization: Bearer $ACELLE_TOKEN" \
"https://acellemail.com/api/v1/lists/$LIST_UID/opens-by-hour?segment=$segment&days=90" \
| jq -r '.peak_hour')
echo "Segment $segment: peak engagement at $best_time"
# Set campaign schedule via API or store for next manual launch
done
Avoiding holiday clashes:
| Date |
Likely conflict |
| Thanksgiving week (US) |
Inbox flooded; low engagement |
| Black Friday / Cyber Monday |
Promotional inbox overflow |
| Christmas week |
Most B2B audiences ignore email |
| Local national holidays |
Per-region; check audience demographics |
| Religious holidays |
Per-region; check audience demographics |
Skip these dates entirely OR send at unusual times to stand out (Christmas afternoon, when normal senders pause).
Programmatic timezone-aware sending:
# Get subscriber timezones from your data + bucket per region
sub_tzs=$(curl -sH "Authorization: Bearer $TOKEN" \
"https://acellemail.com/api/v1/lists/$LIST_UID/subscribers/timezones" | jq -r '.')
# Schedule per-bucket campaigns
for tz in $sub_tzs; do
schedule_time=$(calculate_optimal_time $tz 'Tuesday' '09:30')
schedule_campaign $LIST_UID $tz $schedule_time
done
For ~50 timezones globally, the bucket count gets unwieldy. Most senders use 3-4 macro-regions (Americas, EMEA, APAC, India).
Avoiding "send drift":
If your campaign cadence is "every Tuesday 10am ET" and you stop tweaking:
- Holiday weeks (Thanksgiving, Christmas) skip
- DST shifts confuse the schedule by 1 hour
- After 18 months, you'll have weeks where you sent twice and weeks where you sent zero
Audit quarterly: confirm your weekly Tuesday actually happens every Tuesday. Catch drift via the campaigns index timestamp pattern.
Related articles#