//-----------------------------------------------
// SETTINGS:
//
// 1. Choose your prefered base and unsnoozed labels.
// 2. Choose whether you want the unsnoozed emails to be marked unread and
// labeled UNSNOOZED_LABEL
// 3. Set a daily trigger for method process().
//-----------------------------------------------
var MARK_UNREAD = true;
var MARK_UNSNOOZED = true;
var UNSNOOZED_LABEL = "A/UNSNZD";
var BASE_LABEL = "C/z43f"
//-----------------------------------------------
//-----------------------------------------------
//-----------------------------------------------
var TOMORROW_LABEL = BASE_LABEL + "/a_tomorrow";
var NEXTWEEK_LABEL = BASE_LABEL + "/a_nextWeek";
var SNOOZED_LABEL = "A/SNZD";
var TODAY_LABEL = BASE_LABEL + "/today";
var THISWEEK_LABEL = BASE_LABEL + "/thisWeek";
var THISMONTH_LABEL = BASE_LABEL + "/thisMonth";
//-----------------------------------------------
function getDayLabelName(i){
if(i<= 9) return BASE_LABEL + "/0" + i;
else return BASE_LABEL + "/" + i;
}
//-----------------------------------------------
function getMonthLabelName(i){
if(i == 1) return BASE_LABEL+"/JAN";
if(i == 2) return BASE_LABEL+"/FEB";
if(i == 3) return BASE_LABEL+"/MAR";
if(i == 4) return BASE_LABEL+"/APR";
if(i == 5) return BASE_LABEL+"/MAY";
if(i == 6) return BASE_LABEL+"/JUN";
if(i == 7) return BASE_LABEL+"/JUL";
if(i == 8) return BASE_LABEL+"/AUG";
if(i == 9) return BASE_LABEL+"/SEP";
if(i == 10) return BASE_LABEL+"/OCT";
if(i == 11) return BASE_LABEL+"/NOV";
if(i == 12) return BASE_LABEL+"/DEC";
}
//-----------------------------------------------
function setup() {
// Create the labels we’ll need for snoozing
GmailApp.createLabel(BASE_LABEL);
GmailApp.createLabel(TOMORROW_LABEL);
GmailApp.createLabel(NEXTWEEK_LABEL);
GmailApp.createLabel(SNOOZED_LABEL);
GmailApp.createLabel(UNSNOOZED_LABEL);
for (var i = 1; i <= 31; ++i) {
GmailApp.createLabel(getDayLabelName(i));
}
for (var i = 1; i <= 12; ++i) {
GmailApp.createLabel(getMonthLabelName(i));
}
GmailApp.createLabel(TODAY_LABEL);
GmailApp.createLabel(THISMONTH_LABEL);
}
//-----------------------------------------------
function process() {
var today = new Date();
var weekday = today.getDay();
var monthday = today.getDate();
var month = today.getMonth()+1;
var year = today.getYear();
//MailApp.sendEmail('facundobromberg@gmail.com',getDayLabelName(monthday), "");
//MailApp.sendEmail('facundobromberg@gmail.com',TOMORROW_LABEL, "");
//MailApp.sendEmail('facundobromberg@gmail.com', getMonthLabelName(month), "");
moveToInbox(GmailApp.getUserLabelByName(getDayLabelName(monthday)), TODAY_LABEL);
moveToInbox(GmailApp.getUserLabelByName(TOMORROW_LABEL), TODAY_LABEL);
moveToInbox(GmailApp.getUserLabelByName(getMonthLabelName(month)), THISMONTH_LABEL);
if(weekday == 1) {
//MailApp.sendEmail('facundobromberg@gmail.com',NEXTWEEK_LABEL, "");
moveToInbox(GmailApp.getUserLabelByName(NEXTWEEK_LABEL), THISWEEK_LABEL);
}
}
//-----------------------------------------------
function moveToInbox(label, newLabelName) {
page = null;
// Get threads in "pages" of 100 at a time
while(!page || page.length == 100) {
page = label.getThreads(0, 100);
if (page.length > 0) {
GmailApp.moveThreadsToInbox(page);
//for(var thread in page) {
// GmailApp.markThreadImportant(page);
//}
if (MARK_UNREAD) {
GmailApp.markThreadsUnread(page);
}
//Mark with new label
//GmailApp.getUserLabelByName(newLabelName).addToThreads(page);
//Adds UNSNOOZED_LABEL
if(MARK_UNSNOOZED) {
GmailApp.getUserLabelByName(UNSNOOZED_LABEL).addToThreads(page);
}
// Removes label
label.removeFromThreads(page);
//Removes SNOOZED_LABEL in case it was added by maintenance (addBASE_LABEL script) or manually
GmailApp.getUserLabelByName(SNOOZED_LABEL).removeFromThreads(page);
}
}
// MailApp.sendEmail('facundobromberg@gmail.com',, "");
}
//-----------------------------------------------
// Adds the label to all emails with some 43f sublabel. This is for easy hiding in multiple-inbox.
function addLABEL() {
var labelName = SNOOZED_LABEL
addLabel(GmailApp.getUserLabelByName(NEXTWEEK_LABEL), labelName);
addLabel(GmailApp.getUserLabelByName(TOMORROW_LABEL), labelName);
for (var i = 1; i <= 31; ++i) {
addLabel(GmailApp.getUserLabelByName(getDayLabelName(i)), labelName);
}
for (var i = 1; i <= 12; ++i) {
addLabel(GmailApp.getUserLabelByName(getMonthLabelName(i)), labelName);
}
}//-----------------------------------------------
function addLabel(label, newLabelName) {
page = null;
// Get threads in "pages" of 100 at a time
while(!page || page.length == 100) {
page = label.getThreads(0, 100);
if (page.length > 0) GmailApp.getUserLabelByName(newLabelName).addToThreads(page);
}
}