getDefaultCalendar – 自分の標準カレンダーを取得する
自分の標準のカレンダーを操作するにはgetDefaultCalendarメソッドを使います。
const getCalendar = () => {
const calendarApp = CalendarApp
const defaultCalendar = calendarApp.getDefaultCalendar()
const defaultCalendarName = defaultCalendar.getName()
console.log(defaultCalendarName)
}
実行結果

標準のカレンダーを取得できました。これをデフォルトカレンダーと呼びます。
デフォルトカレンダーってなに?
デフォルトカレンダーとは、自分のGoogleアカウントで利用できる標準のカレンダーです。
標準ってなんじゃ?という話ですよね。
Googleカレンダーでは用途や目的に合わせて標準以外の自分のカレンダーをつくれます。
元からある自分のカレンダーがデフォルトカレンダーです。
↓こういうことです。

赤枠で囲っているのが標準カレンダー(デフォルトカレンダー)です。
その下にTodoリスト、誕生日、練習用とあるのが標準カレンダー(デフォルトカレンダー)以外です。
そのうち、「練習用」と名前のついているのが自分でつくったカレンダーです。これは標準カレンダー(デフォルトカレンダー)ではないです。
カレンダーのつくり方
用途や目的に合わせて標準カレンダー以外のカレンダーをつくることができます。
「練習用」というカレンダーをつくってみましょう。
他のカレンダーの「+」とクリック

「新しいカレンダーを作成」を選択

カレンダーの名前をつけて「カレンダーを作成」をクリック(ここでは名前は「練習用」)

これでオーケーです。
「練習用」カレンダーが追加される

次は、今つくった「練習用」カレンダーを取得します。
getCalendarById – カレンダーIDからカレンダーを取得する
「練習用」カレンダーは標準カレンダーではないのでgetDefaultCalendarでは取得できません。
こういうときはgetCalendarByIdを使います。
const getCalendar = () => {
const calendarApp = CalendarApp
const practiceCalendar = calendarApp.getCalendarById('カレンダーIDが入ります')
const practiceCalendarName = practiceCalendar.getName()
console.log(practiceCalendarName)
}
実行結果

このように「練習用」カレンダーの名前を取得できました。
では、カレンダーIDはどこにあるのでしょうか?
カレンダーIDはどこにある?
マイカレンダーの一覧で、カレンダー名の右にマウスを持ってくると「・・・」というメニューがあらわれます

ひらいたメニューの「設定と共有」を選択します

「カレンダーの統合」のカレンダーIDをコピーします。(下の画像はIDの一部をマスクしています)

これでカレンダーIDの取得が完了です。
上で書いたコードの「カレンダーIDが入ります」の部分にコピーしたIDをペーストすればオッケー
祝日のカレンダーを取得する
祝日のカレンダーもカレンダーIDから取得します。
祝日のカレンダーIDはここにあります。
「日本の祝日」にマウスカーソルをあわせて「・・・」メニューをクリック

「設定」を選択

「カレンダーの統合」にあるカレンダーIDをコピー

ではコードに祝日のカレンダーIDを入れます。
const getCalendar = () => {
const calendarApp = CalendarApp
const holidayCalendar = calendarApp.getCalendarById('ja.japanese#holiday@group.v.calendar.google.com')
const holidayCalendarName = holidayCalendar.getName()
console.log(holidayCalendarName)
}
実行結果

これで祝日のカレンダーを取得できました。
取得した祝日のカレンダーから祝日の名称を取得するには?
今回の記事の目的からは外れますが、取得した祝日のカレンダーから祝日の名称を取得してみます。
2024年5月1日から2024年5月31日までの祝日の名称を取得
const getCalendar = () => {
const calendarApp = CalendarApp
const holidayCalendar = calendarApp.getCalendarById('ja.japanese#holiday@group.v.calendar.google.com')
const startTime = new Date(2024, 4, 1)
const endTime = new Date(2024, 5, 0)
const holidayEvents = holidayCalendar.getEvents(startTime, endTime)
const holidayNames = holidayEvents.map(holidayEvent => holidayEvent.getTitle())
console.log(holidayNames)
}
実行結果

getEventsメソッドに取得する予定の範囲(startTimeからendTimeまで)を指定します。
すると、予定の配列(holidayEvents)が取得できます。
mapメソッドで配列から要素を一つずつ取り出し、予定のタイトルをgetTitleメソッドで取得しています。
2024年は「こどもの日 振替休日」があります。
こどもにマジサンキュー。
