你的團隊在幹嘛?取得Google Canlendar資料-Canlender to CSV【附程式碼】

Ivan Yang
Google工具
Published in
Aug 29, 2022

主管,用數據管理團隊吧!

👉【行銷搬進大程式】給您更多實用文章與免費教學影片,附贈Python程式碼!

若您是業務主管,這個功能對於你的團隊有幾個幫助:

📌1.挖掘有潛力的業務

有些業務的個性喜歡長期經營客戶,每個培養的客戶要一段時間才會進單,但很有可能會因為時間過長,入行初期就因過不了考核而被資遣。但其實這樣的業務是具有長尾效應的,未來慢慢進單後,顧客的轉介紹甚至難以想像。

📌2.掌握團隊情況

同仁們時常東跑西跑,身為主管的你,職責就在於能讓底下的同仁業務工作更加順暢,幫他們排除問題,提升業務能力。但現實的情況是,同仁自己也不知道自己的狀況在哪裡,那自然也不會向你提問,但這些在數據上都看得出端倪。

開始前,先下載完整程式碼

👉第1步:開啟Google App Script

第一步是登入Google App Script,選用您想使用的Google帳號進行登入後,就可到達以下畫面。

之後點選右上角的按鈕「新專案」來建立一個全新的專案。

👉第2步:連接到Calender

接著在程式碼中建立了getCalender這個方法,這個是自行定義的方法,專門用來請求Calender所使用。

建立好getCalender方法後,就可以利用以下指令呼叫此方法:

eventCal = getCalender("你的日曆Token")

指令內的「你的日曆Token」取得方式,在設定選單中取得:

👉第3步:取得行程

取得行程的方式有很多,可以參考Google官方文件。而文章依照常用度,以下可以依照時間、作者、關鍵字等形式進行抓取:

📌依照時間

在eventCal.getEvents方法中輸入起始時間與結束時間,即可取得該時段中的所有行程,如範例的起始時間變數為longTimeAgo,而longTimeAgo變數的時間點是2020年7月16日0點0分,結束時間就是程式執行的此時此刻,藉此可以抓出從7月16日至今的所有資料。

/** 取得所有行程 */ 
var now = new Date();
var longTimeAgo = new Date(2020, 7, 16, 0, 0)
var allEvents = eventCal.getEvents(longTimeAgo, now) // 取得所有行程

📌依照作者

延伸使用時間的方式,在後方加入篩選條件。篩選參數的輸入是以Json的形式進行。因為在實務操作中,Calender會與同仁一同共編,每個人在同一個Calender中建立自己的行程。這項功能方便的從Calender中取出特定作者的資料,並且依照該作者的Mail。

var allEvents = eventCal.getEvents(longTimeAgo, now, {author: '作者@gmail.com'})

後方的Mail並不是隨意輸入,可以在Calender設定中找到「與特定使用者共用日曆」,裡面便列出所有參與編輯Calender的人,輸入的Mail也以此界定。

📌依照關鍵字

輸入活動標題的關鍵字,已進行相似匹配的搜查。如何檢視程式是否能如願抓到想要的程式呢?可以利用Calender上方的搜尋,若輸入的關鍵字能找出想要的行程,那說明這個關鍵字符合你的期待。

var allEvents = eventCal.getEvents(longTimeAgo, now, {search: '關鍵字'})

👉第4步:整理資料

考慮資料的完整性,抓取了「標題、ID、創建者、開始時間、結束時間、地址、描述」。每筆抓取下來的資料,因為轉換成CSV檔案需要用「,」做分格,因此必須在每個資料中穿插「,」,並在每筆資料結尾換行

👉第5步:存檔

存檔只用了兩行程式碼。首先DriveApp.getFoldersByName方法是要決定待會要儲存檔案的路徑,這並不是電腦本機端的位置,而是存在雲端硬碟中,因此需要選擇一個雲端硬碟的資料夾。

var folder = DriveApp.getFoldersByName("雲端資料的資料夾名稱").next();

folder.createFile便是存檔的動作了。後方參數中,可以輸入我們想要的檔案名稱,或者使用變數使其浮動。

var ff = folder.createFile("檔案名稱.csv",text,MimeType.PLAIN_TEXT);

👉完整執行

在執行前,務必先修改12行「你的日曆Token」、15行「開始的日期」、35行「雲端資料的資料夾名稱」。以上三個部分沒有修改,可能會導致程式執行異常。

另外也需要將執行的方法選擇為「myFunction」,myFunction才是主程式,執行後才會有所產出。

👉CSV檔亂碼排除

相信你一定興奮地把CSV檔案下載下來,並雙擊打開,發現竟出現如以下的亂碼:

解決的方式很簡單。先使用筆記本將該檔案開啟,選擇另存新檔,再覆蓋掉原本檔案前,將編碼選為「具有BOM的UTF-8」。如此一來,會發現亂碼全部都不見了!

完整程式碼:

👉想看更多Python實作教學影片【免費】👈

📌Python基礎課程

📌Line Bot 聊天機器人

📌行銷人轉職爬蟲王實戰|5大社群+2大電商

📌Telegram Bot 聊天機器人

📌實用工具

▶ 點此:https://marketingliveincode.com/
查看更多Python工具技巧、商業分析、教學影片

滿意我們餐點嗎?給點 Claps 吧👏👏
1. 我學習到了新的概念與工具 1–10+
2. 我理解了這篇內容所講述的工具與技巧 20–30+
3. 我可以將這篇的內容運用到學習和工作上20–30+

作者:楊超霆(行銷搬進大程式 創辦人)

--

--

Ivan Yang
Google工具

Marketing data analysis資深資料科學家。曾任中華電信AI專案講師、資策會AI講師、外貿協會講師、台科大行銷資料課程講師、就讀台科大資訊管理碩士班。著有《打造股市小秘書》《stp行銷策略之python商業應用實戰》。