GoogleAppsScript(GAS)で1日の予定をスプレッドシートに出力する方法

スポンサーリンク
Google Apps Script

誰でもできるように本当に1から手順を記載するため、わかる方は飛ばし飛ばしでみて頂ければと思います。

やりたいこと

以下のようなカレンダーの1日の情報を、スプレッドシートに一覧で出力できるようにします。

出力結果としては以下のようなイメージ。

ここから手順

Googleのホーム画面からスプレッドシートを選択

新しいスプレッドシートを作成 から空白を選択

準備として、項目名を記載しておく

A1:タイトル
B1:開始時刻
C1:終了時刻

B、C列は表示形式>数字>時間に設定しておく

拡張機能バーのApps Scriptを選択

以下の画面が出てくる

今後のためにタイトルを変更しておく。
無題のプロジェクトをget calendar info等に変更しておく。

カレンダーとの連携するスクリプトを記述

エディタ内に以下を記述する。

const CALENDAR_ID = '**********'; //カレンダーID(自分のGoogleアカウントのメールアドレス)

//カレンダー情報出力の関数
function getCalendarEvents() {

  const calendar = CalendarApp.getCalendarById(CALENDAR_ID);
  console.log(calendar.getName());
}

「実行」押下でポップアップが出現するので、「権限を確認」を選択

アカウントの選択で自分のアカウントを選択

アカウントへのアクセスを求められるので「許可」を選択

実行ログに自分のユーザー名(メールアドレス)が出力されていれば連携OK

改めて以下をエディタに記述して実行

const CALENDAR_ID = '**********'; //カレンダーID(自分のGoogleアカウントのメールアドレス)

//カレンダー情報出力の関数
function getCalendarEvents() {
  const calendar = CalendarApp.getCalendarById(CALENDAR_ID);  
  const startTime = new Date('2021/12/27 00:00:00'); //出力したい開始日付
  const endTime = new Date('2021/12/28 00:00:00');  //出力したい終了日付
   
  const events = calendar.getEvents(startTime, endTime);
 
  const values = [];
  for(const event of events){
    const record = [
      event.getTitle(),
      event.getStartTime(),
      event.getEndTime()
    ];
    values.push(record);
  }
 
  SpreadsheetApp.getActiveSheet().getRange(2, 1, values.length, values[0].length).setValues(values);
  console.log('finished');
}

スプレッドシートに1日のカレンダー情報が記載されている!

終わりに

このままだと毎回手動実行しないといけなかったり、日付も毎回指定しないといけなかったりするため、改良は続けていくつもりです。
読んでいただきありがとうございました!

大変参考にさせてもらったサイト

GASで仕事の生産性を測定して振り返るためのGoogleカレンダーの使い方
https://tonari-it.com/google-calendar-productivity/

コメント

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