GASでカレンダーの予定(イベント)情報を取ってくる書き方について解説していきます。
グーグルカレンダーの予定を取得するプログラムの書き方
特定の期間内にあるカレンダーの予定名を取ってくるプログラムを例に説明します。
コードとしては下記の通りになります。
function myFunction(){
const calendar = CalendarApp.getDefaultCalendar()
const startTime = new Date("2020/06/01")
const endTime = new Date("2020/07/01")
const events = calendar.getEvents(startTime, endTime)
for(let event of events){
Logger.log(event.getTitle())
}
}
やっている内容としては、スプレッドシートに紐づくアカウントのカレンダー情報を取ってきて、
一か月分の予定情報を取得しています。
CalendarApp.geteDefaultCalendar()でスプレッドシートに紐づくカレンダーを取得します。
そのカレンダーオブジェクトからgetEvents関数を呼びだすことによって予定の一覧を取ってきています。
また、イベントオブジェクトからgetTitle関数を呼び出すことでタイトルを出力しています。
ある特定のカレンダー情報を取りたいというときにはそのカレンダーを指定することも可能です。
その場合には次のようにします。
function myFunction(){
const calendarId = "カレンダーIDを記載"
const calendar = CalendarApp.getCalendarById(calendarId)
略
CalendarApp.getCalendarById関数を使うことによって特定のカレンダー情報のみを取ってくることができます。
カレンダーIDの調べ方はこちらの記事を参考にしてください。

先ほどは、予定のタイトルだけを取得しましたが、他にも情報を取ることができますので、
見ていきましょう。
グーグルカレンダーイベントの詳細を取得する
カレンダー予定のタイトル、開始時間、終了時間、説明、場所とイベントIDの情報を取ってみます。
function myFunction(){
const calendar = CalendarApp.getDefaultCalendar()
const startTime = new Date("2020/06/01")
const endTime = new Date("2020/07/01")
const events = calendar.getEvents(startTime, endTime)
for(let event of events){
Logger.log(event.getTitle())
Logger.log(event.getStartTime())
Logger.log(event.getEndTime())
Logger.log(event.getDescription())
Logger.log(event.getLocation())
Logger.log(event.getId())
}
}
タイトルを取得する際にはgetTitle
開始時間はgetStartTime()
終了時間はgetEndTime()
説明はgetDescription()
場所はgetLocation()
イベントIDはgetId()
を使うことによってデータを取得することができます。
時間に関しては取ってきたときに日付型のオブジェクトになっているので、
文字列などに直したい場合にはこちらの記事を参考にしてください。
https://blog.8basetech.com/google-apps-script/gas-formatdate/