Google Apps Script を用いて Toggl のデータを Google カレンダーに移行する
1. はじめに
筆者は,タイムトラッキングアプリである Toggl を日常的に愛用しています。しかし,記録データはワークフローの関係上 Google カレンダーで一括管理したい。そこで,本記事では Google Apps Script を用いて Toggl に記録されているデータを Google カレンダーに一括移行するスクリプトについて記述する。
2. 要件定義
実現したい要件として,以下の 2 つが挙げられます。
- Toggl に記録されている Time Entrys を Google カレンダーに移行する
- Toggl に記録されている Time Entrys を削除する
3. 事前準備
事前準備として,以下の 2 つを取得する必要があります。
- TOGGL_API_TOKEN
- GOOGLE_CALENDAR_ID
TOGGLAPI_TOKEN は,_Profile settings に表示されているので記録しておきます。
GOOGLE*CALENDAR_ID は,*設定と共有_ に表示されているので記録しておきます。
4. 実装
先行記事と Toggl API doc を参考に実装したソースコードを以下に示します。[TOGGL_API_TOKEN] と [GOOGLE_CALENDAR_ID] は,上記で取得した TOGGL_API_TOKEN と GOOGLE_CALENDAR_ID に置換します。
Toggl の Free プランでは,Time Entrys を Delete する API が叩けないため,要件の「② Toggl に記録されている Time Entrys を削除する」を満たすことができません。そこで,Google カレンダーに移行した Time Entrys には Logged タグを付与し,Logged タグが付いている Time Entrys は Google カレンダー に移行しない仕様としました。
5. 運用
新しい Google Apps Script のプロジェクトを作成し,上記のソースコードをコピー&ペーストします。初回実行時は認証手続きが必要になるので,認証手順記事を参考に認証します。また,トリガーを設定しておくことで,Toggl に記録されている Time Entrys を自動的に Google カレンダーへ移行することができます。
6. おわりに
ここまで,本記事では Google Apps Script を用いて Toggl に記録されているデータを Google カレンダーに一括移行するスクリプトについて記述してきました。Google Apps Script と Google が提供しているサービスを組み合わせると様々なことができるので,Google Apps Script を触ったことない方は Google Apps Script で遊んでみてほしいです。