Turn a CSV into a live calendar feed

A csv-to-ics converter hands you a file. That file is a snapshot, and once the schedule changes there's no way to push a fix to anyone who imported it. CalRelay turns your CSV into a calendar feed instead: subscribers get one link, and when the CSV changes their calendars follow.

You can point it at any publicly reachable CSV URL, like an export endpoint, a file on your server, or a published sheet. CalRelay keeps polling it and regenerating the feed. You can also paste raw CSV straight in for a quick calendar that you update by re-pasting.

Free plan, no credit card. No account needed to see your events.

1

Bring your CSV — as a URL or a paste

Paste a link to any CSV that's reachable without a login, or paste the CSV text itself. A URL source is polled and stays in sync on its own. A pasted CSV is a snapshot, and you can update it any time by pasting again.

2

Map your columns and check the preview

CalRelay reads the header row, suggests which columns are the title, date, time, and location, and shows every event it found. Rows it can't confidently parse are held and shown with the raw cell values instead of being guessed at or dropped.

3

Share one subscribe link

You get a hosted subscribe page with one-click buttons for Apple Calendar, Google Calendar, and Outlook. Subscribers tap once and stay in sync from then on. They don't need an account.

Converter vs. feed: why the URL matters

A converter reads the file once and emits an .ics, and that's the end of its involvement. When the schedule changes, every calendar that imported the file is showing stale events. Your only fix is to re-export and ask everyone to re-import.

A feed works the other way. CalRelay hosts the calendar at a stable URL, keeps re-reading your CSV, and calendar apps pick up changes automatically. Every event carries a stable UID, so an edited row updates the existing event in subscribers' calendars instead of creating a duplicate.

Hosted CSV URLs: set it and forget it

If your CSV lives at a URL (a registration system's export link, a file your build publishes, a reporting endpoint), that's the strongest setup. CalRelay re-fetches it hourly on the free plan and every 15 minutes on Pro. Whatever writes the CSV is effectively writing the calendar.

If the URL goes dark or the columns change, CalRelay doesn't serve garbage. The feed freezes at its last good state, you get an email, and subscribers keep the last valid calendar until you fix it.

Pasted CSV: quick, but a snapshot

No URL? Paste the CSV text directly. You get the same parsing, preview, and hosted subscribe page. The only difference is that a pasted table doesn't update itself. When the schedule changes, paste the new version into the same feed and every subscriber gets the update through the same link.

That's still better than a converted file. Your subscribe link never changes, and re-pasting updates events in place rather than duplicating them.

Questions

What counts as a CSV URL?
Any link that returns CSV without a login: a file on a web server, an export endpoint from a registration or scheduling system, or a spreadsheet published as CSV. If opening the link in a private browser window shows the data, CalRelay can poll it.
How often is my CSV re-read?
Hourly on the free plan, every 15 minutes on Pro. Apple Calendar and Outlook subscribers usually see changes shortly after that. Google Calendar fetches external feeds on its own schedule and can take up to 24 hours, which is a Google limitation that applies to every feed provider.
What happens to rows that don't parse?
They're held and shown to you with the raw cell values so you can see what happened, whether that's a TBD date, a malformed time, or a missing title. CalRelay never guesses past confidence and never silently skips a row.
What if the CSV URL breaks or the columns change?
The feed freezes at its last good state and you get an email explaining what changed. Subscribers keep the last valid calendar instead of seeing it go empty. Fix the URL or remap the columns and the feed resumes.
Is there a free plan?
Yes. One feed with up to 50 events, refreshed hourly, free forever, no credit card. Pro ($12/mo or $99/yr) adds 10 feeds, unlimited events, and 15-minute refresh.

Your schedule already exists.

Turn it into a calendar your whole roster can subscribe to. Takes about three minutes.

Create your free feed