Meeting Planner Across Timezones

Pick a date, compare work hours, and scan where everyone has overlap.

UTCAmerica/New_YorkEurope/LondonEurope/SarajevoOverlap
00:0019:002026-01-1400:0001:00Outside hours
01:0020:002026-01-1401:0002:00Outside hours
02:0021:002026-01-1402:0003:00Outside hours
03:0022:002026-01-1403:0004:00Outside hours
04:0023:002026-01-1404:0005:00Outside hours
05:0000:0005:0006:00Outside hours
06:0001:0006:0007:00Outside hours
07:0002:0007:0008:00Outside hours
08:0003:0008:0009:00Outside hours
09:0004:0009:0010:00Outside hours
10:0005:0010:0011:00Outside hours
11:0006:0011:0012:00Outside hours
12:0007:0012:0013:00Outside hours
13:0008:0013:0014:00Outside hours
14:0009:0014:0015:00Good
15:0010:0015:0016:00Good
16:0011:0016:0017:00Outside hours
17:0012:0017:0018:00Outside hours
18:0013:0018:0019:00Outside hours
19:0014:0019:0020:00Outside hours
20:0015:0020:0021:00Outside hours
21:0016:0021:0022:00Outside hours
22:0017:0022:0023:00Outside hours
23:0018:0023:0000:002026-01-16Outside hours

Related Time Tools

Pick a calendar date, add up to three IANA timezones, set a daily work-hour window, and the planner walks all 24 UTC hours of that date and flags the ones that fall inside every zone's working day. Use it to find a recurring meeting slot that respects business hours in New York, London, and Tokyo, to confirm whether two offices share any overlap at all, or to check how a daylight-saving shift moves the window. For one-shot conversions of a single moment, the timezone converter is faster; for the gap between two zones on a fixed date, see the time difference calculator.

Common use cases

  • Booking a recurring cross-office standup. Three offices, one slot, every week. Enter the date, add America/New_York, Europe/London, and Asia/Tokyo, and the planner highlights the UTC hours where all three sit between 09:00 and 17:00 local. If nothing lights up, widen the work-hour window or drop a zone before promising a time.
  • Confirming there is no overlap before scheduling async. Tokyo and Los Angeles rarely share business hours. Run the planner once for a representative date and see whether the answer is genuinely zero overlapping hours, then plan an async handoff or pick an early/late exception slot.
  • Comparing offsets across a DST week. In the second week of March the US has sprung forward but Europe has not, so the New York to London gap shrinks by an hour. Run the planner for a date inside that week and compare against a date two weeks later to see exactly which UTC hours move.
  • Verifying a half-hour zone alignment. Mumbai is UTC+5:30 year-round. The planner uses the IANA tz database, so the local labels for Asia/Kolkata read 13:30, 14:30, 15:30 instead of round hours. Confirm a London-Mumbai bridge meeting hits the right wall-clock time on both sides.

How it works

The planner builds 24 UTC instants for the chosen date, one per hour, and asks date-fns-tz to format each instant in every selected zone. For each slot, it checks whether the local hour in every zone falls inside the work-hour window, and marks the slot as overlap only when all zones pass. Half-hour and 45-minute zones use the same formatter, so Asia/Kolkata at UTC+5:30 and Asia/Kathmandu at UTC+5:45 work without special cases.

  1. Pick the meeting date. Enter a single calendar date in YYYY-MM-DD form. The planner evaluates that one UTC day, so DST transitions and date-line crossings on that date are reflected in the output.
  2. Add up to three IANA zones. Choose named zones such as America/New_York, Europe/London, or Asia/Tokyo. Named zones carry their daylight-saving rules, so the result is correct for the date you picked, not just a fixed offset.
  3. Set the work-hour window. Pick a start hour and an end hour. The window applies to every zone identically, so 9 to 17 means 09:00 to 17:00 local in each office. Half-hour minutes are not part of the window.
  4. Read the 24-hour grid. The grid lists every UTC hour of the date along with the local wall-clock label for each zone. Rows where every zone is inside the work-hour window are tagged as overlap.
  5. Pick a slot or widen the inputs. If overlap rows exist, pick one for the calendar invite. If none do, widen the work-hour window, drop a zone, or shift the date past a DST boundary and re-run.

Worked examples

No overlap across NYC, London, and Tokyo

Enter 2026-04-27, add America/New_York, Europe/London, and Asia/Tokyo, and keep work hours 9 to 17.

Result: The planner returns 0 overlapping work hours for that date. No UTC hour places all three offices inside 09:00 to 17:00 local at once.

Tokyo finishes its day before New York starts, so a three-way 9-to-17 overlap does not exist with these zones. Widen one zone or run the meeting outside core hours.

Three-hour overlap between NYC and London

Enter 2026-04-27, add America/New_York and Europe/London, and keep work hours 9 to 17.

Result: The planner finds 3 overlap hours. The first overlap row sits at UTC 13:00 with America/New_York reading 09:00 and Europe/London reading 14:00.

