Google Calendar APIで時間割を登録する

時間割を管理するにあたって、高校の授業のように毎週同じコマに決まった授業が入っているのなら既存の時間割用アプリが有用である。しかし、専門の授業が中心になり変則的なスケジュールを耐え忍ばなくてはならない現在それらの使用は困難であるため、教務から配布される時間割表を元にGoogle Calendarに時間割とその日の授業内容を登録しておくことにした。

作業の概略は以下の通り。

  1. 教務から与えられたpdfファイルをcsvに変換する
  2. Google Calendar APIを利用して、pythonで書いたコードによりcsvの内容をカレンダーに書き出す

pdfファイルをcsvに変換する

教務から配布される以下のようなpdfから情報を抽出することを考える。 f:id:I-was-a-Ki:20170610121512p:plain

pdfをワードか何かで開いて表だけ引っ張り出せばどうにかなるだろうと思っていたら、pdfの生成方法の問題なのか分からないが世にもおぞましい文字化けが生じる上コピーペーストもままならないため諦めてOCRすることにした。使用したのはONLINE OCROCRということで手打ちした方が速いレベルの仕上がりを予測していたのだが、「腫瘍」が「腫蕩」に、「5」が時たま「S」になったりするくらいで十分使用に堪えるものであった。以下は得られたwordファイルの表をエクセルに貼り付けたもの。 f:id:I-was-a-Ki:20170610121549p:plain

ただし「川」の認識は苦手なようで「ノII」という誤認識が各所で多発していた。このONLINE OCRは会員登録すれば25ページまで無料で変換が可能だが、紹介記事を書くなどすればボーナスで無料変換可能枚数が増えることになっているようだ。

このエクセルファイルに対し、誤認識の修正などをしたのちcsvで出力した。

Google Calendarに書き出す

まずGoogle Calendar APIを利用するにあたって、こちらを見ながらStep2まで進め、その後以下のようなpythonファイルを書いてpython TimeTable.pyと実行する。コーディングにあたってはこちら予定のカラーとidの対応表を参考にさせて頂いた。

giste938d0c7959e4e018c46774f1e38be39

これを実行するとブラウザが起動しカレンダーの読み込み・書き込み権限の認証画面が開くが、次回以降は認証を介することなく書き込むことが可能である。