📅
Google カレンダーから予定を取得する
calender.gs
/**
* メールアドレス(カレンダーID)と日付を指定して予定を取得する
* @param {string} mailAddress
* @param {Date} date
*/
function getEventFromGmail(mailAddress, date) {
const calender = getCalender(mailAddress);
const events = calender.getEventsForDay(date);
return events.map(event => {
return {
title: event.getTitle(),
startTime: event.getStartTime(),
endTime: event.getEndTime(),
};
});
}
/**
* グーグルカレンダーを取得する
* 取得できない場合は閲覧設定をする(workspace内、公開カレンダー用)
* 他人のカレンダーは取得できない
* @param {string} address
* @throws カレンダー取得失敗
*/
function getCalender(address) {
const calender = CalendarApp.getCalendarById(address);
if (!!calender) return calender;
const cal = CalendarApp.subscribeToCalendar(address);
if (!!cal) throw new Error(`${address}のカレンダー取得に失敗しました`);
return cal;
}
Discussion