Import an Excel schedule into Outlook

Outlook can't open an Excel workbook as a calendar, and the classic workaround — save as CSV, run the Import/Export wizard, map fields one by one — breaks on the first non-US date. Koyomi reads the .xlsx or .xls directly and writes an .ics that Outlook imports in a single step.

A facilities manager keeps the year's inspections and maintenance windows in a workbook: asset, location, date, window start, window end, contractor. Koyomi reads the Excel date and time cells as they are, recognizes Location on its own, and lets you point Asset at the title and Contractor at the description with dropdowns. Multi-sheet workbooks show a sheet picker.

The preview table shows every event as Outlook will see it, with warnings for any rows missing a date or title. Nothing is uploaded, and there's no row limit.

How to import an Excel schedule into Outlook

  1. Use a plain table on the sheet you convert. Frozen panes and filters don't matter; a logo row or a merged title above the headers does. Column names belong in row 1. A formatted Excel Table (Insert → Table) is read as ordinary cells.
  2. Use Excel time cells for Window start and Window end. Cells formatted as 08:00 store a fraction of a day and are read as such; text like 8am also works. What doesn't work is a single cell reading "08:00-12:00", so split it into two columns.
  3. Asset to title, Contractor to description. Asset isn't a recognized header name, so pick it from the title dropdown after the file loads. Location is picked up by name, and Contractor is assigned to Description the same way.
  4. Give overnight windows an End Date. A window starting at 22:00 and ending at 06:00 with the same date on both sides reads as ending before it starts; the row gets the default duration and a warning. An End Date of the following day fixes it.
  5. Pick the site's timezone and the tab. Multi-site teams often keep one tab per building. Convert each tab into its own .ics, name the calendar after the site, and set the timezone to that site's zone if buildings are in different regions.

How Excel time and date cells are read

Excel keeps dates and times in one number: the whole part counts days since December 30, 1899, and the fraction is the time of day (0.5 is noon). Koyomi reads that value, never the display format, so 08:00 formatted as 8:00 AM, 08:00:00 or h:mm all mean the same thing.

Two consequences follow. A date cell that also carries a time (14/09/2026 08:00 in one cell) is read as a timed start with no separate time column needed. And a date-time cell at exactly midnight has no time as far as the parser can tell, so it becomes an all-day event unless a Start Time column says otherwise.

Text that looks like a date but is stored as text is parsed as text, following the day-first/month-first control. Columns that mix real dates and typed text are handled cell by cell.

Working with the result in Outlook

Outlook categories, reminders and Show As status aren't in the file, so the imported inspections arrive uncategorized and, by the format's default, as Busy. If a calendar full of Busy blocks would confuse scheduling, import into a separate calendar (Open as New on desktop, or a new calendar on the web), where they don't affect your free/busy.

Assigning categories to a batch is quicker after import: in classic Outlook, switch the calendar to List view, sort by Subject or Location, select the range and apply a category once.

When the workbook changes, the cleanest update is to delete the separate calendar and import the new file, since how Outlook handles re-imported UIDs varies between versions.

After you download the .ics

Outlook

  1. Outlook on the web / new Outlook: Calendar → Add calendar → Upload from file → pick the .ics and a destination calendar.
  2. Classic Outlook for Windows: File → Open & Export → Import/Export → Import an iCalendar (.ics) file.
  3. Choose Import (merge into your calendar) rather than Open as New, unless you want a separate calendar.

Read the guide

Frequently asked questions

Can Outlook import an .xlsx file directly?
No. Outlook desktop imports CSV (through the wizard) and .ics; Outlook on the web and the new Outlook import only .ics. Converting the workbook to .ics here works for all of them.
My Excel times are cells formatted as 08:00, not text. Are they read correctly?
Yes. Excel stores times as fractions of a day; Koyomi reads the cell value and turns it into a real time. Text times like 8:00, 8am or 14h30 are read as well.
Some inspections take several hours. Do I need an end time?
It helps. With an End Time column each event runs its true length. Without one, each event gets the default duration — 60 minutes unless you set another value before downloading.
Will the events go into my main Outlook calendar or a separate one?
Your choice. In Outlook desktop, Import merges into your calendar and Open as New makes a separate one. On the web and in the new Outlook, the upload dialog asks which calendar to add to.
The sheet has one row per asset and a column per month. Can that convert?
Not as it is; each event needs its own row with a date column. In Excel, Power Query's Unpivot (Data → From Table/Range, select the month columns, Unpivot Columns) turns the grid into a list of asset and date pairs. Load that to a new sheet and convert it.
How do I make an inspection all-day in Excel?
Leave the Window start and Window end cells empty on that row. If you keep a Yes/No column such as All Day, it's recognized, and a Yes forces the row to all-day even when times are filled in.
Will the contractor get an invitation?
No. An import creates appointments, not meetings; the file holds no attendees and Outlook sends nothing. Their name in Description is a note for you, not an invite.
Is my spreadsheet uploaded anywhere?
No. Parsing and the .ics file are produced entirely in your browser — the file never leaves your device. That's also why there is no size limit, no queue and no account.
Is this really free?
Yes. Every input format, every option, no sign-up, and nothing added to the calendar file.
Does it support recurring events?
Not yet. Each row becomes one single event. For a weekly class or shift, put one row per occurrence — filling a date column down in a spreadsheet takes seconds.