[kz] サイボウズ Office 10のスケジュールをical形式にして何につかおう

NO IMAGE

こんにちは、@kazscapeです。

サイボウズ Office10のスケジュールをical形式にしてみました。

参考にさせていただいたのは「Kung Noi Blog」さんのサイトの「サイボウズOffice10をiCalに変換するスクリプトとCalDavサーバ(ownCloud)にアップロード」の記事と「望遠鏡ドットコム」さんの「サイボウズ9・サイボウズ10のスケジュールをiCal形式でGoogleカレンダーに同期(一方通行)」という記事。

「Kung Noi Blog」さんのサイトにあるPerlのコードでうまくスケジュールを取得できているのですが、スケジュールの時間について、どうもサイボウズの仕様が変わったのか、うまく取得できず、すべての予定が終日の予定になってしまっていました。そこを少し改良させていただいたのと、「望遠鏡ドットコム」さんのところにあったPHPのソースコードから取得できたHTMLから不必要なものを削除する部分を流用させていただきました。

いずれもこの投稿時点のものなので、いつまたサイボウズが仕様を変更するやもしれませんが、投稿してみます。

ソースコード

変更したのは、41行目から45行目にかけて、取得できたHTMLから予定に関わる部分以外のところを削除してしまうようにしています。

これがなくても動くと思うのですが、スケジュールとして、何を取り出せばいいかに集中できるようにしたかったので残してあります。

次の変更箇所は、65行目のif文の条件です。

予定に関わる内容を1行にしているのですが、以前までの条件ではスケジュールの時間が取得できなくなっていたので、<span class=”eventDateTime”>のタグからスケジュールの時間を追加で取得するように条件を変更しました。そのため、関数の”event”に与える引数が一つ増えてしまったので$3まで増やしました。

89行目からの関数”event”では、引数として$timeを追加して、109行めから132行目までのif文で使用している変数を全て$timeにして、$titleには何も手を加えないようにしています。

「Kung Noi Blog」さんのところのソースコードと見比べないと何のこっちゃかもしれませんが、詳しくみたい方は両方をdiffなどしていただけると。

実行方法は元のままです

実行方法は、「Kung Noi Blog」さんのところで書かれていらっしゃるとおり、設定ファイルは「getcybozu10.yaml」の名前で以下のとおりご用意いただいて、

実行は、それぞれが保存している場所でお願いします。

まとめ

先駆者の方々の有益な資産を利用させていただき、少しばかり改良させていただいて、目的のical形式のファイルを取得することができました。

大変ありがとうございます。

さて、このical形式のファイル、何に使おう。。。

ではっ!