How to Schedule Meetings Across a Distributed Team Without Burning Out Half of It
A team in San Francisco, Berlin, and Singapore does not have a standup. The arithmetic is in a worked week for those three cities. In the long middle of the year, 8:00 AM in San Francisco is 5:00 PM in Berlin and 11:00 PM in Singapore. Pick any other “global” hour and a different city is the one asleep. The scheduling problem is not finding the fair minute. It is deciding which pair meets, and writing down who is allowed to skip.
Count the overlap from local hours
Memorized offsets go stale, and they go stale on different days.
San Francisco and Berlin are nine hours apart in January and in July. The gap drops to eight only in the shoulders: the second Sunday of March to the last Sunday of March, and the last Sunday of October to the first Sunday of November. Singapore never changes its clock, so the San Francisco to Singapore gap is 15 hours from the second Sunday of March to the first Sunday of November and 16 hours the rest of the year. A standing 5:00 PM California call that Singapore hears as 8:00 AM in October is 9:00 AM from the first Sunday of November, if the event is anchored in California. Nobody edited the invite. The reference clock moved under it.
Recompute the week of those Sundays. The US and Europe gap weeks are the transatlantic version of the same trap, and daylight saving rules by country is the list of dates if the team is not these three cities. The homepage grid will show the hours. It assumes a 9:00 to 18:00 day, which is a planning default. A Berlin office that starts at 8:00, or a parent who stops at 15:00, will not match the green rows.
There is no three-way hour to rotate
Once you accept that, “rotate the pain” has to be said precisely. You cannot rotate a slot that does not exist.
Split the live time by pair, the way the worked week does. San Francisco and Berlin take 8:00 AM San Francisco, which is 5:00 PM Berlin. Singapore does not attend. Berlin and Singapore take 8:00 AM Berlin, which is 2:00 PM Singapore while Berlin is on summer time. San Francisco does not attend. San Francisco and Singapore, if you truly need that edge, take 5:00 PM San Francisco, which is 8:00 AM the next day in Singapore at the 15-hour setting. Berlin is at 2:00 AM and does not attend.
The rotation, if you still have a two-city meeting that is bad for one side, is a named alternation. One week the US side takes 7:00 AM. The next week the other side takes the late hour. Write “who took the bad slot last time” in the same doc as the agenda. A quiet imbalance survives exactly as long as nobody is counting.
New York and Tokyo is the two-city version with no shared workday. San Francisco and Singapore is the other. For those, the default is a handoff note, not a daily call you feel guilty about.
Most status does not need a live hour
The way to have fewer bad hours is to have fewer meetings that require every city awake.
A status update can be the note. The person who was on the live call writes it before they close the laptop, because the next morning is the other city’s reading time. A proposal can go out in writing, and the meeting happens only if the comments still disagree. Incident response and a negotiation still want to be live. A round of “any blockers?” does not.
Async only works if a message gets an answer inside a known window. One business day is a window. “When you can” is how the team slides back into demanding a call, because nobody trusts the note.
Say which zone owns the event
An offset sticker that says “GMT+8” does not tell you whether 8 PM is a normal evening or the middle of the night, and it will be wrong on the Sunday the clocks change. The homepage shows each city’s local time and date, and it paints 9:00 to 18:00 on both sides. That is the check. It is not a substitute for naming the zone on the invite.
The event’s time zone keeps its local hour. Everyone else moves. How to choose that zone is which time zone should own the invite. If you never choose, the calendar chooses, usually as whatever zone the person who clicked “save” happened to be sitting in.
Write the rule where a new hire can find it
“US takes the early one” dies at the second hire, or at the week a fourth city joins and quietly inherits the worst hour because nobody renegotiated. A short doc is enough: the pairs, the local times in both seasons, who is not expected to attend, and where the note goes.
That doc will be wrong twice a year if it freezes one set of hours. Put both seasons in it the first time. The city pair pages already list the stretches. Copy the hours from the page for the year you are booking, and change the doc when a government changes a rule, not when someone misses a call.