皆さんこんにちは、岩舘電気の中の人です。岩手県では岩手医科大学の転院も終わり、秋を感じる季節になってきました。
さて、中の人は今までスケジュール管理に Google Calendar を使っており、仕事と家庭両方のスケジュール管理に活用していたのですが、自分のスケジュールを社内に公開する必要が出てきたため、Google Calendar とサイボウズ Office のカレンダーを同期してくれる Gcal Connection for Cybozu Office という有償のソフトウエアを導入しました。
しかしながら、専用のソフトを導入しても簡単にスケジュール同期ができるわけではなく、各アプリの仕様のために大ハマりしてしまったため、同じような悩みを持っている人のために顛末記事を公開します。Gcal Connection for Cybozu Office はプロプライエタリなソフトウエアですのでここで扱うのは少々気が引けるのですが、本記事はどちらかというと google calendar の tips 的な側面が大きいため、お許しいただければ幸いです。
まず、現状と理想の状態を確認します。
現在は自分の google account で1つカレンダーを持っており、これを家庭内で共有しています。家族でのイベントがある場合は、必要に応じて「ゲストを追加」することでプライベートなスケジュールを追加します。
これを次の図のように変更します。
Cybozu のスケジュールを社内に公開する場合は、プライベートな予定は「非公開」に設定したいところです。これを実現するために社内公開用のカレンダーを1個追加します。家庭内の meeting request (ゲストを追加)はデフォルトのカレンダーに入ってきますので、デフォルトのカレンダーを Cybozu の非公開カレンダーに割り当てるのが賢明と思われます。(ただし、PCのブラウザ上でイベントを作成する場合はデフォルトカレンダー上に作ろうとするため、会社のイベントを作成する場合はカレンダーの割り当てを変更するひと手間が増えます。モバイルアプリの場合は直前にイベントを追加したカレンダー上にイベントを追加しようとするためこの限りではありません。)
さて、これだけ見ると簡単に見えますが、Gcal Connection for Cybozu Office は、初回の同期時は同期先の google calendar にイベントが一つもない「まっさら」な状態である必要があるという悪夢のような仕様があります。つまり・・・
というわけで、まずは Default Calendar の複製を作ります。ぐぐってもらうとわかるのですが、通常は既存のカレンダーをエクスポートし、新しく作ったカレンダーにインポートすれば終わります。終わるはずなんですが、Google Calendar の場合は非常にダメダメな仕様があり、インポートする iCal ファイルはおよそ 1MB以下でないとインポートに失敗することがある、インポートするファイルに含まれる件数が多すぎても失敗するなどの制約があります。おまけに、同じファイルでも、インポートに成功するときと失敗するときがあります。部分的にインポートされることもありました。なお中の人の場合、エクスポートしたファイルが11MBあったため、試行錯誤して13分割しました。なお iCal を分割できるツールの類は存在しないようなので、テキストエディタで分割することになります。
なお、エクスポート・インポートを行っても、まったく同じカレンダーが生成されるわけではありません。次の情報は消えてしまいます。
・主催者、参加者情報
・google drive へのリンク情報
このほかにも、中の人が遭遇した不具合として、イベントの長さが0時間である場合、インポート時に1時間になってしまうことがありました。例えば、「08:00~08:00 (0時間)」のイベントが「08:00~09:00(1時間)」になってしまうことがまれにあります。
なお 中の人の場合、google drive へのリンク情報が消えるのは非常に厄介でした。イベントに関連する様々な書類やFAX(いまだに使っているなんて信じられませんけど、実際ものすごい量のFAXが届きます)をスキャンしたものを大量にアップロードしているため、インポートが終わったら、リンクを含むイベントを一つ一つ default calendar からbackup calendar にコピーを行います。google calendar のコピー機能を使った場合は、エクスポート・インポートと違ってリンクが消えません。とにかく手動でコピーをするしかないようです。
さて、カレンダーのインポートと添付ファイル(Google drive へのリンク)があるイベントのコピーが終わったら、いよいよ default カレンダーを消去します。
なお過去のデータをバッサリ切り捨てることができればいいのですが、中の人は諸般の事情により過去の情報を消せない理由がありまして、テストを兼ねてすべてのデータのエクスポート・インポートをしています。それにしても心折れる瞬間です。
カレンダーの削除が終わったら、GCal Connection を起動して同期設定を行います。このとき、同期先の google drive の2つのカレンダーには何もイベントがないことを確認し、できれば Cybozu 側のスケジュールもすべて削除しておくのが良いと思います。cybozu のスケジュールはアプリの設定から削除が可能です。
同期が終わったら、 backup カレンダーもしくはエクスポートしたical からイベントを default カレンダーと社内公開用カレンダーにインポートをしていきます。特に添付ファイルのあるイベントについては、backup からコピーして戻していかなくてはなりません。どの程度復元が必要かは割り切りが必要だと思います。
書いてみると簡単ですが、手作業が多く、時間も神経も使う作業です。中の人はあやうく徹夜しかけました。まあ、何かのご参考になれば幸いです。