広告

【直ぐに使える】Google apps scriptからカレンダー登録|-期間指定編-

2017年12月13日

Google apps scriptからカレンダーへ登録するイベントの期間を指定出来たら・・

スケジュールのブッキングもひと目で分かりますね。

あひる
あひる
イベント開始日と終了日を、スプレッドシートから登録できるの?
ううこ
ううこ
そのとおり。

今回はGoogle apps scriptからカレンダー登録-期間指定編-をご紹介致します。

Google apps scriptからカレンダーへ登録|期間指定をしてみよう

前回Google apps scriptからカレンダーへ終日イベントを登録する方法 をご紹介しました。

今回はイベントを終日登録ではなく

  • イベントの開始日
  • イベントの終了日

と期間を指定した登録を行っていきます。

大まかには

  1. 登録するカレンダーIDを設定
  2. イベントのタイトル・開始日・終了日を設定
  3. createAllDayEventにてイベント登録

という手順です。

先ずは冒頭GIFで使用したscriptをご参照下さい。↓

/*カレンダーへ期間指定したイベントを登録*/
function create2(){
//登録するカレンダーIDを呼び出してeventへ格納
var event = CalendarApp.getCalendarById('◯◯◯@gmail.com');
//イベントのタイトルをtitleへ格納
var title = 'お泊り♡'
Logger.log(title);
//イベントの開始日をstartへ格納
var start = new Date('2017/12/25');
Logger.log(start);
//イベントの終了日をendへ格納
var end = new Date('2017/12/27');
Logger.log(end);
//createAllDayEventでカレンダーへイベントを登録
event.createAllDayEvent(title,start,end);
}
上記コードの○○○@gmailに指定のアドレスを設定すれば、コピペで直ぐに使えます。

あひる
あひる
う”...今回もハードル高そうだよ...
ううこ
ううこ
終了日の設定が増えただけだ。前回同様にcreateAllDayEventメソッド使って登録する。また1つずつ解決していこう。

Google apps scriptから期間指定されたイベントをカレンダー登録する3つの手順

手順1. GASからイベント登録するカレンダーIDを指定

最初に CalendarApp でカレンダーを呼び出し、 getCalendarById でカレンダーIDを指定します。

/*GASからカレンダーIDを指定するsample*/
//登録するカレンダーIDを呼び出してeventへ格納
var event = CalendarApp.getCalendarById('○○○@gmail.com');

あひる
あひる
確かCalendarAppとgetCalendarByIdをドット「.」で繋いで、、IDはGmailを指定するんだっけ
ううこ
ううこ
ここの設定は後々使うので変数宣言しておくと良い。

参照:CalendarApp / getCalendarById

手順3. イベントのタイトル・開始日・終了日を設定

次にカレンダーに登録するイベントの

  • タイトル
  • 開始日
  • 終了日

を変数宣言します。

/*タイトル・開始日・終了日を格納sampl*/
//イベントのタイトルをtitleへ格納
var title = 'お泊り♡'
Logger.log(title);
//イベントの開始日をstartへ格納
var start = new Date('2017/12/25');
Logger.log(start);
//イベントの終了日をendへ格納
var end = new Date('2017/12/27');
Logger.log(end);
POINT!

ここで設定したタイトル・開始日・終了日はこの後の createAllDayEvent メソッドのなかに格納して使います。

あひる
あひる
タイトルはシングルクオテーションで囲って、開始日・終了日はnew Dateでデータ型に換算して・・
ううこ
ううこ
日付けもシングルクオテーションで囲っておこう

本記事ではそれぞれ

  • タイトル=title
  • 開始日=start
  • 終了日=end

といった変数に開始日や終了日を格納しました。

手順3. createAllDayEventで手順2をイベント登録

最後に createAllDayEvent でイベントをカレンダーへ登録します。

createAllDayEvent(title, startDate, endDate)

タイプ 説明
title String イベントのタイトル
startDate Date イベントが開始される日付
(曜日のみが使用され、時間は無視されます)
endDate Date イベントが終了した日付
(曜日のみが使用され、時間は無視されます)

引用元:createAllDayEvent

先ほど設定した各変数を

  • event =カレンダーIDを取得
  • title=イベントのタイトル
  • start =イベントの開始日
  • end=イベントの終了日

createAllDayById に格納すればOKです。

/*変数をcreateAllDayByIdに格納sample*/
//createAllDayEventでカレンダーへイベントを登録
event.createAllDayEvent(title,start,end);
あひる
あひる
よし、繋げたぞ。動くかな...ドキドキ

手順1~3を繋げたものがコチラです↓

/*カレンダーへ期間指定したイベントを登録*/
function create2(){
//登録するカレンダーIDを呼び出してeventへ格納
var event = CalendarApp.getCalendarById('◯◯◯@gmail.com');
//イベントのタイトルをtitleへ格納
var title = 'お泊り♡'
Logger.log(title);
//イベントの開始日をstartへ格納
var start = new Date('2017/12/25');
Logger.log(start);
//イベントの終了日をendへ格納
var end = new Date('2017/12/27');
Logger.log(end);
//createAllDayEventでカレンダーへイベントを登録
event.createAllDayEvent(title,start,end);
}

これを実行してみると...

あひる
あひる
やったwお泊りイベントが設定できた//
ううこ
ううこ
よくやったアヒルん(アヒルって宿泊の概念があるのか・・)

【コピペでOK!】Google apps scriptでカレンダーに登録しよう!-終日編-

Google apps scriptから期間指定されたイベントをカレンダー登録. まとめ

GASを使って指定したイベント期間をカレンダー登録してみましたが、無事に設定出来ましたか?

前回記事から少しだけ派生しただけなので、直ぐに作り終えられたのではないでしょうか。

  1. 登録するカレンダーIDを設定
  2. イベントのタイトル・開始日・終了日を設定
  3. createAllDayEventにてイベント登録

あひる
あひる
createAllDayEventメソッドってスゴイ便利だね
ううこ
ううこ
設定する内訳が分かればさらに詳細なイベントを設定できるぞ

というわけで次回はカレンダー登録するイベントに「場所・説明」を追加する方法をご紹介いたします。

OYAKUN
OYAKUN
例えば開始日を'170101’、終了日を'180101’に設定すれば一度に一年分のスケジュールも登録できますヨ♪

関連記事: Google apps scriptでカレンダーへイベントの場所・説明を登録する3つの手順
関連記事: 【コピペでOK!】スプレッドシートとカレンダーを連携してイベントを一括登録する方法
関連記事: 【コピペでOK!】Google apps scriptでカレンダーに登録しよう!-終日編-
関連記事: 【コピペで完了】スプレッドシートからメール送信!スクリプトで一発解決!