高木のブログ

GASでGoogle ToDoリストにデイリーミッションを追加する

2021/03/15

タイトルがちょっと何言ってるかわからないかもしれない

毎日の自己研鑽タイムでやることが最近偏ってきてるなと思ったので、やることをランダムで決めてもらうことにした
そのプロトタイプ的なものをGASで作ってみた

仕様

  • 毎日Tasks APIを使って4つ選んでToDoリストに追加する
  • 前日分の消化していないミッションは最初に消す

コード

function myFunction() {
  const list_id = 'hogehoge';
  const missions = [
    '読書',
    'エンジニア学習',
    '英語学習',
    'ブログ活動',
    '筋トレ',
    'ウォーキング'
  ]

  const response = Tasks.Tasks.list(list_id)
  const tasks = response.items
  if(tasks) {
    tasks.forEach(function(task){
      Tasks.Tasks.remove(list_id, task.id)
    });
  }

  sample(missions, 4).forEach(function(mission){
    Tasks.Tasks.insert({ title: mission }, list_id)
  });
}

function shuffle([...array]) {
  for (let i = array.length - 1; i >= 0; i--) {
    const j = Math.floor(Math.random() * (i + 1));
    [array[i], array[j]] = [array[j], array[i]];
  }
  return array;
}

function sample(array, num) {
  return shuffle(array).slice(0, num);
}

結果

こんな感じに ToDoリスト

補足

list_id(リストID)はTasks.Tasklists.list()で取得できる

Logger.log(Tasks.Tasklists.list());

参考


Written by ytkg, Twitter, GitHub

Pixela