はじめに
CEDEC2018の講演スケジュールをGoogleカレンダーで確認できるようにしたので、その手順をメモしておこうと思います。
同期しとくとこんな感じで時間と場所と詳細を確認できて便利になった。#CEDEC2018 pic.twitter.com/x3c5fep4ft
— Nakaji Kohki (@kohki_nakaji) 2018年8月22日
手順
まずCEDECの公式ページで配布されているcsvファイルをダウンロードしてきます。
https://2018.cedec.cesa.or.jp/
ここで、.ica
形式の説明です。
Googleカレンダーで採用されている.ica
はRDFカレンダーという仕様がベースになっています。これはラベルと値が:
で区切られた形式です。ある程度標準的な規格で、Appleのカレンダーアプリなどでも使用できます。
例えばこちらの予定は…
以下のような記述で表現されています。
BEGIN:VEVENT
DTSTART:20180822T004500Z
DTEND:20180822T020500Z
DTSTAMP:20180822T000000Z
CLASS:PUBLIC
CREATED:20180822T000000Z
DESCRIPTION:講演者:任天堂株式会社 宮本 茂\n主分野:カテゴリなし\n副分野:\nプラットフォーム:\n難易度:0:甘口(学生含めどなたでも)\n特記事項:\nURL:https://2018.cedec.cesa.or.jp/session/detail/s5b1e23aaede0a
LAST-MODIFIED:20180822T000000Z
LOCATION:メインホール
SEQUENCE:0
STATUS:CONFIRMED
SUMMARY:[メインホール]「どこから作ればいいんだろう?から10年」
TRANSP:OPAQUE
END:VEVENT
※いくつかの省略可能な値を省略しています。完全なものを確認したい場合は、自身のGoogleカレンダーからファイルをエクスポートしてみてください。
参考: RDFカレンダー -- iCalendarとRSSによるイベント情報の公開と活用
ここに.csv
の値を整形していれていきます。今回はエクセルを使用しました。
まず必要な値を準備します。
先の基調講演のデータを見ると、少し見慣れない形式の値があります。
DTSTART:20180822T004500Z
これはISO 8601
と呼ばれるフォーマットです。
年月日の後ろにT
を、時分秒の後ろのZ
が必要になります。
参考: 日時のフォーマット(ISO 8601) - Qiita
上記のフォーマットにしたがい、TEXT
関数を用いてエクセルで整形すると以下のようになります。
=TEXT(A2-TIME(9,0,0),"YYYYMMDDThhmmssZ")
注意したいのがUTC表記という点で、TEXT
関数はJSTの値として扱われるため、その差異を修正する必要があります。今回は簡易的にTIME
関数を用いて標準時との差である9時間分を引くことで求めました。
同様に他の時間の値を整形しておきます。
また、DTSTAMP
やCREATED
は決めうちの値としました。
=TEXT(B2-TIME(9,0,0),"YYYYMMDDThhmmssZ")
ではこの値をRDFカレンダーの仕様に沿っていれていきます。
エクセルは1セルの上限が255文字までなので、分割して結合する方法をとりました。
="BEGIN:VEVENT
DTSTART:"&N2&"
DTEND:"&O2&"
DTSTAMP:20180822T000000Z
CLASS:PUBLIC
CREATED:20180822T000000Z
"
="DESCRIPTION:講演者:"&E2&"\n主分野:"&F2&"\n副分野:"&G2&"\nプラットフォーム:"&H2&"\n難易度:"&I2&"\n特記事項:"&J2&"\nURL:"&K2&"
LAST-MODIFIED:20180822T000000Z
LOCATION:"&L2&"
SEQUENCE:0
STATUS:CONFIRMED
SUMMARY:["&L2&"]"&D2&"
TRANSP:OPAQUE
END:VEVENT"
=P2&Q2
これで各予定(講演)の情報が整形できました。
最後に必要なヘッダー情報と共に、.ica
ファイルとして保存します。以下はヘッダーの例です。
BEGIN:VCALENDAR
PRODID:-//Google Inc//Google Calendar 70.9054//EN
VERSION:2.0
CALSCALE:GREGORIAN
METHOD:PUBLISH
X-WR-CALNAME:CEDEC 2018 セッション一覧
X-WR-TIMEZONE:Asia/Tokyo
X-WR-CALDESC:
// ここに各予定の情報が入る
END:VCALENDAR
上記の手順で作成した.ica
ファイルは以下から取得できるので、参考にしてください。
https://calendar.google.com/calendar/embed?src=a20r4f6oav5tr5mi99cidt8mgk%40group.calendar.google.com&ctz=Asia%2FTokyo
最後に
今回はカンファレンスの講演スケジュールをGoogleカレンダーに落とし込む方法を紹介しました。
異なるフォーマットのデータをインポート可能な形式にすることで情報が統合でき、とても便利です。ぜひ参考にしてみてください!