GASでカレンダーからイベントIDを取得する方法

GASでカレンダーのイベントIDってどうやって取得するんだろ?公式ドキュメントを読んでも、今ひとつわからなくて…。
猫男
猫男
catman
catman
よし、catmanが「GASを使ってカレンダーからイベントIDを取得する方法」について教えてあげよう。

GASでカレンダーにアクセスする基本

GAS(Google Apps Script)を使えば、Googleのカレンダーに容易にアクセスできる。まずはその手順を見ていこう。

GASでカレンダーサービスを使ってみよう

GASでは、CalendarAppクラスを利用してGoogleカレンダーを操作できる。

まず、カレンダーサービスを取得しよう。以下のサンプルではカレンダーのインスタンスを取得する方法を示す。

 const calendar = CalendarApp.getDefaultCalendar(); 

ここではユーザーのデフォルトのカレンダーを取得している。もし特定のカレンダーを指定したい場合は、CalendarApp.getCalendarById(calendarId)を使うと良いさ。

特定の日付のイベントを取得する方法

次に特定の日付のイベントを取得してみよう。

 const startDate = new Date('2023-10-01');
const endDate = new Date('2023-10-02');
const events = calendar.getEvents(startDate, endDate); 

ここでは、2023年10月1日から2023年10月2日までのイベントを取得している。このメソッドで取得したイベントは、CalendarEventオブジェクトとして利用可能だ。

GASでカレンダーのイベントIDを取得する方法

イベントIDを取得するためのステップを見ていこう。イベントIDはイベントを一意に識別するためのもので、他の操作を行う際に非常に重要となるぞ。

取得したイベントからIDを取り出す方法は以下の通りだ。

 events.forEach(event => {
  const eventId = event.getId();
  Logger.log('Event ID: ' + eventId);
}); 

これは全てのイベントをループ処理で回し、各イベントのIDを取り出している。この方法を使えば、イベントIDを簡単に取得することが可能だ。

 

イベントIDを取得したら、そのIDを使って何ができるんだろ?
猫男
猫男
catman
catman
イベントIDを使えば、特定のイベントの詳細を更新したり、削除したりすることができる。そのため、GASでカレンダー管理を効率化するには欠かせない要素さ。

まとめ:GASでイベントIDを効率よく取得しよう

  • GASのCalendarAppクラスを活用してカレンダーへアクセスする
  • getEventsメソッドで特定の日付のイベントを取得
  • 取得したイベントからgetId()メソッドを使ってイベントIDを取り出す
これでイベントID取得の手順がわかったよ!GASって本当に便利だね。
猫男
猫男
catman
catman
そうだね。慣れれば更に高度な操作も可能になるから、ぜひ挑戦していこう!

 

練習問題

GASを使って指定したカレンダーIDのイベントIDを取得するスクリプトを書いてみよう。次の条件で実装してみてくれ。

  1. カレンダーIDは任意で指定すること
  2. 対象期間は2023年12月25日から2023年12月26日までとすること
  3. 取得したイベントIDをログに出力すること

 

解答・解説

const calendarId = '指定のカレンダーIDを入力'; 
const calendar = CalendarApp.getCalendarById(calendarId); 
const startDate = new Date('2023-12-25'); 
const endDate = new Date('2023-12-26'); 
const events = calendar.getEvents(startDate, endDate);

events.forEach(event => { 
  const eventId = event.getId(); 
  Logger.log('Event ID: ' + eventId); 
}); 

このスクリプトでは、CalendarApp.getCalendarById(calendarId)を使用して、カレンダーを指定して取得している。getEventsメソッドで指定期間のイベントリストを得て、forEachメソッドで各イベントのgetId()を使ってIDをログ出力している。