スキルアップを始める!

【GAS】GoogleToDoリスト(タスク)のデータを読み込んでGoogleカレンダーに反映させる

GAS(GoogleAppsScript)
\ワードプレスのスキルアップはこちら!/ WordPress入門読本

今日の時点のGoogleToDoリスト(タスク)のデータを読み込んで、毎日のGoogleカレンダーに反映させます。

Google ToDo リストとは?

「Google ToDo リスト」とは、シンプルなリストで日々のToDo管理ができるGoogleの便利アプリケーションのひとつです。パソコンやスマートフォンでタスクを管理できます。タスクはクラウド同期する点も便利です。

タスクが終わったら、ラジオボタンをクリックして消すという、とてもシンプルかつ便利なアプリケーションです。

こちらを、GASを使ってGoogleカレンダーに毎朝、一覧を表示させるような仕掛けを作ってみます。

GoogleToDoのデータを読み込んでGoogleカレンダーに反映させるコード

このような感じで、GoogleToDoのデータを読み込んでGoogleカレンダーに反映させることができました。

トリガーは追加すると延々と増えていくため、一旦削除して作り直します。

const CALENDAR_ID = Session.getActiveUser().getUserLoginId();
const sheet = SpreadsheetApp.openById("XXXXXXXXXXXXXXX");

function onSetTrigger(){
  console.log( "CALENDAR_ID:"+CALENDAR_ID ); // CALENDAR_ID
  //一旦、トリガーを全部削除する
  const allTriggers = ScriptApp.getProjectTriggers();
  for (var i = 0; i < allTriggers.length; i++) {
    ScriptApp.deleteTrigger(allTriggers[i]);
  }
  //カレンダーにスクリプトをセットする
  ScriptApp.newTrigger('sendCalender').timeBased().atHour(5).everyDays(1).create();
}

function sendCalender(){
  getCalendarEvents();
}

function getCalendarEvents() {
  const calendar = CalendarApp.getCalendarById(CALENDAR_ID);
  console.log(calendar.getName());
  const values = sheet.getDataRange().getValues();
  const title = 'ToDoリスト(タスク)一覧';
  const option = {
    description: getTaskLists_Finish(),
  }
  
  var date = new Date();
  calendar.createAllDayEvent(title, date,option);
}

function getTaskLists_Finish(){
  const myTaskLists = getTaskLists_Sample();
  // タスクの番号(0の場合は基本のマイタスクになるはず?)
  const myTasks     = getTasks_Sample( myTaskLists[0].id )
  const memo = "【現在のマイタスク一覧】\n";  
  const sample = 0;
  
  for(var i=0;i<myTasks.length;i++){
    console.log( "myTasks[].title:"+myTasks[sample].title  );
   // 本文(ディスクリプション部分)を作成する
    memo += "・"+myTasks[sample].title+"\n"; 
    //予定リストを作る
    sample++;
  }
  console.log("memo:"+memo);
  return memo;
}

  function getTaskLists_Sample() {
  var taskLists = Tasks.Tasklists.list().getItems();

  if (!taskLists) {
    return [];
  }
  return taskLists.map(function(taskList) {
    return {
      id: taskList.getId(),
      name: taskList.getTitle()
    };
  });
}
  
function getTasks_Sample(taskListId) {
  const tasks = Tasks.Tasks.list(taskListId).getItems();
  if (!tasks) {
    return [];
  }
  return tasks.map(function(task) {
    return {
      id: task.getId(),
      title: task.getTitle(),
      notes: task.getNotes(),
      completed: Boolean(task.getCompleted())
    };
  }).filter(function(task) {
    return task.title;
  });
}

毎日のGoogleカレンダーにGoogleToDo(タスク)の一覧が朝に登録されます。

まとめ

GASとアイデア次第で、Googleサービスはさらに便利になりますね!

ご参考ください。

URLをコピーしました!