iCalendar (ICS) から JSON への変換ツール
ガイド
iCalendar (ICS) から JSON への変換ツール
The iCalendar (ICS) to JSON Converter parses RFC 5545 calendar content into structured JSON you can read, transform, or feed into another program. Paste an exported .ics file from Google Calendar, Apple Calendar, or Outlook and the tool unfolds long lines, unescapes TEXT values, separates property parameters from values, parses DTSTART and DTEND into ISO 8601, and lifts RRULE into a typed object — all in your browser. Nothing is uploaded to a server.
使用方法
- Paste the contents of an .ics file into the input box, or drop the file onto the uploader.
- Choose your output options: pretty-print, a flat events array, ISO 8601 date parsing, or include the raw property values alongside parsed ones.
- Optionally enable RRULE preview to see the first N expanded occurrences of any recurring event.
- Copy the JSON output or download it as
calendar.json.
機能
- RFC 5545 compliant unfolding – Rejoins continuation lines that begin with whitespace before parsing, so long DESCRIPTION and URL values are reconstructed correctly.
- Property parameters preserved – TZID, CN, RSVP, VALUE and any X- parameters land in a structured
paramsobject next to the value. - Date parsing – DTSTART, DTEND, DTSTAMP, CREATED, LAST-MODIFIED, RECURRENCE-ID and DUE are converted to ISO 8601 with flags for date-only, UTC, and TZID-bound values.
- RRULE as an object – FREQ, INTERVAL, COUNT, UNTIL, BYDAY, BYMONTH and friends are parsed into a typed object instead of a single opaque string.
- VTIMEZONE and VALARM kept intact – Nested components are emitted as a
componentsarray on their parent VCALENDAR or VEVENT. - Organizer and attendee addresses – mailto: prefixes are stripped into an
emailfield while preserving the originalcalAddress. - Recurrence preview – Optionally expand DAILY, WEEKLY (with BYDAY), MONTHLY and YEARLY rules into the first N occurrences for quick eyeballing.
- クライアントサイドのみ – Files are parsed in your browser. Calendar contents never leave your machine.
ベース64画像文字列に遭遇し、それが実際に何であるかを確認する必要があるとき、このツールを使います。APIレスポンスに埋め込まれたサムネイルをデバッグする、CSSやHTMLメールに埋め込まれた画像を確認する、トラッキングピクセルを逆エンジニアリングする、画像生成APIからの出力の確認を行う、またはデータベースエクスポートから資産を回復するなどです。レンダリングがブラウザ内で行われるため、プロダクションに送信する前にベース64パラメータが正しく構成されているかを迅速に確認する手段としても使えます。
Reach for the converter when you need to read calendar data programmatically — diffing two .ics exports, loading events into a spreadsheet, pre-processing meetings for a chatbot, or auditing what an exported booking actually contains. JSON is far easier to grep, validate, and pipe into another tool than raw line-folded iCalendar text.
よくある質問
-
What is RFC 5545 and why does it matter for parsing .ics files?
RFC 5545 is the specification that defines the iCalendar data format used by Google Calendar, Apple Calendar, Outlook, and most calendaring apps. It defines property names, parameter syntax, value types, line folding rules at 75 octets, escaping inside TEXT values, recurrence rules (RRULE), and how time zones are referenced through VTIMEZONE blocks. Parsing .ics correctly means handling all of that — naive splits on newlines or commas miss escaped sequences and folded continuations.
-
What is line folding in iCalendar content?
Line folding is the rule that any content line longer than 75 octets must be broken across multiple physical lines, with each continuation line starting with a single whitespace character (space or tab). When reading an .ics file you must rejoin folded lines before parsing — otherwise long descriptions, URLs, and recurrence rules will be split mid-value and the resulting properties will be corrupt.
-
How does VTIMEZONE relate to DTSTART and DTEND?
DTSTART and DTEND can carry a TZID parameter that references a VTIMEZONE block defined elsewhere in the calendar. The VTIMEZONE block describes the UTC offset and its daylight-saving transitions for that named zone, so the wall-clock time written in DTSTART can be resolved to a precise UTC instant. Times marked with a trailing Z are already in UTC, while times with no TZID and no Z are floating — they should be displayed in whatever local time the reader is in.
-
Why are commas, semicolons, and newlines escaped inside SUMMARY and DESCRIPTION?
Inside a TEXT value the characters comma, semicolon, and backslash, plus literal newlines, all have structural meaning at the higher level: commas separate list items, semicolons separate parameters, and newlines end content lines. RFC 5545 §3.3.11 reserves the escape sequences \\, \,, \;, and \n (or \N) so authors can include those characters inside a value. A parser must reverse those escapes after splitting the line, not before.
-
What is an RRULE and how is it different from a list of explicit dates?
RRULE encodes a repeating pattern — for example FREQ=WEEKLY;BYDAY=MO,WE;COUNT=10 means ten occurrences, every week on Monday and Wednesday. It is a compact instruction the calendar app expands into individual occurrences. RDATE and EXDATE complement RRULE: RDATE adds extra explicit dates to the series, and EXDATE removes individual dates from it. Together they describe complex calendars (holidays, anchored exceptions) in a few lines.
恵 スコアボードが到着しました!
スコアボード ゲームを追跡する楽しい方法です。すべてのデータはブラウザに保存されます。さらに多くの機能がまもなく登場します!
