Z Zestmail
← All posts

Gmail Mail Merge Google Sheets: Send by Time Zone

If you run a Gmail mail merge from Google Sheets to a list that spans several countries, Gmail's Schedule send gives you one send time for the whole batch. Someone in Sydney gets your "Tuesday 9 am" email at 1 am, and it sits under thirty other messages by the time they wake up. The fix is not a clever tool so much as a small change in how you prepare the sheet: add a time zone column, split the list into three or four regional groups, and schedule each group separately at the moment that is mid-morning for them. This article walks through that process, what you can do with Gmail and Google Sheets alone, and where a merge extension with scheduled sending saves you repeated work.

Why a Gmail mail merge from Google Sheets lands at the wrong hour

A merge is one send action. Whatever tool you use (Gmail's built-in multi-send on the Workspace editions that include it, an Apps Script, or a Chrome extension), the scheduling layer is still Gmail's, and a scheduled email has a single date and time. That time is interpreted in your time zone, because it is your mailbox doing the sending.

So three things go wrong for a mixed list:

  • The time is yours, not theirs. 9 am in Berlin is 3 am in New York and 7 pm in Sydney.
  • The date can be wrong too. If you are in Europe and want Australians to get the email on Tuesday morning, you need to schedule it for Monday evening your time.
  • Daylight saving does not change everywhere at once. In 2026, EU clocks went back on 25 October and US clocks go back on 1 November. During that week, the gap between London and New York is four hours instead of five. If you converted times a fortnight ago and reused them, one group is an hour off.

None of this is a bug. It just means a single merge cannot serve a multi-zone list well, and a per-group schedule is the practical answer.

Step 1: put a time zone next to every row in the sheet

Open the Google Sheet you merge from and add a column called TZ or Region. You do not need exact city-level accuracy; you need enough to group people.

Where to find a contact's time zone when you only have an email address:

  1. Their email signature: a city, phone number with a country code, or an office address.
  2. The company website's contact page, if they use a company domain.
  3. The time stamps on their previous emails to you. Gmail shows the time in your zone, but if someone consistently writes at what is 2 am for you, they are not in your zone.
  4. Their LinkedIn location, if you have it.

Write the group label rather than a precise offset. Four groups cover most lists:

Group Roughly covers Local target
AMER-W US/Canada Pacific and Mountain 9:00
AMER-E US/Canada Eastern and Central, Brazil 9:00
EMEA UK, Europe, Africa, Middle East 9:00
APAC India, Singapore, Japan, Australia 9:00

Yes, APAC spans five or six hours. If India and Australia are both heavy in your list, split APAC into two. If a group has only three people, fold them into the nearest larger one; a 7 am arrival is fine, a 1 am arrival is the thing to avoid.

For rows where you genuinely cannot tell, leave the cell blank and treat blanks as your own time zone. You will learn more after the first send (see the last section).

Step 2: convert each group's local morning into your clock

Pick the local time you want the email to arrive. Mid-morning on a Tuesday, Wednesday or Thursday is a common choice because it avoids Monday catch-up and Friday wind-down, but what matters more is that it is daytime for the reader.

Then convert each group's target to your own time for the specific date you are sending. Do this with a converter that knows about daylight saving dates (the clock app on your phone, or a search for "9 am Sydney in London time on 3 November") rather than a fixed offset in your head.

An example for a sender in London on Tuesday 3 November 2026, after both EU and US clocks have gone back:

  • APAC (Sydney 9:00 Tuesday) → schedule Monday 22:00 London time
  • EMEA (London 9:00 Tuesday) → schedule Tuesday 09:00
  • AMER-E (New York 9:00 Tuesday) → schedule Tuesday 14:00
  • AMER-W (Los Angeles 9:00 Tuesday) → schedule Tuesday 17:00

Write these times into a small block at the top of the sheet or on a separate tab, so you can reuse them next month and recheck them when clocks change.

Two checks before you move on:

  • The date. The APAC send is the previous evening for you. It is easy to schedule it a day late.
  • Your own device clock. Gmail schedules in the time zone of the device you use. If you are travelling and your laptop has switched zones, your converted times are now off.

Step 3: split the sheet and schedule one merge per group

Gmail cannot read a time zone column and stagger sends for you, so you create one merge per group. The quickest way to split the sheet:

  1. In the Google Sheet, click the TZ column header, then choose Data > Create a filter.
  2. Filter to one group, select the visible rows, copy them.
  3. Create a new Google Sheet (File > New > Spreadsheet), paste the rows with the header row, and name it something like Outreach Nov – APAC.
  4. Repeat for each group. You now have three or four sheets, each with one group.

Keeping the original sheet intact matters because you will add open times and replies to it later.

Doing it with Google tools only

  • If your Google Workspace edition includes Gmail's built-in mail merge (the multi-send mode in the compose window), you can add recipients from a Google Sheet, write the message with merge tags, and use the arrow next to Send to choose Schedule send. Do that once per group sheet, with the group's converted time. Check your edition first; this mode is not available on personal Gmail accounts.
  • If you are comfortable with code, Google Apps Script can read the sheet and call GmailApp.sendEmail from a time-based trigger. You would set one trigger per group. It is free and powerful, but you maintain it yourself, and personal Gmail accounts have a lower daily sending quota through Apps Script than through the normal compose window.
  • Without either, the fallback is manual: a template and four short bursts of individual Schedule send messages. That is tolerable for ten people, not for sixty.

Doing it with a merge extension

A Chrome extension that does mail merge from a Google Sheets URL with scheduled sending turns the above into four short repetitions: open a compose window, paste the group sheet's URL, pick the group's time, and schedule. Zestmail does this from inside Gmail; you paste the sheet URL, map your columns to the merge fields, and choose the send time per batch. The free plan covers up to 20 emails per day and adds a small "Sent with Zestmail" footer, so a 60-person send across four groups needs either the Pro plan ($9 per month or $69 per year, with a 7-day free trial; details on the pricing page) or spreading the groups across three days, which for a time-zone-based send is often fine anyway.

Whichever route you take, send a test to yourself from each group sheet before scheduling the real one. A merge with a broken first-name column looks worse arriving at a perfect 9 am.

Step 4: check where the opens actually happened and adjust the groups

The first multi-zone send is a guess. Your groupings are based on signatures and phone codes, and a contact who lists a Chicago office may be working from Lisbon. The way to improve the next send is to look at when people opened the first one.

If you track opens, note the open time next to each row in your original sheet and compare it to the hour you intended. Patterns to look for:

  • A cluster of opens at 2 or 3 am your time from people you had in your own group means they are somewhere else; move them.
  • Opens arriving three or four hours after the scheduled time, consistently, suggest the group is one zone too far west or east. Shift the target by an hour or split the group.
  • No open at all for a whole group on a day that should have been their morning often means a public holiday you did not know about. Keep a note for next year.

Zestmail's open tracking shows whether and when each recipient opened, filters out your own test opens and common bot opens, and does not request permission to read your Gmail inbox. Bear in mind the limits of any open tracker: recipients who block images, and Apple Mail's Privacy Protection, can hide or distort opens, so treat the data as directional. If a contact replies at 9:15 their time but shows no open, the reply is the better signal.

After two or three rounds your time zone column will be mostly accurate, and the whole process shrinks to: refresh the converted times (especially around clock changes in March, October and November), filter into group sheets, schedule four merges, done.

A short checklist before you schedule

  1. Every row has a TZ group or is deliberately blank.
  2. Target times were converted for the actual send date, not from memory.
  3. The APAC batch is scheduled for the previous evening, with the right date.
  4. Your laptop's clock is in the zone you think it is.
  5. Each group's total fits your daily sending limit on whichever tool you use.
  6. A test merge from each group sheet arrived in your own inbox looking correct.

Getting an email into someone's inbox during their working morning does not guarantee a reply, but it removes the easiest reason for silence: that your message arrived in the dark and was buried by sunrise.