Team time-zone overlap planner

Everyone's city and working hours in; your real shared window out - plus the meeting slots ranked by who pays for them, a rotation that moves that cost around, and a deadline written so nobody misreads it by half a day.

  • Up to 8 members, half-hour precision
  • No account or server upload required
1. Who is on the team

Names and cities only - no emails. Working hours are the hours you would genuinely take a team call in, not the hours you are technically awake.

Nobody added yet. Start with yourself.

2. How long is the meeting

Hours are not what you lose - slots are. A 7-hour overlap gives you about a dozen half-hour start positions for a 90-minute meeting. A 2-hour overlap gives you two.

3. Translate a deadline

Pick whichever zone the submission portal enforces - that is the only one that can actually fail you.

No account or server upload is required. Your roster stays in this browser, and only time zone ids are saved - never a resolved local time.

The day, side by side

Bars run midnight to midnight UTC. Each member's own local hours are listed below.

  • Would stretch to
  • Working hours
  • Shared by everyone

The same thing in words

    Your shared window

    Best slots, and who pays for them

      Rotating the cost

        The deadline, everywhere

          The arithmetic nobody runs

          Pick the window everyone genuinely accepts for team work - say 8am to 9pm local. That is 13 hours. Your usable overlap is that window minus your widest offset gap. Six hours apart and you barely notice the problem exists. Nine hours apart and you have about four usable hours. Eleven hours apart and you have two. Past roughly thirteen hours of spread, there is nothing left, and every live meeting costs somebody their sleep or their evening.

          Overlap is set by your two extreme members, not by how many of you there are. A fifth teammate in London on a New York to Singapore team costs nothing - they sit inside a gap that already exists. A fifth in Auckland ends the shared window outright. So "we added one person" is never the right frame; ask whether they land inside your spread or outside it.

          How this planner computes a window

          Every member's local working hours are converted to UTC and laid on a grid of 48 half-hour slots. Half-hour slots are not a rounding convenience: India is UTC+05:30, so an hourly grid cannot represent a real Indian working day at all. A shared window is the intersection of every member's working band across that grid, which is why a band that wraps past midnight still counts, and why a team can legitimately end up with two separate shared windows rather than one.

          Each candidate slot is then scored by how many meeting minutes fall outside somebody's working hours, and the planner names who those minutes belong to. That number is the thing teams normally leave unmeasured: the majority zone proposes a time convenient for the majority zone, the one person outside it says "that works," and nobody ever decides that they take a 6am call for ten weeks.

          Every window on this page is computed for the current week only - if a daylight saving change falls between now and the meeting, re-run this plan.

          That caveat is enforced rather than assumed. Each member's offset is resolved twice, for right now and for a week from now, and a warning appears above the chart when the two disagree. Only the time zone id is ever saved; an offset stored today would be quietly wrong the moment a region changed its clocks, and a planner that lies confidently is worse than no planner.

          When rotation cannot help

          If the antisocial slot has to exist, it should move - this week early for Singapore, next week late for New York. The planner balances cumulative cost across the cycle rather than repeatedly handing the same person the worst slot.

          But when only one slot works for the whole team, there is nothing to rotate between, and the honest answer is to pay in a different currency instead. That person is exempt from the live window entirely, gets a written brief within the hour, and owns a decision the meeting is not allowed to make without them. The planner switches to that recommendation on its own rather than dressing a fixed slot up as a rotation.

          Be honest about the second cost too. Someone on a 6am call is worse at that call - they contribute less and push back less, not because of who they are but because of what time it is where they are. Then the team reads that flatness as disengagement.

          The handoff is the unit of work

          When you are nine hours apart, a day is a relay, not a shared room. Write every end-of-day note as though the reader cannot reach you, because they cannot:

          1. What I finished, with the actual link to the actual file.
          2. What is next and who owns it, named, so nobody wakes up and has to ask.
          3. The decisions I already made, with the assumption stated out loud.
          4. Open questions, each paired with a default. Never send a question across a time zone without saying what you will do if nobody answers - that is what turns a blocking request into a notification your teammate can override in thirty seconds, instead of a day you both lose.

          Set internal deadlines in handoff cycles rather than hours, and keep at least two of them: co-located teams buy slack in hours, and you buy it in cycles.

          Frequently asked questions

          How do you find a meeting time across four time zones?

          Subtract your widest offset gap from the window everyone actually accepts. If that window is 8am to 9pm local, you have 13 hours to spend: a 6-hour spread leaves 7 usable hours, a 9-hour spread leaves 4, and an 11-hour spread leaves 2. This planner runs that subtraction on a half-hour grid using each member's own hours, so you get the real windows instead of a rule of thumb.

          Why does it say we have no shared window?

          Because past roughly 13 hours of spread there is no honest overlap left. A team in New York, Berlin, and Singapore has none inside a normal working day, and no amount of rescheduling creates one. Somebody would be taking that call outside their day whether the team names it or not - so the planner names it instead of hiding it.

          What if rotation is impossible?

          Then pay in a different currency. The person outside the window is exempt from the live meeting entirely, gets a written brief within the hour, and owns a decision the meeting is not allowed to make without them. The planner switches to that recommendation automatically when only one workable slot exists.

          How do you write a deadline so nobody misreads the time zone?

          Pin one canonical zone - usually whichever one the submission portal enforces - and write every deadline with date, time, zone, and at least one conversion. Always include the day, because for part of your team the deadline lands on a different calendar date than the one you typed. The deadline translator below marks every one of those day rollovers explicitly.

          Does this handle daylight saving time?

          It resolves each member's offset twice - for right now and for a week from now - and warns you on the page when a clock change falls in between. It never stores an offset, only the time zone id, because an offset saved today is wrong the moment a region changes its clocks.

          Is any of this saved on MBA Lab's servers?

          No account or server upload is required. Your roster stays in this browser unless you copy or download it, and only time zone ids are saved - never anyone's resolved local time.

          Go deeper

          Keep a distributed team on the same page

          MBA Lab keeps your whole team's projects, tasks, deadlines, and deliverables in one place — free to start.

          Get started