はじめに
携わった案件で、 icsファイル
の内容を解析・読取る必要があり、
仕様について調べたため、個人のメモも兼ねて、覚書としてまとめていきたいと思います!
参考サイト
RFC-2445
iCalendar仕様
iCalendar - Wikipedia
icsファイルとは
iCalendar
と呼ばれるスケジュールの標準フォーマットを表すファイルです。
MIMEタイプは text/calendar
、文字コードはデフォルトで utf-8
が使用されます。
中身はプレーンテキストなので、普通にテキストエディタで開いて、フォーマットに沿った形で記述することができます!
OSによって挙動は変わりますが、作成したファイルを開くと、標準のカレンダーアプリに内容が反映されます。
構文について
icsファイルの具体的な構文については下記のような形です。
構文は、 RFC-2445 でまとめられており、
一番シンプルなもので下記のようなものになります。
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//hacksw/handcal//NONSGML v1.0//EN
BEGIN:VEVENT
DTSTART:19970714T170000Z
DTEND:19970715T035959Z
SUMMARY:Bastille Day Party
END:VEVENT
END:VCALENDAR
それぞれの行の詳細について触れていきます。
BEGIN, END
例:
BEGIN:VCALENDAR
END:VCALENDAR
開始タグの意味合いで BEGIN
、終了タグの意味合いで END
が使用されているようです。
VCALENDAR
等のコンポーネントは、必ずこちらを開始/終了のタグとして扱います。
VERSION
例:
VERSION:2.0
これは該当.ics形式のバージョンを示しています。
RFC-2445で規定されているのは2.0で、恐らくそのままで大丈夫です。
PRODID
例:
PRODID:-//hacksw/handcal//NONSGML v1.0//EN
ファイルの作成者を表す情報です。
必須項目にはなりますが、特に決まったフォーマットはないみたいです。
VEVENT
例:
BEGIN:VEVENT
END:VEVENT
この部分が具体的なイベントを表すタグになります。
VCALENDAR
と同様、開始タグの意味合いで BEGIN
、終了タグの意味合いで END
が使用されます。
DTSTART
例:
DTSTART:19970714T170000Z
イベントの開始日時です。
定期的なイベントの場合は、最初のイベント分の開始日時になります。
DTEND
例:
DTEND:19970715T035959Z
イベントの終了日時です。
定期的なイベントの場合は、最初の分の終了日時になります。
SUMMARY
例:
SUMMARY:Bastille Day Party
イベントの件名、見出しに相当するものです。
まとめ
上記までの内容が一番シンプルな構成の icsファイル
になります。
RFC-2445 を確認すると、
まだまだ色んなオプションがありそうなので、そちらは別途当記事・または別記事としてまとめていきたいと思います。
凄くシンプルな内容となってしまいましたが、お付き合い頂きありがとうございました!
共に働くWebエンジニアを募集しています!
不動産SHOPナカジツでは自社サービスを作っていく仲間を募集しています。
詳しくはWantedlyからお問い合わせください。
お待ちしております!