Turn an Excel schedule into a subscribable calendar
Your schedule lives in an Excel workbook and you need it on other people's calendars. The fastest path is to select the rows in Excel, copy them, and paste them straight into CalRelay. Pasted tables are a fully supported source, and Excel's clipboard comes across as a clean table.
There's no add-in to install and no macro to maintain, and you don't export an .ics and email it around. You get a hosted subscribe page with one-click buttons for Apple Calendar, Google Calendar, and Outlook, and one link that stays the same even as the schedule changes.
Free plan, no credit card. No account needed to see your events.
Copy the table in Excel
Select your header row and event rows in Excel and copy. Formulas come across as their displayed values, so computed dates and times work fine. If you'd rather work with a file, save as CSV and paste that instead.
Paste and map your columns
Paste into the wizard below. CalRelay reads your headers, suggests which columns are the title, date, time, and location, and previews every event. Rows it couldn't parse are held and shown with the raw cell values instead of being guessed or dropped.
Share one subscribe link
Send the hosted subscribe page to your team, roster, or class. When the workbook changes, copy and paste the new table into the same feed. Every subscriber's calendar updates through the same link, and edited events update in place instead of duplicating.
Why paste instead of uploading the .xlsx?
There's no direct .xlsx upload today. It's on the roadmap. In the meantime, pasting works well for schedules: you choose exactly which sheet and which rows become the calendar, and what you paste is what Excel displays, so formatted dates and formula results come through the way you see them.
If you prefer files, File → Save As → CSV gives you the same table as text, and pasting that works the same way.
Keeping the calendar in sync with the workbook
A pasted table is a snapshot of the workbook at the moment you copied it. When the schedule changes, paste the fresh table into the same feed. That's the whole update workflow. Events carry stable IDs, so re-pasting updates and removes events in subscribers' calendars correctly. It never duplicates them, and the subscribe link never changes.
If you want the feed to update itself without re-pasting, use a source CalRelay can poll. Move the schedule tab into a Google Sheet with a share link, or publish it anywhere as a CSV URL. Those sources are re-read automatically, hourly on the free plan and every 15 minutes on Pro.
What Excel data parses well
One row per event with a header row: a title column, a date column, and optionally time, end time, location, and description. Excel-formatted dates and plain text dates both work (3/4/26, Mar 4, March 4th @ 7pm), and you pick your locale so day-first and month-first dates are never guessed.
For recurring schedules, use one row per occurrence, which fits how Excel schedules are usually built anyway. Anything CalRelay can't confidently parse is held and shown to you with the raw values rather than published as a wrong event.
Questions
Can I upload my .xlsx file directly?
My workbook is on OneDrive or SharePoint — can the feed read it automatically?
Will re-pasting the table duplicate events in subscribers' calendars?
What about formulas and Excel date formatting?
Is there a free plan?
Your schedule already exists.
Turn it into a calendar your whole roster can subscribe to. Takes about three minutes.
Create your free feed