ドキュメント
ICS ファイル形式とは?
Internet Calendaring and Scheduling
ICS は、ファイルの共有やメールの送信によって、インターネットユーザー同士がカレンダーの予定を共有できるファイル形式です。ICS ファイルは、会議の招待を送ったり、祝日や誕生日のカレンダーを購読したりするのによく使われます。Microsoft Outlook、Google Calendar、Apple Calendar など、さまざまなカレンダーソフトで開いたり取り込んだりできます。
ICS ファイル形式は、Internet Calendaring and Scheduling Core Object Specification である RFC 5545 で規定されています。この形式は、RFC 2445 で規定された以前の vCalendar 形式をもとにしています。
ICS ファイルは、カレンダーの予定情報を含むプレーンテキストファイルです。予定の説明、開始・終了時刻、場所などの情報を含められます。また、毎週の会議や毎月の誕生日のような繰り返しの予定、そして TeamCalendar.com の場合はスポーツの試合日程といった情報も含められます。
ICS はシンプルなテキストファイルなので、読むのもかなり簡単です。以下は ICS のエントリーの例です。これが、TeamCalendar がお使いのカレンダーアプリに届けている内容です。
BEGIN:VEVENT
UID:9b950757-21e5-4443-afde-8faafdc58101@TeamCalendar.com
DTSTAMP:20240317T024915Z
SUMMARY:⚾️ Arizona Diamondbacks host St. Louis Cardinals
DESCRIPTION:\nhttps://TeamCalendar.com/app/T9qgt4MERu Use this link to Add or Remove team schedules from your TeamCalendar.\n\nThank you for using Te amCalendar.com! If you like our calendar service\, please consider sharing with your friends.
LOCATION:Chase Field: Phoenix\, AZ USA
DTSTART:20240413T014000Z
DTEND:20240413T044000Z
GEO:33.445278;-112.066944
X-APPLE-STRUCTURED-LOCATION;VALUE=URI;
X-ADDRESS=Chase Field: Phoenix\, AZ USA;
X-APPLE-RADIUS=72;
X-TITLE=Chase Field:geo:33.445278,-112.066944
CREATED:20240317T024915Z
LAST-MODIFIED:20240331T182349Z
BEGIN:VALARM
ACTION:DISPLAY
DESCRIPTION:⚾️ Diamondbacks host St. Louis Cardinals starts in one hour
TRIGGER:-PT60M
END:VALARM
END:VEVENT テキストファイルは、上から順に読めばかなり簡単に理解できます。
- BEGIN:VEVENT - 新しい予定の始まりです
- UID - 予定の一意の識別子です
- DTSTAMP - 予定が作成された日時です
- SUMMARY - 予定のタイトルです
- DESCRIPTION - 予定の説明です
- LOCATION - 予定の場所です
- DTSTART - 予定の開始日時です。タイムゾーンに対応するため、TeamCalendar はすべての日時を協定世界時(UTC)で配信しています。それを Google や Outlook が現在のタイムゾーンに変換します。旅行中にカレンダーのタイムゾーンが自動で切り替わるときなどに、とても便利です。
- DTEND - 予定の終了日時です。TeamCalendar では試合が終わるまで終了時刻がわからないため、カレンダーにはそのリーグの平均試合時間をもとにした終了時刻を設定しています。
- GEO - 予定の位置情報です。正確な住所がなくても道案内に使えるので、とても便利です。住所の表記が異なる(または住所がない)海外のイベントでも役立ちます。道案内(Apple Maps、Google Maps、Waze など)は、いずれも GPS 座標をもとにナビゲーションできます。
- X-APPLE-STRUCTURED-LOCATION - 予定の構造化された場所情報です
- CREATED - 予定が作成された日時です。TeamCalendar の内部で使用しています
- LAST-MODIFIED - 予定が最後に変更された日時です。TeamCalendar の内部で使用しています。予定が変わるとこの値を更新し、Google/Microsoft/Apple に予定が更新されたことを伝えます。
- BEGIN:VALARM - 新しい通知の始まりです
- ACTION - 通知の動作です
- DESCRIPTION - 通知の説明です
- TRIGGER - 通知のタイミングです
- END:VALARM - 通知の終わりです
- END:VEVENT - 予定の終わりです