GASでスプレッドシートの入力からGoogleカレンダーに複数のイベントを追加


みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。

GASでGoogleカレンダーに複数の予定をまとめて追加するスクリプトを作成する方法をお伝えしています。

前回の記事はこちら。

GASでデフォルトのGoogleカレンダーにイベントを追加する簡単なスクリプト
Google Apps ScriptでGoogleカレンダーに複数のイベントをまとめて追加するスクリプトを作っていきます。今回は、GASでデフォルトのカレンダーを取得してイベントを追加する方法です。

Googleカレンダーに一つのイベントを追加する簡単なスクリプトについて紹介しました。

今回は、GASでスプレッドシートに入力した内容をもとに、複数のイベントを追加できるようにしていきたいと思います。

では、行ってみましょう!

スポンサーリンク

前回のおさらい

前回は、GASでデフォルトのカレンダーに単一のイベントを追加する方法をお伝えしました。

イベントを追加するメソッドはcreateEventメソッドです。

Calendarオブジェクト.createEvent(イベント名, 開始時間, 終了時間, オプション)

それで、作成したスクリプトがこちらですね。

function createEvents() {
  const calendar = CalendarApp.getDefaultCalendar();
  const title = '研修1回目';
  const startTime = new Date('2020/4/1 10:00:00');
  const endTime = new Date('2020/4/1 12:00:00');
  const option = {
    description: 'イントロダクション',
    location: '〒105-0011 東京都港区芝公園4丁目2−8'
  }
  
  calendar.createEvent(title, startTime, endTime, option);
}

今回は、スプレッドシートに複数のイベント情報を入力しておいて、それをもとにイベントを追加できるようなスクリプトを作っていきたいと思います。

イベント情報を入力したスプレッドシート

まず、スプレッドシートを準備してみました。

こちらです。

カレンダーに追加するデータをスプレッドシートに入力
各列の構成は以下のようになっていますよ。

見出し データ型 説明
A列 イベントタイトル String イベント名
B列 開始時間 Date イベントの開始日時
C列 終了時間 Date イベントの終了日時
D列 場所 String 場所
E列 説明 String 説明

ほら、createEventメソッドで必要な引数に忠実に作ってみましたよ。

スプレッドシートに入力した複数のイベントをカレンダーに追加するスクリプト

では、安心してスプレッドシートのイベントリストから、Googleカレンダーにイベントを追加するスクリプトを作ってみました。

function createEvents() {
  const calendar = CalendarApp.getDefaultCalendar();
  const values = SpreadsheetApp.getActiveSheet().getDataRange().getValues();
  values.shift();
  
  for(const record of values){
    const title = record[0];
    const startTime = new Date(record[1]);
    const endTime = new Date(record[2]);
    const option = {
      description: record[3],
      location: record[4]
    }
    
    calendar.createEvent(title, startTime, endTime, option);    
  }
}

4行目のshiftメソッドですが、先頭の見出し行を削除するためのものです。

また、8,9行目はスプレッドシートから取得したデータを「new Date()」の引数に入れて、Dateオブジェクト化しています。

このスクリプトを実行すると、以下のようにイベントが追加されたことを確認できました。

スプレッドシートのデータから追加したGoogleカレンダーのイベント

まとめ

以上、GASでスプレッドシートの入力をもとにGoogleカレンダーに複数のイベントを追加するスクリプトを紹介しました。

次回以降、このツールをもう少し便利にしていきたいと思います。

Google Apps ScriptでDateオブジェクトの複製や時刻のセットで注意すること
GASでGoogleカレンダーに複数の予定を簡単に登録できるツールを作成しています。今回はGoogle Apps ScriptでDateオブジェクトの複製や時刻のセットで注意することについてお伝えします。

どうぞお楽しみに!

連載目次:GASでカレンダーイベントをまとめて追加するツールを作る

Googleカレンダー便利ですよね!ただ、複数のイベントをいくつも追加しなければいけないとき…少し面倒です。そんなときのための便利ツールとして、スプレッドシートの入力情報をもとにカレンダーイベントをまとめて追加するツールを作成していきます。
  1. GASでデフォルトのGoogleカレンダーにイベントを追加する簡単なスクリプト
  2. GASでスプレッドシートの入力からGoogleカレンダーに複数のイベントを追加
  3. Google Apps ScriptでDateオブジェクトの複製や時刻のセットで注意すること
  4. Google Apps Scriptで日付関連の処理を関数化する例とその際のポイント
  5. Google Apps Scriptで関数の引数を省略した場合の挙動とデフォルト値の設定方法

タイトルとURLをコピーしました