iCalendarに登録するファイルを作成し、自動的にスケジュール登録する


カレンダー機能を有効活用する

Appleイベントなどに出てくる便利なカレンダー登録機能。

自分が近々出演するライブイベントにいれて簡単にカレンダー登録できるようにしたいなと思い、少し調べてみた。

icsファイルを生成することによって、達成できる

これは、icsファイルというのを読み込んで作っているらしい。試しに作ってみた。

BEGIN:VCALENDAR
CALSCALE:GREGORIAN
VERSION:2.0
X-WR-CALNAME:Apple Special Event
METHOD:PUBLISH
PRODID:-//Apple Inc.//Mac OS X 10.9.5//EN
BEGIN:VTIMEZONE
TZID:America/Los_Angeles
BEGIN:DAYLIGHT
TZOFFSETFROM:-0800
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
DTSTART:20070311T020000
TZNAME:PDT
TZOFFSETTO:-0700
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:-0700
RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
DTSTART:20071104T020000
TZNAME:PST
TZOFFSETTO:-0800
END:STANDARD
END:VTIMEZONE
BEGIN:VEVENT
CREATED:20140905T011216Z
UID:8E8A007C-046D-48ED-9F29-29E716E98666
URL;VALUE=URI:http://www.apple.com/live/
DTEND;TZID=America/Los_Angeles:20150309T120000
TRANSP:OPAQUE
SUMMARY:Apple Special Event
DTSTART;TZID=America/Los_Angeles:20150309T100000
DTSTAMP:20140930T231427Z
LOCATION:www.apple.com/live/
SEQUENCE:10
DESCRIPTION:We reserved the best seat in the house for you.
BEGIN:VALARM
X-WR-ALARMUID:4E556E46-E3D5-4ED1-89E3-5A1D3242C3C0
UID:4E556E46-E3D5-4ED1-89E3-5A1D3242C3C0
TRIGGER;VALUE=DATE-TIME:19760401T005545Z
ACTION:NONE
END:VALARM
BEGIN:VALARM
X-WR-ALARMUID:6E8DE064-1239-40FA-B4A0-16CBE051E68E
UID:6E8DE064-1239-40FA-B4A0-16CBE051E68E
TRIGGER:PT0S
ATTACH;VALUE=URI:Basso
ACTION:AUDIO
END:VALARM
END:VEVENT
END:VCALENDAR

ざっくりとみてみると、

  • DTSTART;TZID 開始時刻
  • DTEND;TZID 終了時刻
  • SUMMARY カレンダータイトル
  • URL サイトURL
  • DESCRIPTION 内容
  • LOCATION 場所

となっているようだ。

実装してみる

今回はこちらのサイトを利用させてもらい、作りました。実際に読み込んでみると、

このように表示されました。

サイトに埋め込むのも簡単で、単純にHTMLで下記のように書けばよい。

<a href="event/the_live.ics">
  カレンダーに登録する
</a>

リンクをクリックした時に、自動的にカレンダーに登録される。便利!

皆様もイベントの告知などにお役立てください。イベントを動的に作るようなサイトなどあれば、同じくicsファイルを動的に生成して、カレンダーに登録するという機能を作れればそれだけで(少し)利便性が増すと思います。

例となるものをサイトに埋め込んでありますので、もしよろしければご参考程度に触ってみてください。
ライブもお待ちしております笑

よろしければおためしください。