
今回はGASでスプレッドシートの値をGoogleカレンダーに入力する方法について解説していきます。
いちいちGoogleカレンダーに予定を入力するのではなくスプレッドシートに予定を入力してまとめてGoogleカレンダーに入力することで業務効率化を図るといったコードとなります。
コードはこんな感じです。(コピペも可)
function myFunction() {
// 現在開いているスプレッドシートを取得
var ss = SpreadsheetApp.getActiveSpreadsheet();
// 現在開いているシートを取得
var sheet = ss.getActiveSheet();
//カレンダーIDとカレンダーを取得
var id = "Googleアカウントのメールアドレスを入れる";
var calendar = CalendarApp.getCalendarById(id);
//最終行を取得
var lastRow = sheet.getLastRow();
//セルの値を取得し入力を繰り返す
for(var i = 3; i<=lastRow; i++){
//予定の名前を取得
var Name=sheet.getRange(i,2).getValue();
//予定の開始日時を取得
var start=sheet.getRange(i,3).getValue();
//予定の終了日時を取得
var end = sheet.getRange(i,4).getValue();
//カレンダーに取得した値を入力
calendar.createEvent(Name, start, end);
}
}
大分単純なコードなので初心者の方でもおすすめです。
実際の動き
実際の動きとしてはこのような、何も予定の入っていないカレンダーへ

スプレッドシートに「予定」「開始日時」「終了日時」を入力しコードを実行することで

予定を入力してくれるという動きになっています。

以外と便利なのでぜひ試してみてください。
コードの解説
ここからはコードの解説をしていきます。他の記事で紹介しているコードもあるのでそこの説明は省きます。
カレンダーの取得
まずはこちらのコードですが変数の「id」にGoogleアカウントのメールアドレスを代入しておりCalendarApp.getCalendarById()でカレンダーを取得しています。そして取得したカレンダーを変数「calendar」に代入しています。
//カレンダーIDとカレンダーを取得
var id = "Googleアカウントのメールアドレスを入れる";
var calendar = CalendarApp.getCalendarById(id);
入力する値を取得

スプレッドシートへの記載は上の画像の様に記載していて右から予定の名前、開始日時、終了日時としています。
for文の条件をfor(var i = 3; i<=lastRow; i++)として変数「i」に初期値を代入し変数「lastRow」で文字が入力されている最後の行まで繰り返す指定をしています。
for文についてわからない方はこちらの記事を参考にしてみてください。
そして以下のコードで実際にスプレッドシートの値を取得します。変数「Name」には予定の名前を代入、変数「start」には開始日時、変数「end」には終了日時を代入しています。
//予定の名前を取得
var Name=sheet.getRange(i,2).getValue();
//予定の開始日時を取得
var start=sheet.getRange(i,3).getValue();
//予定の終了日時を取得
var end = sheet.getRange(i,4).getValue();
カレンダーへ入力

そして上の画像の様にカレンダーへ入力しているコードがこちらになります。
//カレンダーに取得した値を入力
calendar.createEvent(Name, start, end);
calendar.createEvent();に予定の名前が入った変数「Name」開始日時が入った「start」終了日時をが入った「end」を指定して入力しています。
calendar.createEvent();の「calendar」の部分はカレンダーを取得した変数で、「createEvent();」の部分はカレンダーに予定を追加するメソッドとなっています。
基本的な書き方としてはこんな感じです。
createEvent(予定の名前,開始日時,終了日時);
他にも詳細を書いたり予定の参加者を書いたりできるので調べてみてください!
以上!