Reputation: 3
I want Google apps script that should read the google tasks completed and add them as a row to google spreadsheet.. Can anyone help me
Upvotes: 0
Views: 1330
Reputation: 31
Read more https://developers.google.com/apps-script/advanced/tasks
Is need to apply optional argument showHidden = true for getting completed tasks.
In script editor open menu Resources - Advanced Google Services and switch on "Tasks API". Then try this code:
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.');
}
}
Upvotes: 1