その他
    ホーム 技術発信 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で出来ますので、是非試してみていただければと思います。

    記事を共有