About This Site
Casey Marlin
I build small, honest utilities for calendar files. This site started the usual way: a spreadsheet of events, a calendar that wouldn't take it, and a page of online converters that all wanted the file uploaded to somebody's server first. Calendar data is personal β meeting names, addresses, appointments β so the tools here do the whole job in the browser tab.
What this site does
CSV to ICS Converter turns a list of events into an iCalendar file, and it turns a calendar file back into rows. You drop in a CSV, an Excel workbook, or JSON, map the columns (title, start, end, location, description, and the rest), preview the events, and download an .ics file. The other direction reads an .ics file and writes CSV, Excel, JSON, or a printable PDF. None of that needs an account.
A calendar row is a small record, but it is a specific one: who is meeting whom, where, and when. The converter's job is to write that record in the shape RFC 5545 describes, so Google Calendar, Outlook, and Apple Calendar will accept it. Generated files use CRLF line endings, 75-octet line folding, escaped text, a unique UID per event, and a VTIMEZONE block taken from the timezone database in the browser. Timed events keep the zone you picked. All-day events use a date value, and the end date follows the spec's exclusive-DTEND rule so a three-day conference does not lose its last day.
Beside the converters there is a viewer, an editor, a validator, a merger, a form that creates one event, a form that creates a repeating event with an RRULE, and a spreadsheet template for people who are starting from a blank sheet. Written guides sit next to those tools. They describe the import and export steps each calendar app actually offers, and they say when an app has no CSV import at all.
Why it runs in the browser
Uploading a calendar to convert it means a copy of that calendar exists on a machine you do not control, even if the operator intends to delete it. The tools on this site are JavaScript that ships with the page. After the page has loaded, parsing, column mapping, and file generation do not send the file anywhere. Disconnect the network and a conversion that has already loaded still finishes. You can confirm that in the browser's network panel: converting a file makes no request that carries the file.
The page does load other scripts β analytics, and Google AdSense. Those scripts are not given the file bytes, the filename, or the event text. They cannot read what you convert, because that data stays in the tab. The privacy policy names each of those services and how to opt out of personalized ads.
Tools on this site
These are the routes under this site that mount a tool. Each one is its own page. Import walkthroughs and format notes are listed after them; they are articles, not extra converters.
Into a calendar file
Out of a calendar file
Read, check, edit, combine
Two articles reuse a tool that already has its own page. How to open an ICS file includes the viewer. Undo a Google Calendar import includes the editor. They are not separate converters.
The remaining pages are guides. They do not mount a converter of their own: CSV into Google Calendar, CSV into Outlook, CSV into Apple Calendar, Google Calendar to ICS, Outlook calendar to ICS, how to create an ICS file, what an ICS file is, ICS timezones, and an ICS file that will not import.
Principles
- Client-side or it doesn't ship. Parsing and file generation run in your browser. A conversion does not upload the file.
- Standards, actually followed. Generated files implement RFC 5545: CRLF endings, 75-octet line folding, text escaping, unique UIDs, and real VTIMEZONE definitions computed from the timezone database in your browser.
- Tested against the suite in this repository. npm test runs eight scripts and currently reports 425 passing checks and 0 failures: parsing and generation, the editor, spreadsheet and JSON export, merging, validation, print layout, license signing, and recurrence. That count is from the run on 2026-09-22. Sample output is also checked by importing files into Google Calendar, Outlook, and Apple Calendar.
- Honest docs. The import guides describe what each calendar app actually does in 2026 β including the annoying parts, like Apple Calendar having no CSV import and new Outlook dropping it.
Who maintains it
One person maintains this site: Casey Marlin. There is no support desk, no ticket queue, and no bot that answers first. The same person writes the guides and the converter. A correction to a page is made on the page; a reply, when one is needed, comes after that.
The site is independent. It is not affiliated with Google, Microsoft, or Apple. Product names appear here only to say which file each tool reads or writes.
How to report a problem
If a file converts wrong, a time shifts by an hour, a column is mapped to the wrong field, or a guide no longer matches the app it describes, write to support@csvtoics.app. The useful report names the page, says what you expected, and attaches the file when you can share it. An attachment in that email is something a person will read. The converter itself still does not upload the file β do not send a calendar you are not willing to have read.
Questions about the privacy policy, a purchase receipt, or a line in a guide go to the same address. One person reads the inbox. Expect a reply in days rather than hours. The contact page is the same mailbox.