見出し画像

GASでGoogleカレンダーのカレンダー IDから今日の予定をGoogleスプレッドシートに一覧で表示する方法(Google Apps Script)

今回はGoogleカレンダーのカレンダー IDから今日の予定をGoogleスプレッドシートに対して出力させます。

なお、Googleカレンダーから自分の今日の予定を出力する方法・コードについては以下で解説していますので、これらはわかっている前提でお話ししますことをご了承ください。

カレンダーIDとは、Googleカレンダーの設定を押し、「カレンダーの統合」という部分に書いてあるIDになります。

社内の共有カレンダーなどからはこのようなIDが取得できるはずで、このIDがあれば予定を引っ張ってくることができます。

Googleカレンダーの「設定」
カレンダーIDの取得

スプレッドシートに表示させたいIDを事前に取得しておくようにしてください。

コードの解説

冒頭で述べた通り、今回はカレンダーIDからの取得についてをメインで扱うので、そこ以外は解説しない点をご了承ください。

カレンダーIDから情報を取得するコードは以下のとおりです。

  // カレンダーIDを使用してカレンダーを取得
  var calendarId = 'ja.japanese#holiday@group.v.calendar.google.com';
  var calendar = CalendarApp.getCalendarById(calendarId);

  // 今日の日付を取得
  var today = new Date();

  // カレンダーの予定を取得
  var events = calendar.getEventsForDay(today);
var calendarId = 'ja.japanese#holiday@group.v.calendar.google.com';

ここでは、取得したいカレンダーのIDを指定しています。
※今回は日本の祝日カレンダーのIDを使用しています。

var calendar = CalendarApp.getCalendarById(calendarId);

CalendarApp.getCalendarByIdメソッドを使用して、指定されたIDのカレンダーを取得しています。このメソッドは、指定したIDに対応するGoogleカレンダーのオブジェクトを返します。

  var today = new Date();

new Date()を使って現在の日付と時刻を含む新しいDateオブジェクトを作成しています。
new Date()は、スクリプトが実行される時点での日付と時刻(年、月、日、時、分、秒)を自動的に取得します。ここでは、todayという変数にこの日付が保存されており、これを使用して現在の日の予定を取得します。

var events = calendar.getEventsForDay(today);

calendar.getEventsForDay(today)メソッドを使用して、today(現在の日付)に予定されているイベントを取得しています。
calendarは、指定されたGoogleカレンダーを参照するオブジェクトで、getEventsForDayメソッドはその日のすべてのイベント(予定)を配列として返します。

取得する日付を今日ではなく明日にする方法

現在、以下のコードで今日の予定を取得しています。

  // 今日の日付を取得
  var today = new Date();

  // カレンダーの予定を取得
  var events = calendar.getEventsForDay(today);

これを明日にする場合は以下のようにコードを変更します。

  var tomorrow = new Date();
  tomorrow.setDate(tomorrow.getDate() + 1);

  var events = calendar.getEventsForDay(tomorrow);

コード全体

今回のGoogleカレンダーのカレンダー IDから今日の予定をGoogleスプレッドシートに一覧で表示するコード全体は以下のようになります。

ここから先は

1,212字

¥ 100

この記事が気に入ったらサポートをしてみませんか?