yakataの情報奮闘記

プログラミングの話をします

Google Calendarにファイルをインポートしようとしたら少し詰まった話

Intro

大学から送られてくるスケジュール(pdf)を今までポチポチとGoogle Calenderで打ち込んでいたのですが、GUIであるため、時間がかかってしまっていました。

今回は複数の予定(イベント)を一つのファイルにまとめて一括でインポートすることで時短を図ろうとしたものです。なおAPIでPushするのは待て次回です。(正直PushはGUIでもいいと思ってるので、次回あるかは不明)

csvでインポートする方法とicsでインポートする方法の2種類紹介します。

Main

インポート方法

PC環境を前提とします。Google Calendarにインポートするには

  1. 右上の歯車をクリック
  2. 「設定」をクリック
  3. 左にある「インポート/エクスポート」をクリック
  4. インポートの項目でファイル、カレンダーを選び「エクスポート」をクリック

で作成できます。

インポートするファイルについて

f:id:ponyo4869yakata398:20210529050645p:plain

iCal または CSV(MS Outlook)形式の予定情報をインポートできます。

とあるように、インポートするときのファイル形式はiCalendar フォーマット(.icsなど)かcsvファイルにするように指定されています。 それぞれ検討していきましょう。

icsファイルの場合

まずはicsファイルの仕様を見に行きましょう。今回はこちらを参考にさせていただきました。

www.asahi-net.or.jp

(本来は一次文献を見に行くべきなんでしょうけれど、楽させていただきました)

こちらに書いてあることをさらにまとめると

  • ファイルはテキスト形式(最悪メモ帳でもかける→特別な環境が必要ない)
  • それほど複雑ではない(Tokenizeしなくてもファイルを作れそう) ということでハードルは高くなさそうです。

特にローカル時間でも世界標準時でも簡単にかけるというところがメリットかなと思います。

ここから何かに変換するというのは次に紹介するcsvと比べるとやりたくないので、変換しなければいけないのをcsv→icsのみになるようにデータを管理したほうがいいと思います。

icsの最小構成

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//your_name//Manually//EN
METHOD:PUBLISH
BEGIN:VEVENT
DTSTART:20210530T223000
DTEND:20210530T233000
DESCRIPTION:ここが説明欄です。
SUMMARY:ここがタイトルです。
END:VEVENT
END:VCALENDAR

いくつか注意点や解説

  • PRODIDのyour_nameは変更してください
  • DTSTARTは「年月日T時間分秒」の形式で書きます。最後にZをつけると世界標準時になります。つけないとローカル時間になります。
  • Google Calendarではローカル時間を全般にあるタイムゾーンで判断しています。そのため、VTIMEZONEの記述が省略できます。 f:id:ponyo4869yakata398:20210529050625p:plain

csvファイルの場合

こちらも同様に仕様を見てみましょう。 カレンダー用のcsvはどこが一次文献なのかも分かりませんでした。少なくともこれよりも詳しい情報を見つけた方コメントくださると助かります。

it.stonybrook.edu

こちらは一行1イベントと言う形ですね。ics形式では解説しませんでしたが、終日イベントを簡易的に書ける(All Day EventをTRUEにするだけ)のもいいですね。

また、csvは様々なソフトウェアで開くことができることもメリットです。これらから個人的にはcsvに軍配が上がりました。

ただし、詳細な仕様がわかっていない点と世界標準時での書き方が現状わかっていないのがデメリットではあります。

csvの最小構成

" Subject"," Start Date"," All Day Event"," Start Time"," End Time"," Location"," Description "
"ここがタイトル"," 05/29/2021"," FALSE"," 9:00 AM"," 12:00 PM"," 場所"," 説明欄"

いくつか注意点や解説

  • Date(MM/DD/YYYY表記)とTimeの指定方法(AMPMを後置)が日本人にとってはやや特殊です。
  • 一行目は必要です。
  • ローカル時間で予定が作られます。

Outro

以上でファイルの作り方とインポートの仕方の解説は終了です。一度csvにしてしまえば他の形式に変換することなども比較的簡単に行えますので、保存する形式に採択する価値はあると思います。