This Google Script scans the Sent Items folder of your Gmail mailbox and creates a list of messages that are still awaiting a reply from the recipient.
It looks at the sender’s address of the last message in a Gmail thread that is older than 7 days and, if it is different from the email address of the user running the Google Script, logs that message.
/* Credit: https://gist.github.com/cjbarber */ function label_waiting_for_reply() { // Get the gmail address of the current user var emailAddress = Session.getEffectiveUser().getEmail(); var EMAIL_REGEX = /[a-zA-Z0-9\._\-]+@[a-zA-Z0-9\.\-]+\.[a-z\.A-Z]+/g; // Check if the Gmail label exists, else create it var label = GmailApp.getUserLabelByName("[Waiting For]") ? GmailApp.getUserLabelByName("[Waiting For]") : GmailApp.createLabel("[Waiting For]"); // Find Gmail Sent Items that are older than a week var d = new Date(); d.setDate(d.getDate() - 7); var dateString = d.getFullYear() + "/" + (d.getMonth() + 1) + "/" + d.getDate(); threads = GmailApp.search("in:sent after:" + dateString); for (var i = 0; i < threads.length; i++) { var thread = threads[i]; // Find the senders email address of the last message in the Gmail thread var lastMessage = thread.getMessages()[thread.getMessageCount()-1]; lastMessageSender = lastMessage.getFrom().match(EMAIL_REGEX)[0]; // If the sender's email address is the same as the user, reply not received if (lastMessageSender == emailAddress && thread.getMessageCount() == 1) { thread.addLabel(label); Logger.log(lastMessageSender); } } } // Publish this Google Script as a web app function doGet(e) { label_waiting_for_reply(); }