hagiharaのブログ

世界に5人くらい存在するかもしれない僕のファンとドッペルゲンガーに送る日記

Googleカレンダーを共有するときに過去の予定は見せないようにする方法(がうまくいかなかった話)

Googleカレンダーを共有したいけど、過去の予定が見られちゃうと色々と差し障りがあるというかお互いにとってアレがナニだし、かと言っていまさらカップル用とか家族用とかのカレンダーアプリ入れんのもめんどくさいし、きっとGoogleのことだから「過去の予定はプライベートにする」みたいなチェックボックスがあって、それにチェックを入れておけばノープロブレムだと思ってたのね。

でも、いろいろ調べたけどそんな方法は見つからずで、かつ、取ろうとした手段はことごとくダメで。

たとえば予定を複数選択してその複数の予定に対して処理が行えれば過去のものをプライベート設定できるかなと思ったけど無理。

たとえば特定の予定だけをエクスポートできればうまいことカレンダーを見せていいものとダメなものに分割できるかなと思ったけどそれも無理。

まあ、Googleのサポートに問い合わせてはいないわけですが。

てなわけで、一度メインのカレンダーにある予定を全部エクスポートして、それを新しく作ったカレンダーにインポート、メインのカレンダー上の全予定を削除した上で共有して、新しいカレンダーは共有しないとすれば良いのかなと思ったわけ。

そしたらデータのサイズが大き過ぎたらしくてインポートできず爆笑。

エクスポートしたファイルは約10年分で6MB弱。おっさんの人生に歴史を感じますね。

ファイルはiCalendar形式のテキストファイルで26,652行。ファイルフォーマットについては軽くしか調べてないけど、テキストファイルを扱うときはやっぱLinuxだよねってことでAWSのなんかにアップして調査。最近はメアドを隠さないのがトレンドだとか(知らんけど)。

$ grep BEGIN hagimail\@gmail.com.ics | uniq -c
      1 BEGIN:VCALENDAR
      1 BEGIN:VTIMEZONE
      1 BEGIN:STANDARD
      1 BEGIN:DAYLIGHT
      1 BEGIN:VTIMEZONE
      1 BEGIN:STANDARD
      1 BEGIN:VTIMEZONE
      1 BEGIN:STANDARD
  18709 BEGIN:VEVENT
      1 BEGIN:VALARM
    184 BEGIN:VEVENT

なぜかひとつだけアラームが設定されてるのが謎だけど、どうやら予定の数としては18,893件あるっぽい。これを二分探索的に9,000件、4,500件みたいに減らしていって読み込めるサイズを調べてから、おそらくヘッダ的な役割を果たすのであろうVTIMEZONEなどは分割したそれぞれのファイルの先頭に付加しておいて、的なことをやりたいけどそんな時間あんのかな。引っ越す予定なんだが。

ここまで書いて、それこそGoogleカレンダーに対応したカップル用カレンダーアプリに「過去の予定はプライベートにする」みたいなチェックボックスがありそうな気もしてきた。

ただ、そのチェックボックスにチェックを入れるかって、踏絵な気もするけどね。