iCal/iCalendar

読み: あいかる

カレンダー情報を交換するための標準フォーマット (RFC 5545) で、異なるアプリ間の相互運用を実現します。

iCalendar (iCal) とは、カレンダー情報を交換するための標準フォーマットで、RFC 5545 として IETF により規格化されている。ファイル拡張子は .ics で、Google カレンダー、Apple カレンダー、Outlook など主要なカレンダーアプリケーション間でイベントデータをやり取りする際のデファクトスタンダードとなっている。

.ics ファイルの構造

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//PickDay//JP
BEGIN:VEVENT
DTSTART:20260520T100000Z
DTEND:20260520T110000Z
SUMMARY:プロジェクト定例会議
LOCATION:会議室 A
DESCRIPTION:Q3 計画の確認
END:VEVENT
END:VCALENDAR

主要プロパティ

iCalendar 形式では、VEVENT (イベント)、VTODO (タスク)、VJOURNAL (日記)、VFREEBUSY (空き時間情報) などのコンポーネントを定義できる。日程調整ツールでは特に VFREEBUSY コンポーネントが重要で、参加者の空き時間情報を機械的に交換する際に使用される。

RRULE プロパティを使えば定例会議のような繰り返しパターンも表現できる。例えば「毎週月曜 10:00」は RRULE:FREQ=WEEKLY;BYDAY=MO と記述する。

.ics の部品 - 外側の 4 種が「何を表すか」、内側のプロパティが「その中身」
コンポーネント (VCALENDAR の中に置く箱)
VEVENTイベント (会議・予定)
VTODOタスク
VJOURNAL日記
VFREEBUSY空き時間情報 (日程調整ツールが機械的に交換するのはこれ)
VEVENT の中に書くプロパティ
DTSTART開始日時20260520T100000Z
DTEND終了日時20260520T110000Z
SUMMARY件名プロジェクト定例会議
LOCATION場所会議室 A
DESCRIPTION説明・補足Q3 計画の確認
RRULE繰り返しの規則FREQ=WEEKLY;BYDAY=MO
末尾の Z は UTC の意味。Z を付けないなら VTIMEZONE でタイムゾーンを明示する

実用上の注意点

.ics ファイルをメールに添付して送信すると、受信者のカレンダーアプリが自動的にイベントを認識し、ワンクリックでカレンダーに追加できる。ただし、タイムゾーンの扱いには注意が必要で、DTSTART に Z (UTC) サフィックスを付けるか、VTIMEZONE コンポーネントで明示的にタイムゾーンを指定する必要がある。CalDAV プロトコルは、この iCalendar 形式をネットワーク越しに同期するための仕組みである。

関連リンク

関連記事

関連用語

シェア

この内容は役に立ちましたか?