会社ではcybozuの結構古いバージョン、office6をつかっていてこいつは標準ではical出力とかgoogleカレンダー連携とかできない。
そこでcybozu2icalを導入したのでメモ。(windows7 64bit)
- cyboz2icalをsvnチェックアウト http://ogawa.googlecode.com/svn/trunk/cybozu2ical
- Activeperlをインストール、インストール後PATHを確認して再起動 http://www.activestate.com/activeperl/downloads
- CPANで必要なモジュール( https://github.com/ogawa/cybozu2ical-perl に書いてあるモジュール)をインストール。Text::CSV 1.0+、DateTime、LWP、Class::Accessor::Fast、Data::ICal、YAML
- config.yaml.sampleをconfig.yamlを自分の環境に合わせて書き直す。usernameではなくuseridを使用した。
- コマンドプロンプトで、perl cybouzu2ical test.ics を実行。
- Cannot decode string with wide characters というエラーを吐くので、ググるとutf8の処理がおかしいらしく、cybozu2icalを修正
- summary => decode_utf8( $item->summary ),
- ↓
- summary => Encode::is_utf8($item->summary) ? $item->summary : decode_utf8($item->summary),
- のような形に。
- できあがったicsをdropboxに配置して、googleカレンダーにURLから登録してみると、「robot.txtの制約でクロール無理」と言われる。
- クロールできるwebスペースにFTP転送するようにbatファイルを書いてみる。改行コードがあやしいので、\r\nを\nに置換も行う。
- http://ameblo.jp/tominagamichiya/entry-10345196007.html を参考にした。
- batファイルの中身は以下。
perl cybozu2ical > cybozu2icalcybozu.ics
type cybozu2icalcybozu.ics | perl -pe "s/\r//" > cybozu2icalcybozu2.ics
ftp -s:upload.cmd
- upload.cmdの中身は以下。
open FTPサーバホスト名
FTPアカウント
FTPパスワード
cd アップロード対象ディレクトリ
put cybozu2icalcybozu2.ics
bye
- アップロードしたicsをgoogleカレンダーで指定すると、文字化けするので.htaccessを編集。「addtype "text/calendar; charset=utf-8" .ics」を追加。
- http://se-suganuma.blogspot.jp/2008/09/google-ical.html このやり方では「有効なicalではない」と言われてうまくいかなかった。
- batファイルをタスクスケジューラに登録して1日1回実行。