New York is on EDT (UTC-4) and London is on BST (UTC+1), a four-hour gap. The overlap is the last four NY-morning hours minus one for the London close.

London plus Mumbai with half-hour offset

Enter 2026-04-27, add Europe/London and Asia/Kolkata, and keep work hours 9 to 17.

Result: The planner finds 4 overlap hours, ending with the row where Asia/Kolkata reads 16:30. London-Mumbai overlap runs UTC 08:00 to 11:00 on that date.

Mumbai is UTC+5:30, so its labels read on the half hour. The work-hour window applies to the local hour bucket, which means a slot starting at 12:30 local Mumbai counts the moment its hour bucket is 12.

DST gap week between NYC and London

Enter 2026-03-09, add America/New_York and Europe/London, and keep work hours 9 to 17. New York switched to EDT on the 8th, but London stays on GMT until the 29th.

Result: The planner finds 4 overlap hours. The last overlap row ends with Europe/London reading 16:00 and America/New_York reading 12:00 at UTC 16:00.

During this two-week stretch the gap is only four hours instead of the usual five. After 2026-03-29 London moves to BST and the overlap shrinks back to three hours.

Edge cases & gotchas

  • Zones that never share business hours. Tokyo (UTC+9) and Los Angeles (UTC-7 in summer) keep their work hours roughly 16 hours apart. The planner returns zero overlap rows for almost any date with a 9-to-17 window. The result is real, not a bug: if you need a recurring meeting, widen one window or accept an early/late slot.
  • DST transitions inside the work-hour window. On the day a zone springs forward or falls back, that zone has 23 or 25 wall-clock hours. The planner still iterates 24 UTC hours, and date-fns-tz formats each instant under the post-transition or pre-transition rule as appropriate. Overlap rows on the transition date can shift by one slot compared to the day before or after.
  • Half-hour and 45-minute offset zones. Asia/Kolkata is UTC+5:30 and Asia/Kathmandu is UTC+5:45 year-round. The planner formats labels in those zones at minute granularity, so a row may read 14:30 or 14:45 in those columns. The work-hour window itself is integer-hour only, so the local hour bucket is what gates the overlap flag.
  • Two zones versus three or more. The overlap test is a simple every-zone check, so the algorithm is identical for two zones and for the maximum of three the form supports. Adding zones can only shrink the overlap window, never grow it. With three zones spanning more than 16 hours of offset, expect zero overlap during 9-to-17 hours.

Frequently asked questions about Meeting Planner Across Timezones

How does the planner pick the work-hour window?

You pick it. The default is 9 to 17, the standard US business day, and the same window applies to every zone. To match a German 8-to-18 office or a Japanese 10-to-19 office, change the start and end hours before running the calc.

Why does the planner sometimes return zero overlap?

Three zones spread across more than 16 hours of UTC offset cannot share a 9-to-17 window. The output is mathematically zero, not a calc failure. Drop a zone, widen the window, or accept an early or late slot for one office.

Does the planner handle daylight saving time?

Yes. Each zone is an IANA name, so date-fns-tz reads the active DST rule for the entered date. During the two weeks in spring when the US has shifted but Europe has not, NY-London overlap grows by one hour, and the planner reflects that.

Can I add more than three zones?

The form caps at three zones to keep the grid readable. The underlying calc accepts any list, so a developer could call createMeetingOverlap with more zones, but the public planner UI is intentionally limited.

Why are the local labels for Mumbai on the half hour?

Asia/Kolkata is UTC+5:30 year-round. The planner formats every label with date-fns-tz, which respects the IANA offset to the minute. Asia/Kathmandu uses 45-minute labels for the same reason.

Is the overlap window inclusive of the end hour?

No. With work hours 9 to 17, a slot is overlap only if the local hour is greater than or equal to 9 and strictly less than 17. The 17:00 hour itself is treated as off-hours, matching the convention that a 9-to-5 day ends at 17:00 sharp.

How do I find a slot when no zones overlap during business hours?

Either accept an early or late exception in one zone, or split the meeting into a pair of bilateral calls. The planner shows every UTC hour with the local label, so picking a 07:00 NY slot for a Tokyo morning is a one-row read.

Glossary

IANA timezone
A named region in the tz database, such as America/New_York or Asia/Kolkata, that carries the full UTC-offset and daylight-saving history for that region.
Work-hour window
The local start and end hours that count as a working day. The planner uses an integer-hour window (default 9 to 17) and applies the same window to every zone.
Overlap slot
A UTC hour during which every selected zone reads a local hour inside the work-hour window. The planner emits a 24-row grid and tags overlap rows.
Half-hour zone
A zone whose UTC offset is not an integer number of hours, such as Asia/Kolkata at UTC+5:30 or Australia/Adelaide at UTC+9:30 in winter. Local labels read on the :30 instead of :00.
Daylight saving time
The seasonal shift of local clocks by one hour. Different regions transition on different dates, so the offset gap between two zones can be different in March than in April.