How to Open an ICS File in Excel
Excel cannot read .ics files natively. Here are the three routes that work — CSV conversion, Power Query, and Google Sheets — and when to use each.
Excel has no iCalendar importer. Renaming calendar.ics to calendar.csv and opening it produces a single column of BEGIN:VEVENT lines, not a table. You need to convert the format first. There are three practical routes.
Route 1: Convert to CSV First (Easiest)
- Open the .ics in ICS Viewer and export as CSV.
- In Excel, go to Data → From Text/CSV rather than double-clicking the file.
- In the preview, set the start and end columns to Date explicitly, then Load.
Using the Data tab instead of double-clicking matters more than it sounds. Double-clicking lets Excel apply locale-based date guessing, which is where day/month swaps come from.
Route 2: Power Query (For a Repeating Feed)
If you re-export the same calendar every week, Power Query lets you build the transformation once and hit refresh afterwards. Load the .ics as a text file, then:
- Split into rows on the line break character.
- Filter to rows starting with
SUMMARY:,DTSTART, orDTEND. - Add an index column, group every event block, and pivot the property names into columns.
This is fiddly to set up and it will not survive line folding — iCalendar wraps long lines by continuing them with a leading space, so a description containing a line break will split into fragments. Worth it only for a stable feed you process repeatedly; for one-off files, route 1 is faster and more reliable.
Route 3: Google Sheets, Then Download as .xlsx
If you want the calendar in a sheet without touching Excel's import dialog, import the CSV into Google Sheets (File → Import → Upload), set the locale under File → Settings so dates parse correctly, then File → Download → Microsoft Excel.
Calculating Hours Once It Is In
=(EndCell-StartCell)*24
Format as a number, not as time. To total only real meetings and exclude all-day blocks:
=SUMIFS(DurationRange, AllDayRange, "FALSE")
Then a PivotTable with the date as rows and duration as the sum gives you hours per day, per week, or per client in about thirty seconds.
What Excel Cannot Represent
A flat sheet loses three things from the original file, and it is worth knowing which:
- Recurrence rules. A weekly standup is one
VEVENTwith anRRULEin the source. Any sensible export expands it into individual rows — check that yours did, or your hour totals will be wildly low. - Timezone identity. Times become plain local values with no zone attached.
- Attendee status. Accepted, declined, and tentative responses usually collapse into a single name list.
Want to preview an ICS file right now?
Open ICS Viewer →