« ファームアップE71 | トップページ | シンクロをHP200LX単体で »

2009/02/16

予定シンクロをHP100LX/HP200LXとGoogle Calendarにも

今月Google SyncでMicrosoft Exchange ActiveSyncプロトコル対応が行われたことにより、iPhoneやWindows Mobile端末と、Google CalendarがOutlookを経由することなく同期できるようになりました。

従来Google SyncでサポートしていたBlack berry向けなどのsyncMLプロトコルと合わせ、Google CalendarはOutlookなしでも様々な小箱とシンクロできるようになってきています。

さて、手許のHP200LXでも、従来Outlook経由でGoogle Calendar Syncを利用してきましたけれど、こうなると、Outlook抜きでHP100/200LXとGoogle Calendarでシンクロしたくなります。

そういうわけで、今まで適当に書いてきたPerlスクリプトを組み合わせ、少し修正したりして、HP200LXとGoogle CalendarがOutlookを経由せず直接データ同期できるようにしてみます。


「g2lx.zip」をダウンロード

アーカイブの中身は以下の通りです。

g2lx_G.bat
シンクロ用のバッチファイルサンプル

g2lx.pl
二つのapptout用csvファイルを比較し差分出力するスクリプト

ics2csv.pl
GoogleCalendarでエクスポートしたics形式からapptout用csvファイルへの変換スクリプト

LX2GCAL.PL
apptout用csvファイルからGoogleCalendarでインポートできるics形式への変換スクリプト

LX側は、ぼくの場合A:\_DAT\APPT.ADBでAppointmentsデータとしています。apptout.exeでこのADBファイルからデータを抽出し、追加データを書き込むことができます。
Google calendar側は、インポート/エクスポート機能が標準であるので、それを使うことにします。試しにエクスポートしてみます。カレンダー設定画面に、「カレンダーをエクスポート」のリンクがあります。これをクリックすると、マイカレンダーをics形式でダウンロードできます。ぼくはマイカレンダーを二つ設定しているので、二種類のカレンダーがそれぞれicsファイルとなり、zip圧縮されてダウンロードできます。
もしくは、カレンダーを選んで詳細画面で、限定公開URLの[ICAL]のボタンから、そのカレンダーの全データをbasic.icsというファイルでダウンロードすることもできます。


そうすると、あと必要なのは、basic.icsからapptout形式のcsvにするスクリプト、二つのcsvを比較するスクリプト、追加予定をics形式で保存するスクリプトがあれば、ほぼ同期ができそうです。
この方法だと、LX側でも、GoogleCalendar側でも、既存の予定の内容を修正したときに、うまく修正できるか心配な部分があります。ここは割り切って、予定を変更したら、LX上では別の予定として登録されるようにして、不要になった予定はLX上で自分でDELETEキーを押して手動削除することにします。
また、Google Calendar側は、LX側と同じようにするといくつも同じ予定が登録されるのが気持ち悪いです。なぜなら。Google CalendarはLX以外とも同期をするからです。このため、UIDを設定して、LXからGoogle Calendarへ予定の追加は、一つの項目(件名+開始日時で判別)につき一度しかインポートできないようにUIDを設定するようにします。同じ予定を再度取り込みたいときは、生成したICSファイルのUIDをエディタで書き換えれば可能です。

このように、全自動シンクロではないけれど、手動で割りと簡単にシンクロできるようになります。
Perlスクリプトなので、Perlの動く環境で、かつGoogle Calendarを操作できるブラウザがあるPC環境にLXのフラッシュカードをさせば、LXでインターネット環境を作らなくても使えそうです。


運用手順は、

たとえば、Active PerlをインストールしたWindows PCなどで、

Google Calendarで「カレンダーのエクスポート」や限定公開URLの[ICAL]ボタンから、ICSファイルダウンロード
(basic.icsでダウンロードすることにします)

LXのフラッシュをPCにさす
(G:ドライブにマウントされたとします)

g2lx_G.batを実行
(LX側のappt.adbは自動的に不足予定が追加されます)

Google Calendarでaddggl.icsをインポート
(必要に応じて)


という感じです。

ぼくは、祝日や誕生日などの終日イベントデータはシンクロしたくなかったので、終日イベントは
別ファイルを生成して、必要な場合はそちらもインポートすればいいようにしました。


そういうわけで、LXとGoogle CalendarのデータをOutlookを経由せず直接シンクロして、それぞれ不足している予定項目を取り込むことができるようになりました。ぼくの用途では十分になりました。

内容修正された旧項目の手動削除といった手間がないわけではありませんけれど、それなりに快適です。バグや仕様で勝手にデータが消去されたりすることはないので、そういう意味では安心です。

|

« ファームアップE71 | トップページ | シンクロをHP200LX単体で »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/69188/44081349

この記事へのトラックバック一覧です: 予定シンクロをHP100LX/HP200LXとGoogle Calendarにも:

« ファームアップE71 | トップページ | シンクロをHP200LX単体で »