Google Calendar / Outlook Calendar
Google/{extText.outlookLinkTitle}s use the same UTC instant
Calendar Link Builder
Create timezone-safe Google Calendar, Outlook, and ICS links from one meeting time. Everything is generated locally in the browser.
Local only: no event data is uploaded.
Datetime-local is interpreted in the selected base timezone, not your browser timezone. Calendar outputs are generated as UTC instants from that base timezone.
Ready to send
This is the final handoff: verify local city times, open Google or Outlook, copy ICS, then return to the planner if the slot needs another pass.
Google/{extText.outlookLinkTitle}s use the same UTC instant
ICS text is copyable for manual import
Return links preserve cities, timezone, and selected instant
Africa/Casablanca · beijing,new-york,london
Send-ready preview
Base instant: Wed, May 27, 22:00
UTC instant: 2026-05-27T21:00:00.000Z
Thu, May 28, 05:00
Ends: Thu, May 28, 05:30
Asia/Shanghai · GMT+8
Status: NightWed, May 27, 17:00
Ends: Wed, May 27, 17:30
America/New_York · GMT-4
Status: Work hoursWed, May 27, 22:00
Ends: Wed, May 27, 22:30
Europe/London · GMT+1
Status: NightSome cities are on a different local date.
Offsets can change around DST. Re-check this slot before sending recurring invites.
Meknes recurring sync Start time: Wed, May 27, 22:00 (Africa/Casablanca, GMT+1) Ends: Wed, May 27, 22:30 Duration: 30 minutes City preview: Beijing: Thu, May 28, 05:00 → Thu, May 28, 05:30 (GMT+8, Night) New York City: Wed, May 27, 17:00 → Wed, May 27, 17:30 (GMT-4, Work hours) London: Wed, May 27, 22:00 → Wed, May 27, 22:30 (GMT+1, Night) DST and date checks: Some cities are on a different local date. Offsets can change around DST. Re-check this slot before sending recurring invites.
Thu, May 28, 05:00
Asia/Shanghai · GMT+8
Wed, May 27, 17:00
America/New_York · GMT-4
Wed, May 27, 22:00
Europe/London · GMT+1
BEGIN:VCALENDAR VERSION:2.0 PRODID:-//itime.day//Calendar Link Builder//EN CALSCALE:GREGORIAN METHOD:PUBLISH BEGIN:VEVENT UID:20260527T210000Z-1779915600@itime.day DTSTAMP:20260527T210000Z DTSTART:20260527T210000Z DTEND:20260527T213000Z SUMMARY:Meknes recurring sync DESCRIPTION:Meknes recurring sync\nStart time: Wed\, May 27\, 22:00 (Africa/Casablanca\, GMT+1)\nEnds: Wed\, May 27\, 22:30\nDuration: 30 minutes\nCity preview:\nBeijing: Thu\, May 28\, 05:00 → Thu\, May 28\, 05:30 (GMT+8\, Night)\nNew York City: Wed\, May 27\, 17:00 → Wed\, May 27\, 17:30 (GMT-4\, Work hours)\nLondon: Wed\, May 27\, 22:00 → Wed\, May 27\, 22:30 (GMT+1\, Night)\nDST and date checks: Some cities are on a different local date. Offsets can change around DST. Re-check this slot before sending recurring invites. END:VEVENT END:VCALENDAR
Calendar-safe handoff
Use the builder after the team has chosen a slot in the meeting planner. The form treats the selected start time as a wall time in the base timezone, converts it to one UTC instant, then uses that instant for Google Calendar, Outlook, the invite note, and ICS text. That keeps the handoff safer than pasting several local times into chat.
Choose the organizer, office, or team-owned IANA timezone such as America/New_York or Europe/London. Avoid fixed offsets for meetings that may cross daylight saving changes.
The note includes the base time, duration, city preview, offsets, and work-hour flags so attendees can audit the invite before accepting it.
This builder publishes one event instant. If the meeting repeats, keep the recurrence rule and timezone together in your calendar and review the window after DST changes.
Opens a prefilled web event with UTC dates. The attendee calendar displays the time in their account timezone.
Uses Outlook's compose URL with ISO start and end timestamps. It is useful for Microsoft accounts but may still inherit account-level defaults.
Portable VEVENT text using UTC DTSTART and DTEND. Paste or save it as an .ics file when you need a provider-neutral handoff.
Scheduling workflow
Start with a timezone board, score candidate windows in the meeting planner, then return here with cities, title, duration, and base timezone already in the URL.