📅

Google カレンダーから予定を取得する

2024/06/04に公開
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