Lotus Notes Calendar -(片方向)-> Google Calendar iPhone/iPod Touch Calendar を同期させる

更新履歴

2008.1.4 初稿

はじめに

仕事がらLotusNotesから離れる事は出来ません。
Lotus Notes CalendarとGoogle Calendar(他の環境もそうですが)の同期ソフトはいつの時代にも困りものの一つです*1。私としてはLotusのカレンダーは高機能で好きですので会社でNotesクライアントを使用しいている限りなんの問題もないです。

色々ググってみましたがあまり良い回答は無かったので簡単なスクリプトを書いて使っています。本当は一方向ではなく、双方向や差分での更新が出来るようにしたかったのですがあまり必要に迫られず現在に至ってしまいました。

このスクリプトを使うに当たって、私個人の使用方法を書いておきます。

  1. Lotus Notes Calendarに予定を入れる(特に会議招集がくるので次々に勝手に埋まります・・)
  2. 朝 スクリプトを使用して同期をする
  3. 夜 実際の「結果」を、Google Calendarで修正をして登録する

予定と行動(結果)が全て一致していれば良いのですが、実際にはずれる事も多いのであえて結果をGoogleCalendarに入れています。これは月に一度、予定と結果の差を見る際に2つのカレンダーを使用しているので確認がしやすく便利です。ちょっと手を加えて実績はiPhoneで、という事も出来るかと思います*2
従ってこのスクリプトは今日以降の未来に関してのデータを更新します。

仕様

Lotus Notes Calendarのカレンダー情報をGoogle Calendarに登録します。
データは実行日以降(未来)を対象としています。片方向の同期のためGoogle Calendar側の変更は削除され全てのデータを更新します。*3

使用方法

準備

Rubyが必要になります。LotusNotesはMACでも使用出来ますがたぶんこの文章を見て下さる大抵の人はWindowsだと思います。RubyWindowsで使用するための文章としてどのサイトを紹介したらよいのか悩んで選べませんでした。私はCygwinが入っていますのでCygwin版のRubyを利用しています。
またLotus Notesのデータベースを参照するために RubydeDomino というライブラリを利用しています。Google Caledarへのアクセスはgcalapiを利用しています。

require 'googlecalendar/calendar'
require 'date'
require 'kconv'
require 'nkf'
require 'notes_lib'

ダウンロード

github使った事無かったのですが面白そうなので登録してみました。*4 リンク先のをクリックするとダウンロードが出来ます。スクリプト1本なのでコピーして貰っても動きます。

http://github.com/tokida/notes2gcal/tree/master:master

使用方法

スクリプト内の以下の部分を自信の環境に合わせて変更して下さい。

DB = NS.GetDatabase("", "mail/MAILDB.nsf")
GCAL_ACCOUNT = "AAAAA@gmail.com"
GCAL_PASSWORD = "password"
GCAL_FEED = "http://www.google.com/calendar/feeds/**.calendar.google.com/private/full"

DBは、メールデータベースのパスを指定します。これは”Notes”から見たパスになります。メールのアイコンのプロパティで確認が出来ます。

GCAL_FEEDは、同期をしたいGoogleのカレンダーを指定します。Notesと同期を取る用の専用のカレンダーを作成して利用する事をおすすめします。

後は実行するとカレンダーの情報がGoogle Calendar側に登録されます。あくまで私個人の使用しているスクリプトなので使い勝手が不便な点などは個人で修正してもらえると良いかと思います。


iPhone/iPod touchとの同期

こちらはGoogleCalendarとの同期になります。いろいろなサイトで紹介されているのでまとめておきます。私個人はJailbreakしているためNemeusSyncを利用しています。こちらは同期はクリックが必要ですが同期対象のカレンダーが選択出来るのが便利です。

印刷について

Lotus Notes Calendar 、Google CalendariCalの印刷には敵わないなぁと思っています。どちらも微妙な印刷しかできません。iCalも全ての欲求を満たしてくれるわけではないのですが見た目に良い感じで印刷が出来るので非常に気に入っています。
私個人としては毎週印刷をしているので(やっぱり紙は紙で便利です)A4裏表で「当月のカレンダー」「今週のカレンダー」を印刷して持ち歩いています。

*1:数年前Palmを使っていた頃は便利でした

*2:私は日常は紙ベースでさっと記録しています

*3:ソース内で日数を指定していますので必要な方は変更して下さい

*4:こうリンクするのが正しいのでしょうか