sandbox

Scala, Android, Architecture, Management, Service Design あたりを主戦場としております

LaunchBar から Google Calendar のイベントを登録する

予定を登録するのに Google Calendar を開くのが面倒だったので、下記の様な感じで LaunchBar から Google Calendar の QuickAdd 機能を使って予定を登録できる様にしてみました。


f:id:tlync:20110205205556p:image

必要な環境

  • python (Mac であれば標準でインストールされているはず)
  • gcalcli
    • GData
    • dateutil

おおまかな手順

  1. GData のインストール
  2. dateutil のインストール
  3. gcalcli のダウンロード、編集
  4. LaunchBar の設定

GData をインストール

gcalcli の依存モジュールの GData をインストールします。

wget http://gdata-python-client.googlecode.com/files/gdata-2.0.13.tar.gz
tar -zxvf gdata-2.0.13.tar.gz  
cd gdata-2.0.13
./setup.py install

dateutil をインストール

同じく依存モジュールの dateutil もインストールします。

wget http://labix.org/download/python-dateutil/python-dateutil-1.5.tar.gz 
tar -zxvf python-dateutil-1.5.tar.gz
cd python-dateutil-1.5.tar.gz
./setup.py install

gcalcli のダウンロード

予定登録を行う為の gcalcli スクリプトをお好きなディレクトリにダウンロードします。

cd ~/Scripts #お好きなディレクトリに
wget http://gcalcli.googlecode.com/files/gcalcli-1.4.tgz
tar -zxvf gcalcli-1.4.tgz

アカウント名、パスワードの入力

ダウンロードした gcalcli の48、49行目のユーザー名とパスワードを自分の Google アカウントのメールアドレスとパスワードに変更します。

__username__ = '*********@gmail.com'
__password__ = '*********'

文字コード指定の変更(問題が発生した人のみ)

自分の環境では OSX を英語で使っているせいか、gcalcli の予定登録をしようとすると UnicodeDecodeError が発生した為、下記の様にエンコード指定部分を変更しました。
もしかすると、日本語環境の人は不要かもしれないので、一旦この手順は無視して問題が発生したら試してみるといいかもしれません。

--- gcalcli.orig	2011-02-05 21:26:48.000000000 +0900
+++ gcalcli	2011-02-05 21:26:25.000000000 +0900
@@ -1087,7 +1087,7 @@
             Usage()
 
         # allow unicode strings for input
-        uniArg = unicode(args[1], locale.getpreferredencoding())
+        uniArg = unicode(args[1], 'utf-8')
         gcal.QuickAdd(uniArg)
         return

LaunchBar の SearchTemplate の設定

LaunchBar をショートカットで呼びだしたら、Alt + Cmd + I でインデックス画面を表示。
f:id:tlync:20110205215149p:image

SearchTemplate(UTF-8) を選択し Add をクリック。
f:id:tlync:20110205215425p:image

名前はお好みで入力し、URL を下記の様に入力。
※パスは自分がダウンロードしたディレクトリを入力する。またチルダ(~)を含めると登録できないので、フルパスで入力する。

x-launchbar:execute?path=/Users/takuya/Scripts/gcalcli&arguments=quick+%22*%22

f:id:tlync:20110205215107p:image

上記で手順は完了です。

予定の登録

あとは SearchTemplate の登録時にした任意のキーワード(Google Canedar 等)で呼び出し、QuickAdd のフォーマットで予定を入力すると、自動的に Google Calendar に予定が登録されています。便利!!


f:id:tlync:20110205215815p:image
f:id:tlync:20110205215814p:image