LoginSignup
43
24

More than 3 years have passed since last update.

icsファイルの仕様について調べてみた

Last updated at Posted at 2020-01-20

はじめに

携わった案件で、 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からお問い合わせください。
お待ちしております!

43
24
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
43
24