パルカワ2

最近はFlutterをやっています

GoogleカレンダーからHourStackのEntryを作成した時にプロジェクトを自動で付ける

HourStackでタスクと時間の管理をしている。

HourStackは、Zapierと連携が出来て色々自動化出来るので、Googleカレンダーで作ったEntryはプロジェクトを自動で付けるようにした。

  • HourStackのEntry CreatedをTriggerに選ぶ
  • Source Prov が google-calendar のときのみ実行するようにフィルタ
  • Project が Does not exist のときのみ実行するようにフィルタ
  • GoogleカレンダーからFind Event
    • Search Termに作成したEntryの Name を指定
    • Start Time に Start Date と Start Timeをスペース区切りで指定
  • Run Python
    • Googleカレンダーの色分けからプロジェクトを決める
    • Inputには Color ID, Start Date, Start Timeを指定する
  • Update Entry in HourStack
    • 何も指定しないと指定していない状態で更新されるので、Entry Createdの情報を指定する
    • Start AtをRun PythonでOutputした start_at を指定する。Start Onを指定しない。
    • Project IDには、Run PythonでOutputした project を指定する

Run Pythonに書くコードは以下の通り。Project IDは自分で指定する。

from datetime import datetime
from dateutil import parser
import math

color_id = "0"
if "color_id" in input_data:
  color_id = input_data['color_id']

start_at = ''
if "start_time" in input_data:
  start_at = f"{input_data['start_date']} {input_data['start_time']}+00:00"
 
project = {
  "0": "<Project ID>",
  "1": "<Project ID>",
  "2": "<Project ID>",
  "3": "<Project ID>",
  "4": "<Project ID>",
  "5": "<Project ID>",
  "6": "<Project ID>",
  "7": "<Project ID>",
  "8": "<Project ID>",
  "9": "<Project ID>",
  "10": "<Project ID>",
  "11": "<Project ID>",
}[color_id]

output = {'project': project, 'start_at': start_at}

HourStackのProject IDは、Update EntryでProject IDを指定しようとすると出てくる。 GoogleカレンダーのColor IDは Google カレンダーの色 - SAKI Web Design を参考にした。

Googleカレンダーの色分けとHourStackのプロジェクトの色を同じにしている。こんな感じでカラフルになってかわいい