ホーム DoRuby GCALDaemonを使って、ical対応アプリケーションとGoogleカレンダーを同期する

GCALDaemonを使って、ical対応アプリケーションとGoogleカレンダーを同期する

この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。

弊社にて販売しているSNSパッケージはスケジューラとして社内で利用されていますが、icalデータとして出力するインターフェースも持ち合わせているので、折角だからGoogleカレンダーと同期をとって利用したいと思います。

GCALDaemonというソフトウェアを利用すれば、比較的簡単に同期が実現できます。

今回は Mac OS X 10.6 上で設定を施してみたいと思います。

 必要なもの

  • Java 1.5 以上のランタイム環境
  • Gmailのアカウント
  • iCal 互換のアプリケーション

 Mac OS X へのインストール

http://sourceforge.net/projects/gcaldaemon/files/linux/ からLinux用バイナリzipをダウンロードし、

mkdir -p ~/gnu/ などとしてインストール用ディレクトリを作成します。

そこで以下のオペレーションを実行します。

cd ~/gnu
unzip ~/Downloads/gcaldaemon-linux-1.0-beta16.zip
chgrp -R admin ~/gnu/GCALDaemon
chmod -R g+w ~/gnu/GCALDaemon
chmod 755 ~/gnu/GCALDaemon/bin/*.sh

設定をテストするため、以下のコマンドを実行します。

cd ~/gnu/GCALDaemon/bin
 ./password-encoder.sh
Your Google password: Googleアカウントのパスワードを入力します

Original password: 上で入力したパスワードが表示されます
Encoded  password: xxxxxxxxxx ここで出てきた文字列を後ほど利用します

Sample configuration options for GCALDaemon:

file.google.password=xxxxxxxxxx
ldap.google.password=xxxxxxxxxx

notifier.google.password=xxxxxxxxxx
sendmail.google.password=xxxxxxxxxx
mailterm.google.password=xxxxxxxxxx

この後で設定ファイルも編集します。~/gnu/GCALDaemon/conf/gcal-daemon.cfg を開いてください。

% diff -U0 gcal-daemon.cfg.default gcal-daemon.cfg
--- gcal-daemon.cfg.default     2011-05-23 20:36:16.000000000 +0900
+++ gcal-daemon.cfg     2011-05-23 20:42:32.000000000 +0900
@@ -62 +62 @@
-file.ical.path=/usr/local/sbin/GCALDaemon/google.ics
+file.ical.path=/Users/myname/gnu/GCALDaemon/ical.ics
@@ -65 +65 @@
-file.google.username=example@gmail.com
+file.google.username=myname@gmail.com
@@ -68 +68 @@
-file.google.password=328$$gbv1WZhRGbhN2Z
+file.google.password=047$hogehogehog
@@ -71 +71,2 @@
-file.private.ical.url=/calendar/ical/example%40gmail.com/private-495cf94a5c0f1bfg/basic.ics
+file.private.ical.url=/calendar/ical/myname%40gmail.com/private-f1ldld54d7f9888316e6dlflf9ldld8hoge/basic.ics
+

設定差分は上記の通りです。

また、file.private.ical.urlに関してはGoogleカレンダーの設定から「限定公開URL」のICALリンクをクリックしてでてきた文字列のhttps://www.google.com/以降の文字列をペーストしてください

ここまでで基本的な設定はできました。一度きちんと同期ができるか、以下のコマンドを実行してみてください。

% ~/gnu/GCALDaemon/bin/sync-now.sh

コマンドを実行した後、ical.icsファイルの内容がGoogleカレンダーに反映されていたら成功です。

icalファイルを出力するアプリケーションに対してwgetやcurlなどでファイルをgetするようcrontabにしかけておきます。

% crontab -l
0 * * * * (cd ~/gnu/GCALDaemon ; curl -O http://sns.kbmj.jp/users/myname/calendar/ical.ics ; /Users/myname/gnu/GCALDaemon/bin/sync-now.sh ) > /dev/null 2>&1

これで1時間おきに同期がおこなわれた事になります。

他にもいろんなパターンでカレンダー同期がGCALDaemonで出来ますので、是非試してみていただければと思います。

記事を共有

最近人気な記事