業務?你到底是真忙還是瞎忙?
👉【行銷搬進大程式】給您更多實用文章與免費教學影片,附贈Python程式碼!
不管我們是在安排學習計畫,還是業務活動,時間的規畫都是非常重要的。在筆者業務的經驗中,業務最值錢的就是時間,因為業務沒有所謂的上下班,工作即是生活,因此做業務更需要時間上的調配,否則只會覺得無時無刻都在上班。
若我們能將Google Sheets的行程表,自動新增到Google Calendar裡面,此後便可以在Google Sheets上面進行分析,而Google Calendar只是用來快速查看,或者與同事分享各自行程(可見:同事今天去哪裡?把團隊每個人行程表共享)。
市面上工具比較
在開始打造之前,必須要先做好市調,若我們想要的功能,已經有提供外掛插件了,那也沒有自己寫程式的必要了。筆者經過搜尋後,找到以下三個插件,符合我們的需求:
不管是哪個插件,功能與效能都是非常卓越的,但都是需要收費的。經過評估後,筆者覺得開發這個功能並不難,因此選擇自行設計。
👉第1步:創建Google Sheets
首先在Google雲端中新增一個Googe Sheets,並且設定好創立Google Calendar時所需要的資訊欄位,如下範例設定了「行程標題、日期、開始時間、結束時間、地點、備註」。
當然,以上的欄位名稱皆可以自行更改,並不會影響程式碼的執行,但順序的部分會影響程式碼執行,因此建議在初次實作時,可以先參考筆者的順序,之後再改成自己喜歡的編排方式。
👉第2步:開啟Google App Script
點擊工具列中的「工具 -> 指令碼編輯器」,即可連接到該Google Sheets的Google Apps Script,Google Apps Script是用來提供Google各項服務的延伸功能,當然包含各個Google服務的串接。
另外Google Apps Script是以JavaScript為基礎所推出的腳本語言,因此若您熟悉JavaScript,那編輯起來會是得心應手喔!
👉第3步:連接Sheets & Calendar
在Google Calendar右上角的設定中,選擇「設定」,並到左方工具列中,選擇您想要連接的日曆類別。滾到下方後,就會找到「日曆ID」,並將其複製到getCalender方法中。
eventCal = getCalender("輸入Google Calender ID")
評估業務不只從業績,也能從行為
在文章同事今天去哪裡?把團隊每個人行程表共享當中,分享同事們如何分享對方的行程,很適合組織的整合。聰明的你一定立馬發現,如此一來若使用共享的日曆,是否能夠取得所有同事的行程呢?答案是可以的!
👉第4步:取得/新增Sheets資料
必須要取得Sheets的資料,才能將其放入Calender當中。getRange方法中需要輸入您想要匯入的資料欄位,在範例中為了方便,直接從A2一路到F1000,也就是1000筆資料都匯入。當然,A1 — F1是標題,因此不能匯入Calendar當中。
var signups = spreadsheet.getRange("輸入Sheets的資料範圍").getValues();
確認資料後,藉由for迴圈取得Sheets的每一列資料,如此才能將Sheets的美筆資料逐一上傳到Calendar當中。
👉第5步:解析個欄位資料
如同我們在Sheets當中的欄位設定,每筆資料裡面會有6個資訊,依照順序分別代表「行程標題、日期、開始時間、結束時間、地點、備註」。
由於不同時間格式的問題,因此在時間的運算中,必須再將原本設定的時間加一天,才會與我們的預想相符。
theday.setDate(theday.getDate() + 1) // 必須加一天
👉第6步:判斷重複行程
由於每次新增行程的時候,所有行程都會被收錄,這會造成一個問題,就是每次執行會重複的建立原有的行程。為了避免這個狀況,創造doit變數,拿來放布林值。檢查當天行程的標題有無相符,若相符則doit為True,反之為False。
👉第7步:解決跨日問題
確認行程沒有重複後,本想可以直接建立行程了,但卻發生了以下錯誤:
Exception: Event start time must be before event end time.
錯誤的意思是,行程的開始時間比結束時間還要晚,這也是時間格式運算上所出現的錯誤,例如設定行程為早上11點到下午1點,但會被誤認為早上1點,避免此跨日問題的方式,便直接把結束時間加上12小時即可。
👉第8步:建立行程
最後一個步驟是建立行程。createEvent方法的詳細使用文件可以到詳細文件中查詢。
/** 建立行程 */event= eventCal.createEvent( title, start, end, {location: location});
另外可以將行程的顏色更改,筆者是在團隊的日曆中使用這個工具,因此團隊的每個人所設定的行程顏色並不同,筆者被分配到的是紫色。想要不同顏色也可以參考這裡。
event.setColor("3") // 設定顏色為紫色
描述的部分無法在createEvent方法中新增,因此必須另外利用setDescription方法進行設定。
event.setDescription(descripion) // 設定描述
👉第9步:測試功能
先在Sheets中輸入一個行程來進行測試,如下圖輸入「AAA、2021–2–7、9:00、15:00、我的家、睡覺覺」。
接著來到App Script按下執行,便可在Calender中看到結果。當然第一次執行時需要進行驗證,否則若沒有驗證,便可以隨便連結到別人的Calender,那是嚴重侵犯隱私的。
👉第10步:開啟自動更新
若每次新增行程,都要點開App Script去執行,是非常麻煩的。因此可以在「觸發條件」中新增觸發條件,選定要執行的function後,在選取活動類型中選擇「文件內容變更時」。
如此一來,每當Sheets表單一有更動,就會自動將資料新增到Calendar中了!有沒有很方便呢?
完整程式碼:
參考資料:
👉想看更多Python實作教學影片【免費】👈
▶ 點此:https://marketingliveincode.com/
查看更多Python工具技巧、商業分析、教學影片
滿意我們餐點嗎?給點 Claps 吧👏👏
1. 我學習到了新的概念與工具 1–10+
2. 我理解了這篇內容所講述的工具與技巧 20–30+
3. 我可以將這篇的內容運用到學習和工作上20–30+