見出し画像

Googleカレンダーの予定から仕事に入れる人をピックアップする

はじめに

前回の続きで、パート登録者に仕事の割り振りをする仕組み作りです。パート登録者には予めGoogleカレンダーに自分の予定が入っているところに予定を入れてもらいます。割り振ろうとする仕事の時間と登録者のカレンダーを突き合わせて仕事に入ってもらえる候補者を抽出します。

仕様

・仕事の日程を確定する
・仕事の分類を選んで、それがやれるパート登録者をピックアップする
・ピックアップしたパート登録者の中でスケジュールが埋まっていない人を抽出する

動かしてみる

アカウント一覧表に、パート登録者のリストを入力しておきます。GoogleIDをキー情報にして名前と住所の欄を追加しました。またどのパートさんがどんな仕事をやれるのかを表の項目に入れてあります。製造業の加工の作業が項目に入ってます。経験や技術がない人はやれませんから、カレンダーだけじゃなくてこの表も候補者を絞るのに大事です。これがレストランやカフェだったら、ホールや調理、発注というのに置き換えてください。

登録者リスト

仕事の依頼が来て仕事の日程が確定したらシートに日程の日時を入れます。直前にどのくらいの時間を余裕として取るのかも入れます。直前に別の予定があって直ぐに仕事に入れないこともあるので。

仕事の日程入力

動かす方法はワンクリックだけです。候補者抽出ボタンをクリックすると、①仕事分類の項目に指定された仕事ができる人だけを取り出して、②その中の人のカレンダーを読み、その時間に予定が入っていない人を抽出して書き出しをします。

候補者の出力結果

カレンダーに予定が入っているかどうかは、カレンダーのgetEvents()を使います。調べる時間の始めの時間と終わりの時間を渡すと、その時間内に入っている予定が返されます。この予定の数を数えればいいわけです。0であれば入っている予定はなく、それより大きい数が入って入ればその数だけ予定が入っています。つまり0より大きければ予定が入っていて、仕事は入れないことになります。

const calendar = CalendarApp.getCalendarById(id);
if(calendar == null){
   isOpen = false;
 }else{
   const events = calendar.getEvents(spanIn, spanOut);
   if(events.length > 0){
     isOpen = false;
   }else{
     isOpen = true;
   }
 }
 return isOpen;

技術情報

スクリプト:Google Apps Script
その他:Googleカレンダー、Google SpreadSheet

まとめ

Googleカレンダーとスプレッドシートを使って、仕事の条件に合う人をピックアップしてカレンダーに予定が入っていない人を抜き出すことができました。たくさんの人の予定を人手で調べて調整するのは大変です。高がGoogleカレンダーですが、このようにコードをちょっと書いて機能を足してやれば、大人数を扱うことができるようになります。

この記事が気に入ったらサポートをしてみませんか?