구글 캘린더에 등록된 스케줄을 스프레드시트로 전송하는 방법에 대해 알아보자!

구글 캘린더에 등록된 스케줄을 스프레드시트로 전송하는 방법에 대해 알아보자!

Clock Icon2024.08.30

안녕하세요! 클래스메소드 금상원 입니다.
이번 블로그에서는 구글 캘린더에 등록된 스케줄을 스프레드시트로 전송하는 방법에대해 알아보도록 하겠습니다.

캘린더 ID를 확인하는 방법

스크린샷 2024-08-30 오후 4.23.10

먼저 스프레드시트로 전송할 스케줄이 있는 캘린더를 선택하고 「3개의 세로점」 이 있는 버튼을 클릭합니다.

스크린샷 2024-08-30 오후 4.23.48

「설정 및 공유」 를 클릭합니다.

스크린샷 2024-08-30 오후 4.24.08

아래의 「캘린더 통합」 에서 「캘린더 ID」 를 복사 해놓습니다.

스프레드시트로 데이터를 전송하는 방법

아래의 코드를 Google Apps Script 에서 실행합니다.
Google Apps Script 를 사용하여 스프레드시트에 데이터를 전송하는 방법은 아래의 블로그를 참고 해 주세요.

https://dev.classmethod.jp/articles/ksw-google-apps-script-spreadsheet/

아래의 코드에서 스프레드시트의 ID 와 스프레드시트 명을 입력하고, 위에서 복사한 캘린더 ID를 입력합니다.

function callender() {
  // 1. 스프레드 시트 가져오기
  const sourceSpreadsheetId = '스프레드시트 ID'; // 스프레드시트トID
  const sourceSheetName = '스프레드시트 명'; // 스프레드시트 명

  const sourceSpreadsheet = SpreadsheetApp.openById(sourceSpreadsheetId);
  const sourceSheet = sourceSpreadsheet.getSheetByName(sourceSheetName);

  // 2. 캘린더 ID 가져오기
  const sourceCalander = 캘린더 ID; //캘린더 ID 

  // 3. 가져올 데이터의 기간을 정하기
  const startTime = new Date('2024/08/01 00:00:00');
  const endTime = new Date('2024/09/01 00:00:00');
  const events = sourceCalander.getEvents(startTime, endTime); 

  // 4. 캘린더에서 가져온 데이터를 스프레드시트에 전송하기
  for (let i = 1; i < events.length + 1; i++) {
    sourceSheet.getRange('a' + i).setValue(events[i - 1].getTitle()); // 이벤트 명
    sourceSheet.getRange('b' + i).setValue(events[i - 1].getStartTime()); // 이벤트 시작시간
    sourceSheet.getRange('c' + i).setValue(events[i - 1].getEndTime()); // 이벤트 종료시간
  }
}

확인해보기

스크린샷 2024-08-30 오후 4.26.14

위의 캘린더에서 8월27일 오후 12:45-14:45 까지 스케줄이 설정되어있습니다.

스크린샷 2024-08-30 오후 4.32.10

위에서 확인한 스케줄 정보가 스프레드시트에 추가된것을 확인할 수 있습니다.

마무리

이번 블로그에서는 구글 캘린더에 등록된 스케줄을 스프레드시트에 전송하는 방법에 대해 알아보았습니다.
평소에 구글 캘린더를 이용하여 스케줄을 관리하고 스프레드시트에 기록하시는 분들께 조금이나마 도움이 되었으면 좋겠습니다.

참고자료

https://developers.google.com/apps-script/reference/calendar?hl=ko

https://qiita.com/nanako_t/items/1486ee2fb307fe7dba80

この記事をシェアする

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.