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

ลงมือทำ
ขั้นตอนแรก ต้องลองทำ 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