입문 Google AppsScript 취업 일정을 누출없이 캘린더에 반영하고 싶다 (전반)

취활한 어떤 말하고 싶다



대학생에게 갑자기 나타나는 큰 벽. 이렇게 일정 관리.
지금 바로 취활생의 지원을 하고 있는 것도 있습니다만, 피부감 1할 정도가 스케줄 미스로 전형봉에 흔들리는군요…

새로 수첩을 사기 쉬운



・형태로부터! 그리고 의지하고 좋은 수첩 구입
·하지만 그다지 활용할 수 없다.
・메모장으로 좋았던 것은… 그리고 나서 깨닫는다.

일정이 너무 많아 수첩에 일정이 끊어지지 않습니다.



・면담 장소, 시간, 소지품을 쓸 수 없다
· 이미 좋기 때문에 나중에 쓰는 것처럼 영원히 쓸 수 없습니다.

인터뷰 장소 실수



·있는 것은 별로 아니지만 있습니다.
・설명회나 1차 전형은 본사이거나 그렇지 않다
・최악의 경우, 장소 잘못해 제일 지망의 기업의 전형에 늦는 것도…
즉 취활하고 스케줄 관리가 생명줄이지만 엄청 귀찮아요.

그래서 이번에는 절대로 스케줄 관리를 실수하지 않는 최강의 스케줄러를 GoogleAppScript를 사용해 구현해 나갈 것입니다.

이번 성과물의 이미지



1. 기입용 스프레드시트




다운로드는 여기
※표시된 스프레드시트를 반드시 복사하여 사용해 주세요

2. 표시되는 캘린더 화면




・스프레드시트에 기재된 것이 자동적으로 반영되도록 되어 있습니다
・전형 전의 예정이 기재되어, 전형 결과 기다리고, 종료 상황의 것은 캘린더에의 반영이 되지 않게 되어 있습니다

GAS(Google Apps Script)란?




・기본적으로는 JavaScript에 준거해 코드를 써 나가는 것이 가능
・Google의 각종 어플리와 제휴를 할 수 있어 여러가지 라이프 해킹이 가능하게
・익숙해지면 영업직이나 문계를 변명하지 않고 사용할 수 있다
・(프런트 엔드만의) HP 제작 등, 프로그래밍? 배울 정도라면 GAS를 추천합니다.

완제품



ss2cal.js
function ss2cal() {

  const calendar = CalendarApp.getDefaultCalendar();
  const spreadSheetId = ''
  const spreadSheet = SpreadsheetApp.openById(spreadSheetId);
  const sheet = spreadSheet.getSheetByName('Master');
  const lastRow = sheet.getLastRow();

  //---ここまででカレンダーとスプレッドシートの定義は完了---
  //---以下では重複を防ぐために既にタイトルに【就活】と記載のあるイベントを削除する
  const today = new Date();
  const schedules = calendar.getEvents(today, new Date(today.getFullYear(), today.getMonth(), today.getDate() + 90));

  for (var i = 0; i < schedules.length; i++) {
    const eventName = schedules[i].getTitle();
    if (eventName.indexOf("【就活】") != -1) {
      schedules[i].deleteEvent();
      //---indexOf()文字列の検索が可能。今回はタイトルに【就活】と付くものを探して自動で削除している
    };
  };

  for (var i = 2; i <= lastRow; i++) {
    const status = sheet.getRange(i, 1).getValue();
    const title = '【就活】' + sheet.getRange(i, 2).getValue() + sheet.getRange(i, 3).getValue();
    const time = new Date(sheet.getRange(i, 5).getValue());
    const delta = new Date(sheet.getRange(i, 6).getValue());
    const startTime = new Date(sheet.getRange(i, 4).getValue())
    startTime.setHours(time.getHours())
    startTime.setMinutes(time.getMinutes())
    const endTime = new Date(startTime)
    endTime.setHours(endTime.getHours() + delta.getHours());
    endTime.setMinutes(endTime.getMinutes() + delta.getMinutes());
    const option = {
      location: sheet.getRange(i, 7).getValue()
    };

    if (status == "選考前") {
      calendar.createEvent(title, startTime, endTime, option);
    }
  };
};

프로그래밍 흥미는 없지만 스케줄 관리 조심하고 싶다고 사람은 여기까지도 상당히.
구조까지 궁금해! 라는 사람은 여기

좋은 웹페이지 즐겨찾기