Daily Task Refresh
I don't complete all my tasks that are due every day. (I know that's a bad practice that may trigger you, but let's leave it aside for now.) As a result, I spend the first part of my day updating my list, which mostly involves postponing tasks. That's a lot of selecting and postponing.
To make it a bit more complex, I also don't want to postpone every task. Some tasks are daily reminders that, if I didn't get to them that day, don't really need to be pushed into the next day. For example, "meditate," or "practice gratitude" don't make sense to double up on.
So I've made a MilkScript that cleans up my list for me. Any task in my Now list due before today that is incomplete gets postponed, unless it has the tag "zskip," in which case it gets completed. Finally, if I have a high priority task from yesterday that didn't get completed, I don't want to automate the postponing or completion of that task...I want human input on something like that, so I just leave those alone so they're visible.
Finally, I've also set up a Zap on Zapier so every day at 6 AM my MilkScript gets run automatically
Here's my Script:
const nowList = rtm.getSmartLists().find(smartList => smartList.getName() === 'Now');
const incompleteNowTasksDueToday = nowList.getTasks('status:incomplete AND dueBefore:today')
console.info(`Your "Now" list has ${incompleteNowTasksDueToday.length} items in it due before today`);
const tagsByTaskIdMap = new Map(
incompleteNowTasksDueToday.map(task => {
const id = task.getId();
const tagNames = task.getTags().map(tag => tag.getName());
return [id, tagNames];
})
);
incompleteNowTasksDueToday.forEach(task => {
const name = task.getName();
const priority = task.getPriority();
const tagNames = tagsByTaskIdMap.get(task.getId()) || [];
if (priority.toString() === rtm.Priority.High.toString()) {
// I don't want to postpone or complete High priority tasks; requires human evaluation
console.info(`skipping high priority task ${name}`);
} else if (tagNames.includes('zskip')) {
console.info(`Completing zskip task ${name}`);
task.complete();
} else {
console.info(`Postponing ${name}`);
task.postpone();
}
});
To make it a bit more complex, I also don't want to postpone every task. Some tasks are daily reminders that, if I didn't get to them that day, don't really need to be pushed into the next day. For example, "meditate," or "practice gratitude" don't make sense to double up on.
So I've made a MilkScript that cleans up my list for me. Any task in my Now list due before today that is incomplete gets postponed, unless it has the tag "zskip," in which case it gets completed. Finally, if I have a high priority task from yesterday that didn't get completed, I don't want to automate the postponing or completion of that task...I want human input on something like that, so I just leave those alone so they're visible.
Finally, I've also set up a Zap on Zapier so every day at 6 AM my MilkScript gets run automatically
Here's my Script:
const nowList = rtm.getSmartLists().find(smartList => smartList.getName() === 'Now');
const incompleteNowTasksDueToday = nowList.getTasks('status:incomplete AND dueBefore:today')
console.info(`Your "Now" list has ${incompleteNowTasksDueToday.length} items in it due before today`);
const tagsByTaskIdMap = new Map(
incompleteNowTasksDueToday.map(task => {
const id = task.getId();
const tagNames = task.getTags().map(tag => tag.getName());
return [id, tagNames];
})
);
incompleteNowTasksDueToday.forEach(task => {
const name = task.getName();
const priority = task.getPriority();
const tagNames = tagsByTaskIdMap.get(task.getId()) || [];
if (priority.toString() === rtm.Priority.High.toString()) {
// I don't want to postpone or complete High priority tasks; requires human evaluation
console.info(`skipping high priority task ${name}`);
} else if (tagNames.includes('zskip')) {
console.info(`Completing zskip task ${name}`);
task.complete();
} else {
console.info(`Postponing ${name}`);
task.postpone();
}
});
Log in
to post a reply.