GoogleカレンダーにiCalendar形式でインポート

ハロプロのメンバーの誕生日などを効率的にGoogleカレンダーに取り込めないかと考えた。以前はiCalで公開されていたようだが、残念ながら今はないようだ。手打ちでしこしこ入力するのは時間の無駄だ。エディタで整形して一気に取り込みたい。試しに2人ぐらいGoogleカレンダーにデータを入力して、それをiCal形式でエクスポートしてフォーマットを確認してみる。

BEGIN:VCALENDAR
PRODID:-//Google Inc//Google Calendar 70.9054//EN
VERSION:2.0
CALSCALE:GREGORIAN
METHOD:PUBLISH
X-WR-TIMEZONE:Asia/Tokyo
X-WR-CALDESC:
BEGIN:VTIMEZONE
TZID:Asia/Tokyo
X-LIC-LOCATION:Asia/Tokyo
BEGIN:STANDARD
TZOFFSETFROM:+0900
TZOFFSETTO:+0900
TZNAME:JST
DTSTART:19700101T000000
END:STANDARD
END:VTIMEZONE
BEGIN:VEVENT
DTSTART;VALUE=DATE:20091216
RRULE:FREQ=YEARLY;WKST=MO
SEQUENCE:0
STATUS:CONFIRMED
SUMMARY:脇坂春菜(1993年)
TRANSP:TRANSPARENT
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20090328
RRULE:FREQ=YEARLY;WKST=MO
SEQUENCE:0
STATUS:CONFIRMED
SUMMARY:田中梨奈(1994年)
TRANSP:TRANSPARENT
END:VEVENT
END:VCALENDAR

データはなぜかJK21メンバーのものだが、気にしないw 終了日とか必要のないデータ部分はドンドンそぎ落とす。そうすると上記までシンプルにできる。たぶんもっと削れるだろうが、フォーマットの定義を確認するのが面倒なんでここまでにとどめた。

誕生日のデータはWikipediaからコピペして、それをエディタでiCal形式に整形する。秀丸のタグ付き正規表現使って適当に。

一部例
^SU.*\f(.*\f19[0-9][0-9]年\f.*
これを下記に変換
BEGIN:VEVENT\nDTSTART;VALUE=DATE:2009\3\nRRULE:FREQ=YEARLY;WKST=MO\nSEQUENCE:0\nSTATUS:CONFIRMED\n\0(\2)\nTRANSP:TRANSPARENT\nEND:VEVENT

置換し終わったら、Googleカレンダーにインポートして終了。とりあえずハロプロ(OG含む)、AKB48SKE48JK21ももいろクローバーと全部WikipediaからコピペしてGoogleカレンダーに取り込んでやった。それぞれ色を変えて表示したら、ずいぶんけばけばしいカレンダーになってしまったぞ。