Google App Script – Gmail to Calendar

สวัสดีครับ วันนี้จะมาเล่าประสบการณ์ใช้ google app script สร้าง event calendar เมื่อมี new email

โจทย์มีอยู่ว่า ทุกครั้งที่ผมออกกำลังกาย ผมจะ email workout summary ซึ่งมันจะสรุป เวลาที่ใช้ จำนวนแคลที่ได้ โซนหัวใจ และอื่นๆ
ทีนี้ ผมอยากเห็นเป็นรูปแบบ calendar เพราะจะได้รู้ว่า วันไหนออกกำลังกายไปเท่าไหร่ ออกตอนเช้าหรือ ตอนเย็น บลาๆ

ตัวอย่าง email workout summary

ลงมือทำ

ขั้นตอนแรก ต้องลองทำ Diagram ก่อน

Search Mail

ผมใช้วิธี search จาก label ซึ่งผมจะไปเพิ่ม setting gmail ให้มี filter label ก่อน ด้วย
from:(moves@myzone.org) subject:(Your Myzone Workout Summary)
ดังนั้นเมื่อมี email เข้ามาใหม่ แล้วตรงเงื่อนไขแล้ว gmail จะเพิ่ม label ให้อัตโนมัติ

Process

line3: search email ด้วย label
line6: เมลไหนที่หยิบมาอ่านแล้ว ต้องลบ label ทิ้งด้วย เพราะป้องกันการอ่านซ้ำ
line10-26: ตัดตกแต่ง content email เอาเฉพาะเนื้อหาที่เราต้องการ
line28-31: getCalendarById จากนั้น createEvent

Fetch Everyday

ตั้งค่าให้ Google App Script มี trigger เพื่อทำงานทุกวัน

Result

Code

https://gist.github.com/mynameiskreang/d3fcd5c1fcbcf8b5ab08509955a25706