Skip to content

Daily Standups That Actually Work Across Time Zones

Most distributed teams either keep the daily standup and exclude someone, or kill it and lose the rhythm. There is a better third option. Here is how to redesign the daily standup so it works across nine time zones. -

The daily standup was invented for co-located teams who could literally stand up. Fifteen minutes, three questions, everyone aligned. Then your team spread to three continents, and the meeting became a daily compromise nobody likes.

You either:

  • Keep it live at 9 AM in HQ's zone, and the engineer in Tokyo joins at 11 PM their time forever.
  • Kill it entirely and lose the rhythm of daily alignment.
  • Move it to "the only time everyone is awake," which is 7 AM Pacific / 4 PM London / 7:30 PM Bangalore, and watch attendance quietly collapse over six months.

There is a better third option. The daily standup needs to be redesigned for distributed teams, not transplanted. Here is how.

What the daily standup is actually for

Strip away the ceremony and the daily standup does three things:

  1. Surfaces blockers fast. Someone says "I am stuck on X." Someone else says "I solved that yesterday, ping me."
  2. Creates lightweight social presence. Even five minutes of seeing each other's faces does something the Slack message does not.
  3. Forces a daily commitment. "Today I am going to ship the search filter" is harder to renege on once said out loud.

Almost none of those three actually require a synchronous meeting. They require a daily rhythm and a place where the team's attention reliably intersects. Those are different things.

The async standup, done properly

The simplest redesign: replace the live meeting with a written standup in a shared channel. Every team member posts at the start of their working day, in the same channel, in the same format.

This works only if the format is strict. The most common failure of async standups is that they decay into stream-of-consciousness updates that nobody reads.

A format that holds up:

**Yesterday:**
- Shipped: <what got merged or closed>
- In progress: <what is still in flight>

**Today:**
- <one or two specific outcomes I am committing to>

**Blocked:**
- <a person or decision I am waiting on, or "nothing">

**Looking for:**
- <ping me if you are working on X / want to pair on Y>

Six lines. No paragraphs. The strict shape is what makes it readable. The "looking for" line is the one that recovers the social energy of the live standup; it is where pairing and collaboration get triggered async.

Anchor the post to the writer's morning, not a fixed UTC time

A common mistake: the team agrees that everyone posts by 10:00 UTC. Now your APAC engineers are posting at 7 PM their time, after their working day, and the post is about what they did "today" in a tense that is already wrong.

Anchor the post to each person's actual start of day. Berlin posts around 9:00 Berlin time. New York posts around 9:00 New York time. Manila posts around 9:00 Manila time. Each person's update lands when it is freshest, in the tense that makes sense to the writer.

The "feed" is staggered by zone, which sounds chaotic but is actually better. There is always a recent update visible, no matter when you open the channel.

Keep one live touchpoint per week, not per day

The fastest way to kill async standup adoption is to insist that nothing sync is allowed. Some conversations only happen face-to-face.

The compromise that works: one 30-minute live sync per week, scheduled in the most-overlap window for the team, with a hard rule that it is not a status meeting.

Use it for:

  • Walking through anything that took multiple async messages and is still unclear.
  • Making decisions that have stalled in writing.
  • Raising risks or trade-offs that need a group discussion.

Use the Timezoners board to find the slot. Add the team's working hours, select all attendees, and the green zone where everyone is comfortably online is highlighted automatically. Pick the 30-minute slot inside that green zone.

When sync standup actually makes sense (the rare case)

A live daily standup is the right move in two specific situations:

  1. Active incident response. An ongoing incident or migration where the team is in firefighting mode and decisions need to happen hourly. A live standup at the start of overlap, twice a day if needed, beats async.
  2. Onboarding a new hire. For the first two weeks, a 15-minute live standup helps a new joiner build trust and social context. After two weeks, drop back to async.

Outside these cases, the live daily standup almost always costs more than it produces, especially across more than three time zones.

The 1-hour async window for blockers

Async standups have one real failure mode: blockers that need fast resolution sit in the channel for 8 hours waiting for the unblocker to wake up.

The fix is to add a one-hour live overlap window per day, advertised as "office hours for blockers." Anyone who flagged a blocker in their async standup can show up in a Zoom or Huddle during this hour. So can anyone who might be the unblocker.

Most days, nobody shows up because nobody is blocked. On the days something is broken, the conversation happens in real time, in the right window, with the right people.

For a team across San Francisco, London, and Bangalore, a sensible window is 8:00 AM PT / 4:00 PM London / 8:30 PM Bangalore. The Bangalore engineer attends only when blocked, which keeps it from being a tax on their evening.

Make the format searchable, not just chronological

Posts in Slack disappear into history within a day. If your standup channel is the only record, every "wait, what was Sarah working on last Tuesday?" question becomes an archaeology project.

Two fixes that work:

  1. Use a tool that preserves structure. Geekbot, Range, Standuply, or a custom Slack workflow. They each format the post the same way, store it in a database, and let you query by person, week, or topic.
  2. Auto-mirror posts to a wiki page or Notion database. A simple webhook-driven copy from Slack to a structured doc gives you a searchable archive without forcing the team to write twice.

You will use this archive more than you expect. Performance reviews, quarterly retros, post-mortems, and "where did we land on that?" all benefit from a structured record.

Guardrails for the async standup

Three rules that keep the format from rotting:

  1. No emoji-only updates. "Working on stuff today" with a coffee emoji is not an update. The format requires actual content.
  2. No update is also an update. If someone misses a day, the channel notices. A consistent gap is a signal that something is off (illness, burnout, scope confusion). Do not ignore it; reach out.
  3. Reactions are responses, not noise. A thumbs-up on a teammate's "looking for" line is a contract: yes, ping me, I am working on that.

What about all-team rituals?

Daily standups are a per-team ritual. All-team rituals (demos, retros, all-hands) need a different design across time zones. The short version:

  • Demos: Pre-record. Watch async. 30-minute live "demo Q&A" once a week in the overlap.
  • Retros: Async-first using a shared doc with three columns. One 60-minute live wrap-up.
  • All-hands: Two slots, same agenda, run on the same day in two zone-friendly windows.

We covered the all-hands and planning version of this in our async-first quarterly planning playbook.

Where to go next

TL;DR

  • Replace the daily live standup with a strict-format async post anchored to each person's morning.
  • Keep one 30-minute live sync per week, scheduled inside the team's actual green zone using a Timezoners board.
  • Add a daily 1-hour "office hours for blockers" window in the team's overlap. Most days nobody shows up.
  • Mirror standup posts to a searchable archive. You will need it.
  • Live standup is the right call only during incidents or for the first two weeks of a new hire.