gmail에서 달력의 데이트 자동 생성 및 삭제
너 뭐 했어?
개시하다
한 사람이 계속 싸우면 발전이 전혀 없고 개회비를 기념하기 위해 입회비가 줄어든다지구골프대학.
월액제는 출입이 자유로워 자주 가지만 골프 수업 예약은 달력에서 수작업으로 하기가 번거롭다.
다른 회원들이 취소하고 빈칸으로 바꾸려는 등의 이유로 취소했다가 다시 예약하는 경우가 많았다.
예약·취소 알림 메일이 비워져 있어 달력에 예약을 자동 제작할 수 있다는 생각도 들지만...
종료 시간이 기재되지 않아 자동 제작되지 않았다.
안 될 것 같으면 직접 쓰면 되잖아. 그래서 찾아보면 되지. 그래서 처음으로 GAS를 만졌어.
메일에서 달력에서 데이트 만들기 및 삭제
GAS를 만질 때 참고Gmail에서 GAS를 사용하여 Google Calendar에 자동 로그인.
스크립트는 여기.입니다.
대상의 메일은 다음과 같다.xx xx 様
お申込みありがとうございます。
下記日程でレッスンの受付をいたしました。
日時:2021年xx月xx日(x) xx:00~
お問い合わせは下記までご連絡ください。
------------------------------------------------
アースゴルフxxxx
TEL : xx-xxxx-xxxx
E-MAIL : [email protected]
------------------------------------------------
GAS 만들기
GAS를 만질 때 참고Gmail에서 GAS를 사용하여 Google Calendar에 자동 로그인.
스크립트는 여기.입니다.
대상의 메일은 다음과 같다.
xx xx 様
お申込みありがとうございます。
下記日程でレッスンの受付をいたしました。
日時:2021年xx月xx日(x) xx:00~
お問い合わせは下記までご連絡ください。
------------------------------------------------
アースゴルフxxxx
TEL : xx-xxxx-xxxx
E-MAIL : [email protected]
------------------------------------------------
GAS 만들기
초기 실행 시 허용 권한
클릭
実行
클릭
権限を確認
클릭
詳細
클릭
<プロジェクト名>(安全でないページ)に移動
<プロジェクト名>が Google アカウントへのアクセスをリクエストしています
로 표시되고 許可
예약 메일에서 자동으로 계획 만들기
이 부분은 기본적으로 원형을 유지하고 처리는 다음과 같다.
query 단서 가져오기 지정하기
const threads = GmailApp.search(query, 0, 5);
단서의 모든 정보를 확인하다
for (var i in threads) {
const thread = threads[i];
const messages = thread.getMessages()
for (var j in messages) {
// 処理
}
}
별표가 없는 경우 다음과 같이 처리한다.
DATE_PREFIX
(i.e. 日時:
) if (!messages[j].isStarred()) {
callback(messages[j])
label.addToThread(thread)
messages[j].star()
}
자동 처리 후 스타를 여는 게 불편할 것 같아 반복 실험을 해봤지만압축 파일과 라벨이 라인에 주어졌기 때문에 사용할 수 없어서 좌절했습니다.
하루 동안 여러 통의 메일을 보내지 않으면 라인이 생기지 않는다는 것을 알고 라벨만 붙이면 된다.
취소 메일에서 데이트 자동 삭제
계획을 세울 수 있다면 삭제할 수도 있겠지...라고 생각하고 착수했다.
처리는 전항과 마찬가지로 달력에서 데이트를 만드는 부분만 다르다.
삭제는 다음과 같이 처리됩니다.( deleteEvent )
지정한 시간대의 이벤트 가져오기
var calendarEvents = calendar.getEvents(startTime, endTime);
각 이벤트의 제목 확인
if (calendarEvent.getTitle() == TITLE) {
해당 제목의 이벤트 삭제
calendarEvent.deleteEvent()
트리거 설정
실행할 함수를
main
로 유지하고 이벤트의 원본을 時間主導型
로 설정합니다.매번 우편물을 받을 때마다 촉발할 수 없기 때문에 이런 대응 조치를 취했다.
const의 샘플
const 대상 메일에 따라 설정해야 한다.
이번 지구골프학원의 상황은 다음과 같다.
const QUERY_RESERVE = 'subject:(レッスンの予約が完了しました。)'
const QUERY_CANCEL = 'subject:(レッスンの予約キャンセルが完了しました。)'
const TITLE = "ゴルフレッスン"
const LABEL = "アースゴルフアカデミー"
const DATE_PREFIX = "日時:"
감상
Ref.
Reference
이 문제에 관하여(gmail에서 달력의 데이트 자동 생성 및 삭제), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/yoshi65/items/126cc886754a00076c5a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)