ICS カレンダービューアー

iCalendar ファイルを貼り付けるか選択して「カレンダーを解析」を押すと、各項目・カレンダーのプロパティ・検出した問題がページ内に表示され、JSON としてコピーまたはダウンロードできます。

ブラウザ内でローカルに実行
·
カレンダーソース
Events and tasks

アップロードせずにカレンダーファイルを読む手順

ボックスに .ics ファイルを貼り付けるか、ディスクから選択して「カレンダーを解析」を押します(最大 5 MB、ファイル名の横にサイズを表示)。解析はタブ内で完結するため、どこにも送信されず、JSON の書き出しも同じです。概要にはカレンダー名、PRODID、バージョンと、イベント・タスク・問題の件数が並び、各項目は日付・場所・RRULE・説明つきのカードとして下に表示されます。

iCalendar に近い形式であれば十分に使えます。まず行の折り返しを展開するため、空白かタブで始まる継続行は前の行につながります。プロパティ名は小文字でもよく、CN="Doe; John" のように引用符内のセミコロンはそのまま扱われ、\, \; \n \\ は表示前にデコードされます。プロパティと値に分割できない行は、ファイル全体を止めずに行番号つきで報告されます。

  1. カレンダーのテキストを貼り付けるか、ローカルの .ics ファイルを選択します。ドロップゾーンとファイル選択のどちらでもボックスに読み込まれます。
  2. 「カレンダーを解析」を押します。イベントとタスクが集計され、カードとして描画され、結果に書き込まれます。
  3. 「問題」の行を確認します。UID・DTSTART・SUMMARY の欠落、DTSTART より前の DTEND、読み取れない日付、対応する BEGIN のない END、分割できなかった行が、それぞれイベント・タスク・行番号つきで一件ずつ並びます。
  4. 「JSON をコピー」または「JSON をダウンロード」で calendar.json として取り出します。カレンダーのプロパティ、各イベントとタスク(VALARM などの入れ子コンポーネントは components に保持)、問題の一覧、読み込んだ行数が含まれます。結果がない状態で押すとその旨が表示されます。

解析が確認する内容と、確認しない範囲

日付・タイムゾーン・終日の項目

読み取る日付は 4 通りです。UTC の 20260901T090000Z、タイムゾーン指定なしの 20260901T090000、終日の 20260901、TZID パラメーター付きの値です。TZID は値の横にそのまま表示され(DTSTART;TZID=America/New_York:20260901T090000 は 2026-09-01 09:00:00 (America/New_York))、時刻は書かれたまま表示されます。ページ内にタイムゾーンデータベースがないため変換はしません。どの形式にも当てはまらない値は、プロパティ名と元の文字列つきで「問題」に報告されます。

終日の項目は日付として表示されます。DTSTART のないイベントは日付の位置にダッシュ記号を出し、欠落は問題一覧に記録されます。

イベント・タスクと JSON の内容

VEVENT と VTODO は区別して扱います。イベントのカードには期間・場所・RRULE・説明、タスクのカードには期限が入ります。同じプロパティが複数回現れた場合はすべての値が保持され(ATTENDEE が 2 行なら配列になります)、VALARM などの入れ子コンポーネントは JSON 内で親の components として一緒に出力されます。

RRULE はテキストのまま出力し、展開はしません。COUNT=6 の毎週ルールは、ルール全文を持つ 1 件のイベントとして残ります。

確認が止まる範囲

これは短いチェックリストを持つリーダーであり、規格適合テストではありません。上記のフィールドとファイルの形を確認しますが、RFC 5545 を全項目検証すること、購読 URL を取得すること、壊れたファイルを修復することはしません。読み取れない箇所や分割できない行は行番号や対象の項目とともに示されるので、途中までしか解析できないファイルも壊れている位置を特定できます。

最近使ったツール: