Google Apps Script(GAS)を触ってみた

勤務先の会社ではMicrosoft 365(旧Office 365、以下MS365)を契約しているので、予定表はOutlookで登録・管理をしています。
会社の予定表を自身のGoogleカレンダーに同期する方法を見つけ使っていたのですが…。
 
休日の予定が大量に複製される現象が起き、悩んでいました。
休日が2,000個ほど複製されてしまう現象。
Googleカレンダーでは複数予定をまとめて選択して、一括削除する方法が無いため、ポチポチ1つずつしか消せないので、それだけで日が暮れてしまう。
マウスを自動操作するツールを使ってみたりしたんだけど、イマイチうまく動作させることができず。。
 
途方に暮れていたら、Google Apps Script(GAS)というものが存在することを発見。
コードを一から書く能力は無いため、探してみたらテンプレートを公開してくれている人がいました。
 
 
上の便利ツール使う際の注意点、1/1の元旦休日が大量に複製されている場合、予定の検索条件を2022/01/01~2022/01/01とすると、うまく予定を抽出することができなかったので、2021/12/31~2022/01/02と広い範囲で検索するとうまくいきました。
 
これで、一気に不要予定を消せる!と思ったら、そうは問屋が卸さない。
 
思ったよりもスクリプトの処理は早く無く、1予定削除に数秒かかる模様。
一気に1,900件ぐらい消そうとしたら、エラー表示。
短時間に作成したカレンダーまたはカレンダーの予定の数が多すぎます。しばらくしてからもう一度お試しください。」

f:id:postpetmomo:20211015005010p:plain

短時間に作成したカレンダーまたはカレンダーの予定の数が多すぎます。しばらくしてからもう一度お試しください。
ああ、大量の処理は弾くのね…。
 
 
そこで、一度に削除する予定を数百に減らして処理したら、今度は別のエラー表示。
起動時間の最大値を超えました」
どうやら、調べると無料のGoogleさんユーザは6分以上かかる処理はエラーで止まるみたい。
5分間ずつに処理を分割する方法などがネット上には転がっていたけれども、難しくて良く分からん。
 
 
なので、今度は一度に削除する予定を200件ずつに減らして少しずつ処理をする作戦。
手間だけど、これで少しずつやれば良いのですね、と思っていた矢先に…
「1日にサービスcalendarを実行した回数が多すぎます。」

f:id:postpetmomo:20211015005018p:plain

1日にサービスcalendarを実行した回数が多すぎます。
調べると、無料のGoogleさんだと、1日にカレンダー予定作成上限が5,000個の模様。
 
恐らく、予定削除も1個操作したとカウントされているのだと思われます。
同じ予定が2,000個複製されてしまっている場合、GASで削除する場合、あっという間に上限に達してしまうっぽいことが判明。
Google Apps Script(GAS)をもってしても、大量に増殖した予定を削除する道のりは長い。