Timezones · 9 minute guide
ICS Timezones: Floating Time, UTC and TZID
The same-looking clock time can have three different meanings in an ICS file. It may be UTC, tied to a named timezone, or floating with no timezone at all. Converting between those forms without understanding the intent is one of the most common reasons imported events appear several hours early or late.
Published and reviewed by Whitle · September 26, 2026
Quick answer
What matters most.
- A trailing Z means UTC; it does not mean the user's local timezone.
- TZID preserves a local time in a named region and allows the UTC offset to change with daylight-saving rules.
- A floating time has no timezone and should not be silently anchored to the computer that opens it.
01
Three ways to represent 9:00 AM
| ICS value | Meaning | Typical behavior |
|---|---|---|
| DTSTART:20261002T090000Z | 09:00 UTC | Displays at a different local clock time depending on the viewer |
| DTSTART;TZID=America/Toronto:20261002T090000 | 09:00 in Toronto | Keeps Toronto local time and follows that region's rules |
| DTSTART:20261002T090000 | Floating 09:00 | Intended as 09:00 without a fixed timezone |
02
UTC is an instant
A date-time ending in Z is expressed in Coordinated Universal Time. It identifies the same instant worldwide. A viewer converts that instant to its display timezone, so 14:00Z can appear as 10:00 in one region and 15:00 in another.
UTC is a good representation for a moment that should occur simultaneously for everyone. It is not a safe default for a spreadsheet that merely omitted timezone information.
03
TZID preserves regional clock intent
TZID associates a local date-time with a timezone identifier, such as America/Toronto or Europe/London. Named regions matter because their UTC offset can change over the year and because historical rules differ.
An ICS file may include VTIMEZONE components describing timezone observances. Calendar applications may also recognize common IANA timezone names directly. A validator should report unknown identifiers and missing or conflicting definitions rather than silently choosing the browser timezone.
DTSTART;TZID=America/Toronto:20260302T090000
DTEND;TZID=America/Toronto:20260302T10000004
Floating time is deliberately unanchored
RFC 5545 defines a date-time without Z or TZID as floating. The example use is a clock time intended to be the same regardless of the user's current timezone—09:00 remains 09:00 rather than becoming another local hour after travel.
Floating values can also appear because an exporting system omitted timezone context accidentally. When a conversion tool asks where to interpret floating times, it is asking for a deliberate assumption needed for comparisons or UTC export; it should not rewrite the source without your confirmation.
05
Why daylight saving time exposes mistakes
A weekly 09:00 meeting in a named timezone should normally remain at 09:00 local time while its UTC offset changes seasonally. Replacing its timezone with one fixed numeric offset may make later occurrences move by an hour after a daylight-saving transition.
Test repeating events on both sides of a transition. A recurrence preview should use the named timezone and report when it cannot expand dates completely.
06
A safe timezone checklist
- 1Identify whether each timed value is UTC, TZID-based or floating.
- 2Check that referenced TZIDs are recognized or defined in the calendar.
- 3Choose an interpretation zone for floating times only when the operation requires one.
- 4Preview recurring dates across seasonal clock changes.
- 5Import into a temporary calendar and compare the original wall-clock times before deleting the source.
Common questions
A few direct answers.
What does Z mean after an ICS time?
Z marks the value as UTC. Calendar software normally converts that instant into the timezone used for display.
What is a floating time in an ICS file?
It is a date-time with no Z suffix and no TZID parameter. It represents a clock time without a fixed timezone.
Should I convert every ICS time to UTC?
No. UTC is useful for fixed instants, but changing a timezone-based recurring event to UTC can alter its intended local clock time across daylight-saving changes.
Primary sources.
- RFC 5545 section 3.3.5: Date-Time ↗
- RFC 5545 section 3.2.19: Time Zone Identifier ↗
- Google Calendar: Fix events that import at the wrong time ↗
Provider interfaces and limits can change. We review official documentation when this guide is materially updated.
Tools for this job.
Timezone Checker
Find missing timezone definitions and ambiguous floating timestamps.
ICS Validator
Check the whole file without making any changes.
ICS Repair
Review problems, choose explained repairs and save a corrected calendar copy.
ICS Viewer
See calendar events in a clear, readable local agenda.
Keep learning
Related guides.
Open an ICS file without importing
Learn how to open and read an ICS calendar file safely on any device without adding its events to Google Calendar, Outlook or Apple Calendar.
Fix Google Calendar ICS import errors
Diagnose and repair ICS files that Google Calendar cannot import, including processed-zero-events, invalid format, file-size and timezone problems.
Convert CSV to ICS correctly
Convert spreadsheet rows into an ICS calendar with correct column mapping, date formats, timezones, all-day events and validation.