面倒なので頑張ったらそんな時に限って似たようなサービスが知らされる@tokidaです。
photo credit: Mike Rohde via photopin cc
Googleカレンダーをテキストでコピーしたいと思っていたらそんな事を叶えてくれる記事( Googleカレンダーの予定をメールで送信できる「PubMyCal」 : ライフハッカー[日本版]) が出ていたのですが自力で多少好みの事が出来たのでメモをしておく。
何に使いたいかというと、Evernoteに毎日書いている日報に使いたいのです。普段は日報に予定をいちいち書き写しているのですがこの時間が勿体いないなぁと思っていました。でサクッと取得できないかと思った次第。
こんな感じで日報を書いているのですが、
- 朝、事前に予定をGoogleCalendarを見ながら書き写す
- 日中~夜、実績として時間を記載する
のですが1)の作業を簡単に、そして数日分取得したいと思ったのが始まりです。今時結構オフラインな事があるので数日分が見えるのは大きい。
実際に何を使っているかだけ簡単に書いておきます。
興味がある人は参考にして下さい。
- Windows環境(Macでも同様のことは出来きると思います。基本的に会社ではWindowsなので)
- Python 2.7
- gcalcli – Command Line Interface to Google Calendar – Google Project Hosting http://code.google.com/p/gcalcli/
- python-dateutil – Labix http://niemeyer.net/python-dateutil#head-2f49784d6b27bae60cde1cff6a535663cf87497b
- Downloads – gdata-python-client – Google Data APIs Python Client Library – Google Project Hosting http://code.google.com/p/gdata-python-client/downloads/list
- Clip.exe (Windows Visa以降は標準、XPの場合にはVector等で)
- bpcopy (Mac環境でこのコマンドでクリップボードに入れる)
※Pythonのライブラリの導入は、基本的には 展開後# python setup.py install で入ります。
処理
- gcalcli (Pythonのスクリプト)でカレンダー情報を取得
- 文字コードをSJISに変換
- 生成された内容をクリップボードにコピー
という流れのバッチを作成してこれをランチャソフトから呼び出します。なので実際には、ランチャ起動→実行するとクリップボードにカレンダーが入っているという次第です。
C:\Python27\python.exe c:\docume~1\00\mydocu~1\bin\gcal\gcalcli --user [email protected] --pw yyyyyy --nc --24hr agenda | iconv -f utf-8 -t sjis | "C:\Documents and Settings\00\My Documents\bin\gcal\clip.exe"
こんな感じのバッチになります。ちなみにランチャは Launchy: The Open Source Keystroke Launcher http://www.launchy.net/ を使用しています。Macの場合にはシェルか何かを作って上記の clip.exe が bpcopy に変わる感じですね。
最初の記事もあるけど、今日こんな予定なんだよってメールで相手に送るときにも結構便利に使えます。Evernoteでテンプレートとか自動処理とか出来たらもっと便利になると思う。(あ、もしかしてMacならScript動かせるのか?)