Search code examples
google-apps-scriptgoogle-tasks-apigoogle-tasks

Newly created Google Task omits the supplied "TaskLink" property


I am trying to make a small Google Script that would automatically add Google Tasks to the "My List" TaskList after searching my GMail emails.

Everything goes fine except for adding a link to the email from which the Task is generated from. Trying to follow the API documentation doesn't really help.

This is the code for the actual task generator function:

function addTask(taskListId, myTitle, myEmailLink) {
  var task = Tasks.newTask(); // effectively same as "= {}".
  task.title = myTitle
  task.notes = 'blank';

  task.links = [{}]
  task.links[0].description = 'Link to corresponding email';
  task.links[0].type = 'email';
  task.links[0].link = 'myEmailLink';

  task = Tasks.Tasks.insert(task, taskListId);
}

Any ideas why the task I receive back has no links?


Solution

  • Per the Google Tasks API Documentation:

    links[] list
    Collection of links. This collection is read-only.

    You cannot set these links by modifying a Task resource, i.e your code

    task.links = [{}]
    task.links[0].description = 'Link to corresponding email';
    task.links[0].type = 'email';
    task.links[0].link = 'myEmailLink';
    

    is simply ignored by the server.

    TaskLinks are, to my knowledge, unusable and non-configurable outside of the Googleplex. They may as well not exist to API users.

    The only way I've been able to generate a Task that has one is by using the Gmail UI and selecting "Add to Tasks". The resulting task then includes this snippet in the last line of the Task item:

    enter image description here