見出し画像

【GAS】Google Apps Script活用事例 自分が出席しないカレンダーの予定をグレーに変更するスクリプト


採用関連のお仕事をしていると、HRMOSなどをはじめとするATS連携などで自分が出席しない面接予定などがカレンダーを占有するようになってきます。

自分が出席しなければいけない会議と色分けを自動でやってくれたら便利だよなーと思って書きました。

/**
 * 
 * 自分が出欠しない予定をカレンダーの色をグレーに変える
 * 
 * 
 */
function setColorEvents() {
  const mailAddress = Session.getActiveUser().getEmail();
  console.log(`対象のメールアドレス:${mailAddress}`);
  
  const today = new Date();
  const targetDate = new Date();
  targetDate.setDate(targetDate.getDate() + 1);
 
  // 7日後までの予定
  const calendar = CalendarApp.getDefaultCalendar();
  const events   = calendar.getEvents(today, targetDate);
  events.forEach((event) => {
    const guestList = event.getGuestList(true);
    const isMyEmailIncluded = isMyEmailIncluded_(guestList, mailAddress);
    
    console.log(`予定名:${event.getTitle()}`);
    console.log(`出席者に自分の名前が含まれているか:${isMyEmailIncluded}`);

    if (!isMyEmailIncluded) {
      console.warn(`一致しないため、色を変更します`);
      event.setColor(CalendarApp.EventColor.GRAY);
    }
  });
}



/**
 * 
 * 自分のアドレスが含まれているかどうかを確認する
 * 
 */
function isMyEmailIncluded_(guestList, myEmail) {
  for (let guest of guestList) {
    if (guest.getEmail() === myEmail) {
      return true;
    }
  }
  // ループが終わっても一致しなかったら、falseを返す
  return false;
}

ATS(採用管理システム)とは、Applicant(応募者)Tracking(追跡)System(システム)の頭文字から「ATS」と呼ばれ、求人募集、応募受付や応募者との連絡調整、進捗管理などの採用業務にかかる作業の効率化や、採用力強化に向けて自社で蓄積した選考情報を分析するために利用するシステムです。


この記事が気に入ったらサポートをしてみませんか?