CalPorter is a small collection of free tools for calendar files. Every tool belongs to one job family: moving, inspecting and preparing event calendars. Every tool is free to use, with no account or subscription.
How it works
The site serves static pages. A background worker in your browser parses the files with the open-source ICAL.js library. CSV parsing uses Papa Parse; ZIP downloads use fflate. Your calendar content stays in your browser’s memory and is discarded when you close or reload the page. CalPorter does not request calendar account access.
Practical limits
Files must total no more than 10 MB, with at most 20,000 event records and 25 source files. A split creates at most 100 chunks. Previews show up to 500 records. These limits keep ordinary browsers responsive. A file may still exceed the memory available on an older phone.
The checker is a common-error preflight, not complete RFC validation. The viewer shows stored records, not expanded recurring occurrences. The CSV export is an inspection format, not a lossless backup. We do not guess missing time zones or resolve conflicting event revisions. A successful file export is not proof that a receiving calendar accepts the result.
Found a limitation?
Keep a copy of the original calendar and test the output in a separate calendar. Do not send private calendars to strangers to reproduce a problem. For time-sensitive events, verify dates and time zones in the calendar app you will actually use.
Standards and sources: RFC 5545, ICAL.js, Papa Parse, fflate.