ICS カレンダー生成と検査
時間・日付
読み込み中
ツールを読み込んでいます
ツールのコードは開いたときにのみ読み込まれます。
このツールの処理はすべてブラウザー内で行われ、入力内容はサーバーへ送信されません。
このツールについて
JSON イベント配列からローカルで iCalendar を生成、または対応する ICS の部分集合を検査し、繰り返し・除外・重複を確認します。
主な用途
- カレンダー権限を与えず、有界の繰り返しイベントを用意する。
- 対応 ICS テキストの除外日と重複候補を確認する。
使い方
- 1.例を読み込むか、イベント JSON 配列と UTC 生成スタンプを入力します。ICS を貼り付けても構いません。
- 2.生成または検査し、時刻型、除外された回、警告と重複ページを確認します。
- 3.完全な正規化 ICS を確認し、ダウンロードを要求します。カレンダーへのインポートは別途決めます。
実行済みのカレンダー例
日次の除外と重複
20260105T090000Z–100000Z; FREQ=DAILY;COUNT=4; EXDATE=20260106T090000Z; 別のイベント 20260107T093000Z–103000Z
4; 1
COUNT で4回を生成してから1月6日を除外し、3回残ります。別のイベントを含め合計4回で、1月7日に同じ UTC 型で1組重複します。
月末の日付
20260131–20260201; FREQ=MONTHLY;COUNT=4
20260131, 20260331, 20260531, 20260731
2月、4月、6月に31日はなく、COUNT を消費せず飛ばします。終了日は排他的です。
浮動の週間イベント
20260105T090000–100000; FREQ=WEEKLY;COUNT=3;BYDAY=MO,WE
20260105T090000, 20260107T090000, 20260112T090000
タイムゾーンを推定せず浮動時刻を月曜/水曜に繰り返し、1月5、7、12日が残ります。
制限と注意事項
- 対応部分集合であり、完全な RFC 適合判定ではありません。VCALENDAR VERSION 2.0 / PRODID と VEVENT の UID、UTC DTSTAMP、SUMMARY、正の期間の明示的な DTSTART/DTEND が必須です。DESCRIPTION、LOCATION、RRULE、EXDATE は任意です。DATE、UTC、浮動時刻のみ対応。TZID / VTIMEZONE、アラーム、参加者、主催者、URL、RDATE、DURATION、個別回の上書きやその他の項目/コンポーネントは未対応として拒否します。自動インポートは行いません。
- 上限:入力/出力ごと 256 KiB UTF-8、40 イベント、1900–2100 年。UID 200、件名 200、場所 500、説明 2000 UTF-16 単位。規則ごと 500 回、除外 500 件、除外前の合計 2000 回、候補 100000 ステップ、重複 2000 件。検査は物理行 6000 行。超過時は処理全体を拒否します。
- 有限 RRULE のみ:FREQ=DAILY/WEEKLY/MONTHLY/YEARLY、INTERVAL 1–366、COUNT 1–500 または同じ時刻型で境界を含む UNTIL のどちらか一方。WEEKLY は序数なしの BYDAY=MO,TU,… と WKST(既定 MO)に対応し、BYDAY に開始日の曜日が必要です。その他の規則項目は拒否します。存在しない月/年の日付は COUNT を消費せずに飛ばします。EXDATE は計数後に開始時刻を除外し、回数を補充しません。未一致の除外日は警告します。
- UTC(Z)、浮動の壁時計時刻、終日の日付は別々に比較します。浮動時刻はインポート先のタイムゾーンに従い、IANA/夏時間変換は行いません。異なる型の組は未比較です。終了は排他的で、接する区間は重複しません。同じ系列内の重複も表示します。有界部分集合の確認であり、個人の空き時間ではありません。 正規化出力は CRLF、TEXT エスケープ、最大 75 UTF-8 バイトの物理行を使います。入力の折り返し/改行の警告は別途表示します。全イベントの文字と UID を出力します。インポート前に対象カレンダーを確認してください。同じ UID の予定が作成または更新される可能性があります。
- ブラウザー内のみ:アップロード、保存、外部参照の取得、招待送信、カレンダーアクセス、自動インポートは行いません。イベント文字と UID には個人情報が含まれる可能性があり、ICS にそのまま出力されます。
よくある質問
通過すれば全 ICS に対応しますか?
対応部分集合であり、完全な RFC 適合判定ではありません。VCALENDAR VERSION 2.0 / PRODID と VEVENT の UID、UTC DTSTAMP、SUMMARY、正の期間の明示的な DTSTART/DTEND が必須です。DESCRIPTION、LOCATION、RRULE、EXDATE は任意です。DATE、UTC、浮動時刻のみ対応。TZID / VTIMEZONE、アラーム、参加者、主催者、URL、RDATE、DURATION、個別回の上書きやその他の項目/コンポーネントは未対応として拒否します。自動インポートは行いません。
COUNT と EXDATE はどう組み合わせますか?
有限 RRULE のみ:FREQ=DAILY/WEEKLY/MONTHLY/YEARLY、INTERVAL 1–366、COUNT 1–500 または同じ時刻型で境界を含む UNTIL のどちらか一方。WEEKLY は序数なしの BYDAY=MO,TU,… と WKST(既定 MO)に対応し、BYDAY に開始日の曜日が必要です。その他の規則項目は拒否します。存在しない月/年の日付は COUNT を消費せずに飛ばします。EXDATE は計数後に開始時刻を除外し、回数を補充しません。未一致の除外日は警告します。
個人の空き状況を判定できますか?
UTC(Z)、浮動の壁時計時刻、終日の日付は別々に比較します。浮動時刻はインポート先のタイムゾーンに従い、IANA/夏時間変換は行いません。異なる型の組は未比較です。終了は排他的で、接する区間は重複しません。同じ系列内の重複も表示します。有界部分集合の確認であり、個人の空き時間ではありません。