今日の時点の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サービスはさらに便利になりますね!
ご参考ください。