仕事

Google ToDoリストで昨日のタスクを今日に自動延長する方法

※本記事はプロモーションを含む場合があります。

Google ToDoリストは、タスクに日付を入れると便利です。

「これは今日、これは明日」と、いつやるタスクなのか整理できて見やすくなります。

ただ、終わらなかったタスクは過去の日付で延々と残ってしまうんですよね。

そこで、古いタスクを自動で「今日のタスク」に日付を更新する方法をご紹介します。

過去のタスクを見逃すこともなくなりますので、5分ほどお付き合いください。


昨日のタスクを今日に更新するのが地味に面倒…

Google ToDoリストでタスクに日時を入れると、「今日」や「明日」と自動で分類してくれるので、その日にやるべきタスクが見やすくなります。

GoogleToDoリスト_日付で分類
Google ToDoリスト

ただ翌日になると、終わらなかったものが「昨日のタスク」として期限超過になるので、手作業で「今日」に日付更新しています。

GoogleToDoリスト_昨日のタスク

これが1つや2つなら問題ないですが、数日かかるタスクが5個も6個もあると、手作業で毎日更新する時間がもったいないんですよね。。

そこで、ちょっとしたプログラムで「過去のタスクを自動的に今日のタスクに更新」する仕組みをつくってみました。

コピペでOK。自動でタスクを「今日」に更新するプログラム

Googleアカウントを持っていれば無料で使える「GAS(Google App Script」というサービスを使って、まいにち日付が変わると自動でプログラムを実行する仕掛けをつくります。

プログラムを用意する

GAS のページを開いて Starg Scripting をクリックします。

GAS_スタートページ
Google App Script

新しいプロジェクト をクリックします。

GAS_新しいプロジェクト
Google App Script

▼プログラムを入力する画面になります。まずは最初からあるプログラムを消してまっさらにします

GAS_コード画面_クリア
Google App Script

次のテキストをすべてコピーして、さきほど文字を消した部分にペースト(貼り付け)します。

function updateDue(){

  const lists = Tasks.Tasklists.list().getItems(); // タスクリストを全て取得
  
  lists.forEach(function (list){

    // タスクリストからタスクを取得
    let tasks = Tasks.Tasks.list(list.id, {showCompleted:false, maxResults:100}).getItems(); // MAX100タスクを読み込み

    for (let i = 0; i < tasks.length; i++) {
      console.log(tasks[i].due + ':' + tasks[i].title);
      if(tasks[i].due){
        if(new Date(tasks[i].due) < new Date()){
          tasks[i].due = Utilities.formatDate(new Date(), 'Asia/Tokyo', 'yyyy-MM-dd') + 'T00:00:00.000Z';
          Tasks.Tasks.update(tasks[i], list.id, tasks[i].id);
        }
      }
    }
  });
}

▼つづいて、プログラムから Google ToDoリストに接続するための設定をします。

左側の サービス のところにある+マーク をクリックします。

GAS_サービス追加
Google App Script

▼一覧の中から Tasks API を選択して 追加 をクリックします。

GAS_サービス追加_Tasks
Google App Script

▼サービスの下に「Tasks」というのが出ればOKです。

GAS_サービス追加_完了
Google App Script

▼これでプログラムの用意ができたので、フロッピーアイコン(保存) をクリックして保存します。

GAS_Task日付更新_保存
Google App Script

▼ちゃんと動くか一度テストしてみましょう。

①の部分で「updateDue」を選んで 実行 をクリックします。

GAS_Task日付更新_実行
Google App Script

▼初回のみ「プログラムが Google ToDoリストを操作する許可」を求められるので、権限を確認 → アカウント選択 → 詳細 → 無題のプロジェクト(安全ではないページ)に移動 → 許可 とクリックしていきます。

GAS_Task日付更新_サービス接続許可1
Google App Script

GAS_Task日付更新_サービス接続許可2
Google App Script

GAS_Task日付更新_サービス接続許可3
Google App Script

GAS_Task日付更新_サービス接続許可4
Google App Script

GAS_Task日付更新_サービス接続許可5
Google App Script

▼下の方に「実行完了」と出ればOKです。

※もしエラーになったら、もう一度 プログラムを丸ごとコピペ → Tasksサービス追加 を試してみてください。

GAS_Task日付更新_実行成功
Google App Script

▼Google ToDoリストを見ると、昨日のタスクが今日に更新されています。

GoogleToDoリスト_昨日のタスクが今日に更新されている
Google ToDoリスト

タイマーをセットする

プログラムが用意できたので、まいにち日付が変わったタイミングで自動でプログラムを実行するようにタイマーをセットします。

▼左側の 目覚まし時計アイコン(トリガー) をクリックします。

GAS_Task日付更新_トリガー
Google App Script

トリガーを追加 をクリックします。

GAS_トリガー追加をクリック
Google App Script

▼タイプを 日付ベースのタイマー(①)、時刻を 午前0時~1時(②) とセットして 保存 をクリックします。

GAS_Task日付更新_トリガー設定
Google App Script

▼これでトリガー(自動実行タイマー)がセットされました。

GAS_Task日付更新_トリガー追加完了
Google App Script

▼さいごに、今回つくった「プログラム+実行タイマー」に分かりやすい名前を付けておきましょう。

「無題のプロジェクト」の部分をクリックすると名前を変えられます。

GAS_Task日付更新_名前変更
Google App Script

以上で過去のタスクを今日に自動延長する仕掛けが完成です。

おつかれさまでした!

なお、GASのページ からプログラムの実行時間などを後から変えられるので、調整が必要になったらアクセスしてみてください。

今日やるタスクをGoogle ToDoリストで可視化しよう

Google ToDoリストは高機能ではありませんが

  • シンプル
  • 無料で使える
  • Googleカレンダーとも連携

と十分に普段使いできるタスク管理ツールです。

PC版Gmailやスマホからさくっとタスク登録し、今日やるタスクを「本日」にすることで、その日やることに集中できるようになります。

そして、1日で終わらないタスクは次の日に自動で持ち越せるようになるので、ぜひ本記事の仕組みをお試しください。

最後まで読んでいただきありがとうございました。

※本記事のソースコードは 毎朝GASでGoogle Tasks(ToDo)を取得して期限切れタスクをSlackで教えてもらう|CODE:LIFE を参考にさせていただきました。

コメント

タイトルとURLをコピーしました