/dev/null

(◞‸◟)

社内サイボウズガルーンの予定をGoogleカレンダーに同期させてみた話

社内のグループウェアサイボウズ(ガルーン)が使われているところは多いかと思います。

で、思うのはGoogleカレンダーにその予定が同期されてれば、お昼ごはん食べに外に出ていって「この後予定あったっけ...」などという残念極まりないミスが減らすことができるのではないかという妄想。

そもそもちゃんと予定を確認して外に出ろという根本対策は取れません。

まず、前提としてそのサイボウズからは社内端末からしかアクセス出来ないということです。

個人のスマフォ、PCなどを社内に持ってきて飛んでるWi-Fiに繋いでも登録済みな端末(MACアドレスとかでみてるのかな)しかアクセスは不可能です。

一応公式でiCal形式での書き出しに対応しているのでimport自体は可能です。

月予定などを表示して右上の「iCalendarファイルへの書き出し 」を開けばiCalが落ちてくるのでそれをよしなに登録すればいいのですが、毎回手動で入れるのだるい。

探してみます。

Chrome Web Store - Cybozu to Google Calendar

良さげなChrome拡張ですが結局手動っぽいので不適な感じ。

manbow/garoon-to-google-calendar · GitHub

自分で鯖にphpスクリプトを置いてicsサーバーを作る感じ。

これは自動で変更とかも見れそうじゃないかな?と思ったんですが、外部の鯖からサイボウズにアクセス出来ないので動かせません。

社内PCでApache立てて動かしてみたら確かに動いたんですが、今度はGoogleカレンダー側から社内PCにアクセス出来なければいけませんのでセキュリティ的なアウトですね。

ちなみにこの上記のphpスクリプト、生成されたicsファイルはそのままだと動かないかもしれない(Macのカレンダーに投げたらエラー)ので、テキストエディタで開いて+0900となってるところを削除しましょう。

    $page = preg_replace("/DTSTART:[0-9A-Z]+/","$0+0900",$page);
    $page = preg_replace("/DTEND:[0-9A-Z]+/","$0+0900",$page);

ココらへん削除するのがいいかもしれない。

これはどうやってもアレな気がしてきたのですが、一つアプリを見つけました。

ガルーン同期 - Android Apps on Google Play

その名の通り、URLとIDとパスを入れればガルーンとGoogleカレンダーが同期してくれる便利Androidアプリ。

これを端末にインストールすればいいのですが、個人端末に入れても社内ネットワークに属していないので結局使えません。詰んでる!

で、どうしたかというと、社内PCにAndroidエミュレーターを入れてその中でこのアプリ動かせば、ネットワークは社内だし、Androidアプリで同期できるし最高な感じあります。

で、Androidエミュレーターは公式のがクッソ重くて使い物にならないので代替を使います

Genymotion

導入は説明メンドイんでこれ。

Miix2 8 レビュー20―『Genymotion』で「Google Play」をインストールする方法 | タブクル

で、あとはGoogle Playからさっきのアプリを入れてよしなにURLなどを設定して同期。

httpsな社内鯖の場合は「無効なSSL証明書を許可」にチェックだけ入れましょう。

GenyMotionで起動したエミュレータは終了せずにそっと放置。あとは社内PCが起動している間は予定が同期されます。

PC終了させると同期は止まるけど、家に帰るときくらいだし、流石にそこでスケジュール変わっても問題ないでしょう。家では休もう。

この方法の最大の弱点はエミュレータがそれなりにメモリを食うので、たかだか同期させるために1GB程度のRAMが使われることですね。

マシンスペックに余裕がある方はいかがでしょうか。

まぁ、ここまでやって思うことは

こんな事する必要ないし、そこまでしてスケジュール把握出来ないと困る状況を作るな

余談として、アプリのレビュー見てると、自社サーバーでもいけるようにしてくれとかあるけど、お前の環境が悪いだけだろって感じですねぇ。