Step 1 / source
Choose the source
Drop one file here
Choose a reviewed event table that follows the documented title, start, end, location, and description columns.
Checking publication status...LOCAL CALENDAR CONVERTER / CSV TO ICS
Turn a strict event CSV into an importable ICS calendar with all-day dates or explicit UTC start and end times.
Step 1 / source
Choose a reviewed event table that follows the documented title, start, end, location, and description columns.
Checking publication status...This operation runs with browser APIs. Nirmion receives catalogue requests, not the selected source bytes.
The converter creates a separately named output. It never writes back into the source file.
One UTF-8 CSV up to 2 MB and 1,000 events. Required headers are title and start; timed events require end. Values use YYYY-MM-DD or ISO UTC timestamps ending in Z.
Plain-language method
Nirmion maps title or summary, start, optional end, location, and description headers into escaped VEVENT records. It writes CRLF lines, folds long content, adds UTC generation timestamps, and rejects mixed or reversed time ranges.
Use title,start,end,location,description headers. Dates use YYYY-MM-DD. Timed values use forms such as 2026-09-15T09:30:00Z; local times without a timezone are rejected.
Choose comma, semicolon, tab, or pipe to match the file. Calendar name labels the collection but does not alter event titles.
The UTF-8 .ics can be imported into many calendar applications. Review the imported event count, dates, timezone display, and duplicates before saving.
Useful when
Before converting
Know the boundary
An all-day row without end becomes one day. When end is supplied for an all-day event, ICS treats it as the first date not included. Timed events require a later UTC end.
Quick answers
Strict input prevents ambiguous calendar times.
No. Timed values must include a full date and end in Z so the instant is unambiguous.
No. A missing end creates a one-day event; a supplied date-only end is exclusive.
Many calendar apps use event UIDs to identify records, but import behavior varies. Always test duplicates in the target application.