
photo credit: wuestenigel Marked and written holiday in a calendar via photopin (license)
みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。
GASでGoogleカレンダーに複数の予定をまとめて追加するスクリプトを作成する方法をお伝えしています。
前回の記事はこちら。

Googleカレンダーに一つのイベントを追加する簡単なスクリプトについて紹介しました。
今回は、GASでスプレッドシートに入力した内容をもとに、複数のイベントを追加できるようにしていきたいと思います。
では、行ってみましょう!
前回のおさらい
前回は、GASでデフォルトのカレンダーに単一のイベントを追加する方法をお伝えしました。
イベントを追加するメソッドは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オブジェクト化しています。
このスクリプトを実行すると、以下のようにイベントが追加されたことを確認できました。
まとめ
以上、GASでスプレッドシートの入力をもとにGoogleカレンダーに複数のイベントを追加するスクリプトを紹介しました。
次回以降、このツールをもう少し便利にしていきたいと思います。

どうぞお楽しみに!



