Подробнее https://developers.google.com/apps-script/advanced/tasks
Требуется применить необязательный аргумент showHidden = true для получения выполненных задач.
В редакторе сценариев откройте меню Ресурсы - Дополнительные службы Google и включите «Задачи API»».Тогда попробуйте этот код:
function myFunction() {
getCompletedTasks(getTaskListByTitle('ToDo'));
}
function getTaskListByTitle(titleTasksList) {
if (typeof titleTasksList === 'undefined') { titleTasksList = 'default'; }
var rezultId = 0;
var response = Tasks.Tasklists.list();
var taskLists = response.items;
if (taskLists && taskLists.length > 0) {
for (var i = 0; i < taskLists.length; i++) {
var taskList = taskLists[i];
if (titleTasksList == 'default') {
rezultId = taskList.id; //return first item
break;
} else {
//Logger.log('%s (%s)', taskList.title, taskList.id);
if (titleTasksList == taskList.title) {
rezultId = taskList.id;
break;
}
}
}
} else {
Logger.log('No task lists found.');
}
return rezultId;
}
function getCompletedTasks(taskListId) {
var optionalArgs = {
maxResults: 100,
showHidden: true
};
var tasks = Tasks.Tasks.list(taskListId, optionalArgs);
var SPREADSHEET = SpreadsheetApp.getActiveSpreadsheet();
var rngStartReport = SPREADSHEET.getRange('A1');
var k = 0;
if (tasks.items) {
for (var i = 0; i < tasks.items.length; i++) {
var task = tasks.items[i];
rngStartReport.offset(k, 0).setValue(task.title);
rngStartReport.offset(k, 1).setValue(task.status);
k++;
Logger.log('Task with title "%s" and ID "%s" was found.',
task.title, task.id);
}
} else {
Logger.log('No tasks found.');
}
}