Difference between revisions of "Create Google Tasks by sending email to Google GMail"
Jump to navigation
Jump to search
Line 6: | Line 6: | ||
http://www.pipetree.com/qmacro/blog/2011/10/automated-email-to-task-mechanism-with-google-apps-script/ | http://www.pipetree.com/qmacro/blog/2011/10/automated-email-to-task-mechanism-with-google-apps-script/ | ||
+ | This is just an overview what will happen: | ||
# Create Gmail new labels - newtask and newtaskdone. | # Create Gmail new labels - newtask and newtaskdone. | ||
− | # Create | + | # Create Gmail filter based on newtask label. |
# Create script from Google Spreadsheet. | # Create script from Google Spreadsheet. | ||
# Integrate the script with Google API. | # Integrate the script with Google API. | ||
# Schedule it via the time-driven even trigger. | # Schedule it via the time-driven even trigger. | ||
− | Pay attention to the Script Code section especially if this is your first time coding this. You will have to enable Google API service to allow access the Task API - https://developers.google.com/apps-script/articles/google_apis_reading_list. If not doing so, you will receive an error message saying "Tasks - not defined". | + | Pay attention to the *Integrate the script with Google API* in the *Script Code* section especially if this is your first time coding this. You will have to enable Google API service to allow access the Task API - https://developers.google.com/apps-script/articles/google_apis_reading_list. If not doing so, you will receive an error message saying "Tasks - not defined". |
− | In addition to above sample, I'd like to add | + | In addition to above sample, I'd like to add the email's body into the G! task's note. |
+ | |||
+ | * Add this new variable to grab the email's body | ||
+ | <pre> | ||
+ | // Grab the task data | ||
+ | var taskTitle = thread.getFirstMessageSubject(); | ||
+ | var taskNote = getTextFromHtml((thread.getMessages()[0]).getBody()); | ||
+ | </pre> | ||
+ | |||
+ | * Add new parameter of task's note to addTask_ | ||
+ | <pre> | ||
+ | // Insert the task | ||
+ | //addTask_(taskTitle, TASKLIST); | ||
+ | addTask_(taskTitle, taskNote, TASKLIST); | ||
+ | </pre> | ||
+ | |||
+ | * Update the addTask_ to include setNotes | ||
+ | <pre> | ||
+ | function addTask_(title, message, tasklistId) { | ||
+ | //var newTask = Tasks.newTask().setTitle(title); | ||
+ | var newTask = Tasks.newTask().setTitle(title).setNotes(message); | ||
+ | Tasks.Tasks.insert(newTask, getTasklistId_(tasklistId)); | ||
+ | } | ||
+ | </pre> | ||
[[Category: Others]] | [[Category: Others]] |
Revision as of 06:12, 10 August 2012
Goal:
- Send email to a specified address - in the case Gmail address named yourgmail+task@gmail.com.
- Script will parse that email based on Gmail label, and grab the email's subject then create a new task.
Follow this step-by-step of this page. http://www.pipetree.com/qmacro/blog/2011/10/automated-email-to-task-mechanism-with-google-apps-script/
This is just an overview what will happen:
- Create Gmail new labels - newtask and newtaskdone.
- Create Gmail filter based on newtask label.
- Create script from Google Spreadsheet.
- Integrate the script with Google API.
- Schedule it via the time-driven even trigger.
Pay attention to the *Integrate the script with Google API* in the *Script Code* section especially if this is your first time coding this. You will have to enable Google API service to allow access the Task API - https://developers.google.com/apps-script/articles/google_apis_reading_list. If not doing so, you will receive an error message saying "Tasks - not defined".
In addition to above sample, I'd like to add the email's body into the G! task's note.
- Add this new variable to grab the email's body
// Grab the task data var taskTitle = thread.getFirstMessageSubject(); var taskNote = getTextFromHtml((thread.getMessages()[0]).getBody());
- Add new parameter of task's note to addTask_
// Insert the task //addTask_(taskTitle, TASKLIST); addTask_(taskTitle, taskNote, TASKLIST);
- Update the addTask_ to include setNotes
function addTask_(title, message, tasklistId) { //var newTask = Tasks.newTask().setTitle(title); var newTask = Tasks.newTask().setTitle(title).setNotes(message); Tasks.Tasks.insert(newTask, getTasklistId_(tasklistId)); }