CruxDevCruxDev Tools Studio Prompts
productivity Utility • Zero-Server Privacy • 100% Client-Side

ICS Calendar Viewer, Creator & CSV Converter

Open .ics calendar files to browse events, create events and export a valid .ics file, or convert ICS to CSV and back using Google Calendar import columns. Handles all-day, recurring and time-zone events locally.

Overview

Opens iCalendar .ics files exported from Google Calendar, Outlook or Apple Calendar and lists every event by date, with all-day and recurring badges. You can also build a list of events in a form and download it as a standards-compliant .ics file, or convert between ICS and CSV. Files are parsed in your browser and are never uploaded.

How It Works

The tool has three modes. View accepts one or more .ics files by drag and drop or the picker, merges them into one sorted list, and lets you search titles, places, notes and organizers; click an event to see its RRULE, link and UID. Create events has a form for title, start, end, all-day, location, URL and description; the list is saved in this browser so it survives a reload, and each entry can be edited or removed before you export. ICS to CSV converts pasted or opened text in either direction and offers copy and download.

Step-by-Step Usage Guide

  1. Choose View, Create events or ICS to CSV at the top of the tool.
  2. Drop your .ics files, or fill in the event form and press Add event.
  3. Search the list and click an event to check its time, location and repeat rule.
  4. Export the list as .ics, or convert it to CSV for a spreadsheet.
  5. Import the downloaded file into your calendar app.

Technical Specifications & Standards

Parsing follows RFC 5545. Folded lines are joined first, then each content line is split into its name, parameters (quoted values may contain colons) and value, and TEXT escapes such as \n, \, and \; are decoded. Only VEVENT components are read; VALARM reminders and VTIMEZONE definitions are skipped without disturbing the events around them. DTSTART with VALUE=DATE is treated as all-day, a trailing Z marks UTC, and a TZID parameter is kept and shown beside the wall-clock time. When DTEND is missing, the end comes from DURATION, or one day for an all-day event. Recurrence rules are kept as written and exported unchanged, not expanded. On export, every line is folded at 75 octets of UTF-8 without splitting an accented letter or emoji, lines end in CRLF, and DTSTAMP plus a random UID are added where needed. Events you create are stored in UTC from your device's time zone, so an invitation imports at the right hour anywhere.

Targeted Use Cases

  • Checking what is inside an .ics attachment before importing it into a work calendar.
  • Turning a CSV schedule of classes or shifts into an .ics file anyone can subscribe to.
  • Exporting calendar events to CSV to count meetings or hours in a spreadsheet.
  • Merging several exported calendars into one file when moving between providers.
  • Creating a single event invitation file to attach to an email or a web page.

Notes & Gotchas

  • Keep the UID column when editing a CSV, so re-importing updates events instead of duplicating them.
  • Use the All Day Event column with True for holidays and multi-day trips, and leave the times blank.
  • Remember that CSV has no time zone; UTC times are written in this device's local time.
  • Expand recurring events in your calendar app first if you need one CSV row per occurrence.

Frequently Asked Questions

How do I convert an ICS file to CSV?

Open ICS to CSV, drop the .ics file or paste its text, keep the direction on ICS to CSV and press Convert. The output uses Google Calendar's columns, with dates as MM/DD/YYYY and times as h:mm AM/PM, and can be copied or downloaded.

Which CSV layout does CSV to ICS accept?

The header row needs a Start Date column. Subject, Start Time, End Date, End Time, All Day Event, Location, Description and UID are read when present. Dates may be YYYY-MM-DD or MM/DD/YYYY, and times may be 24-hour or use AM and PM.

Are recurring events expanded into every occurrence?

No. The RRULE is shown in the event details and written back unchanged on export, so your calendar app still repeats the event. The CSV gets one row for the first occurrence.

Why do my exported times look shifted?

Events created in the form are saved in UTC from this device's time zone, and calendar apps display them in yours. Times with a TZID, such as Europe/London, are kept as written with that zone label.

Are my calendar files uploaded anywhere?

No. The .ics and CSV files are read with the browser's file API and parsed by local JavaScript. Events you create are saved only in this browser's local storage.

Related tools

  • Meeting Time Planner - Find the best hour for a call across two timezones — every hour rated great, workable, or unsociable.
  • Timezone Converter - Convert date and time between any two IANA timezones with DST-aware offsets, a live now mode, and multi-zone batch rows.
  • Date Difference Calculator - Count days, business days, and weekend days between any two dates — perfect for deadlines and notice periods.
  • VCF Contacts Merger, Deduper & CSV Converter - Open and merge vCard .vcf files, remove duplicate contacts by email, phone or name, and export vCard 3.0 or 4.0, or convert VCF to CSV and CSV to VCF. Reads 2.1 quoted-printable cards. Nothing leaves your browser.
  • Excel & Spreadsheet Viewer (XLSX, XLS, ODS, CSV) - Open XLSX, XLS, ODS and CSV files in your browser with sheet tabs, a frozen header row, fast scrolling through 100k+ rows, cell search, column stats and export to CSV, JSON, Markdown or HTML.
  • Excel to JSON / CSV Converter - Open .xlsx, .xls, or .csv files, pick a worksheet, and convert it to JSON or CSV entirely in your browser - the workbook never leaves your device.