iCalendar (ICS) から JSON への変換ツール
ガイド
iCalendar (ICS) から JSON への変換ツール
iCalendar (ICS) から JSON へのコンバーターは、RFC 5545 カレンダー内容を構造化された JSON に変換し、読む、変換する、または他のプログラムに渡すことができます。Google Calendar、Apple Calendar、またはOutlookからエクスポートされた .ics ファイルを貼り付け、ツールは長い行を展開し、TEXT値をアンエスケープし、プロパティパラメータを値から分離し、DTSTARTおよびDTENDをISO 8601に変換し、RRULEをタイプ付きオブジェクトに変換します。すべてブラウザ上で実行され、サーバーにアップロードされることはありません。
使用方法
- .ics ファイルの内容を入力ボックスに貼り付け、またはファイルをアップローダーにドロップしてください。
- 出力オプションを選択してください:きれいに表示、イベントのフラット配列、ISO 8601日付のパース、またはパースされた値に加えて原始プロパティ値を含める。
- オプションで、RRULEプレビューを有効にし、繰り返しイベントの最初のN回の発生を確認できます。
- JSON出力のコピーまたはダウンロードを実行してください
calendar.json.
機能
- RFC 5545に準拠した展開 – 75オクテットを超える行の継続行が空白で始まっている場合、長さのDESCRIPTIONおよびURL値が正確に再構成されます。
- プロパティパラメータが保持されます – TZID、CN、RSVP、VALUEおよび任意のX-パラメータは、値の隣に構造化されたオブジェクトに配置されます。
paramsオブジェクト - 日付パース – DTSTART、DTEND、DTSTAMP、CREATED、LAST-MODIFIED、RECURRENCE-IDおよびDUEは、日付のみ、UTC、およびTZID付き値のフラグとともにISO 8601に変換されます。
- RRULEをオブジェクトとして – FREQ、INTERVAL、COUNT、UNTIL、BYDAY、BYMONTHなどは、単一の暗黙の文字列ではなく、タイプ付きオブジェクトにパースされます。
- VTIMEZONEおよびVALARMは保持されます – ネストされたコンポーネントは、親のVCALENDARまたはVEVENTに配列として発行されます。
componentsその親のVCALENDARまたはVEVENTに配列として存在する。 - Organizerおよびattendeeのアドレス – mailto:プレフィックスは、フィールドに削除され、元の値は保持されます
emailフィールドを保持しながら元のものを保持する。calAddress. - 繰り返しのプレビュー – オプションで、DAILY、WEEKLY(BYDAY)、MONTHLYおよびYEARLYルールを最初のN回の発生に展開し、すぐに確認できます。
- クライアントサイドのみ – ファイルはブラウザ上でパースされます。カレンダー内容はあなたのマシンに残ります。
ベース64画像文字列に遭遇し、それが実際に何であるかを確認する必要があるとき、このツールを使います。APIレスポンスに埋め込まれたサムネイルをデバッグする、CSSやHTMLメールに埋め込まれた画像を確認する、トラッキングピクセルを逆エンジニアリングする、画像生成APIからの出力の確認を行う、またはデータベースエクスポートから資産を回復するなどです。レンダリングがブラウザ内で行われるため、プロダクションに送信する前にベース64パラメータが正しく構成されているかを迅速に確認する手段としても使えます。
プログラム的にカレンダーデータを読む必要がある場合にコンバーターを活用してください — 2つの.icsエクスポートを比較、イベントをスプレッドシートにロード、チャットボットのためのミーティングを事前に処理、またはエクスポートされた予約が実際に含む内容を監査する場合です。JSONは、raw line-folded iCalendarテキストよりも、grep、検証、および他のツールにパイプしやすいです。
よくある質問
-
RFC 5545 とは何ですか?.icsファイルのパースにおいてなぜ重要ですか?
RFC 5545 は、Google Calendar、Apple Calendar、Outlookおよびほとんどのカレンダーアプリで使用されるiCalendarデータ形式の仕様です。プロパティ名、パラメータ構文、値タイプ、75オクテットのライン折り返しルール、TEXT値内のエスケープ、繰り返しルール(RRULE)、およびVTIMEZONEブロックを通じて時区が参照される方法を定義しています。.icsを正しくパースするには、すべてのこれらの要素を処理する必要があります — 新しい改行やコンマによる分割はエスケープされたシーケンスや折り返し継続を無視します。
-
iCalendarコンテンツにおけるライン折り返しとは何ですか?
ライン折り返しは、75オクテットを超えるコンテンツ行が複数の物理行に分割され、各継続行が1つの空白文字(スペースまたはタブ)で始まることを規定しています。.icsファイルを読む際には、折り返し行を再結合する必要があります — そうでなければ、長い説明、URL、および繰り返しルールが値の途中で切断され、結果としてプロパティが破壊されます。
-
VTIMEZONEはDTSTARTおよびDTENDとどのように関係していますか?
DTSTARTおよびDTENDはTZIDパラメータを持ち、カレンダーの他の場所に定義されたVTIMEZONEブロックを参照できます。VTIMEZONEブロックは、その名前の時区のUTCオフセットおよび夏時間の遷移を記述しており、DTSTARTに記載された壁時刻を正確なUTC瞬間へ変換できます。終端にZが付いている時間はすでにUTCであり、TZIDおよびZがなければ浮動時間です — それらは読者のローカルタイムで表示されるべきです。
-
SUMMARYおよびDESCRIPTION内で、コンマ、セミコロン、および改行がエスケープされているのはなぜですか?
TEXT値内では、コンマ、セミコロン、バックスラッシュ、および文字列の改行は、上位レベルで構造的な意味を持ちます:コンマはリスト項目を分離し、セミコロンはパラメータを分離し、改行はコンテンツ行の終了を示します。RFC 5545 §3.3.11 では、\\、\,, \;、および\n(または\N)のエスケープシーケンスを予約しており、著者が値内にそれらの文字を含めることが可能になります。パーサーは、行を分割した後で、それらのエスケープを逆に取り戻す必要があります。
-
RRULEとは何ですか?リスト形式の日付とどのように異なりますか?
RRULEは繰り返しパターンをエンコードします — たとえば FREQ=WEEKLY;BYDAY=MO,WE;COUNT=10 は、月曜日および水曜日に毎週10回の発生を意味します。これはカレンダーアプリが個々の発生に展開するためのコンパクトな指示です。RDATEおよびEXDATEはRRULEに補足されます:RDATEはシリーズに追加の明示的な日付を追加し、EXDATEは個別の日付を削除します。これらは複雑なカレンダー(祝日、固定例外)を数行で記述できます。
恵 スコアボードが到着しました!
スコアボード ゲームを追跡する楽しい方法です。すべてのデータはブラウザに保存されます。さらに多くの機能がまもなく登場します!
