Requirements

Compose

  • adds form to with followup checkbox and date/time of follow up (defaulting to x weeks out)
  • on submit creates a google calendar event at that date time
  • stores record of subject line, recipient(s), and calendar event details

View

  • checks Subject and sender against stored reminders and on match deletes the associated calendar event

Settings

  • default x weeks out reminder
  • default to remind or not to remind

Documentation

  • http://code.google.com/apis/gadgets/
  • http://code.google.com/apis/gadgets/docs/gs.html
  • Directory of gadgets : http://www.google.com/ig/directory?synd=open&q=gmail
  • Gadgets API Reference : http://code.google.com/apis/gadgets/docs/reference/
  • Developing Google Gadgets with the Eclipse GWT plugin : http://groups.google.com/group/gwt-google-apis/browse_thread/thread/cbf58897c8549609
  • Gadgets fundamentals : http://code.google.com/apis/gadgets/docs/fundamentals.html
  • gadgets.util : http://wiki.opensocial.org/index.php?title=Gadgets.util_%28v0.9%29

Outstanding Questions

  • If a google gadget is in an iframe does it have access to the DOM of the gmail page?

Alternative Design

Work Summary

  • Develop greasemonkey script which has a checkbox and text field that when checked fills in the BCC field with a pre formulated string
  • Create followup.jdoe.example.com domain
  • Enable forwarding by MTA of all email destined for followup.jdoe.example.com to sender email address
  • Develop polling script which
    • queries via API and deletes followup emails if a reply exists
    • labels emails that have exceeded the “follow up time window”
  • Establish cronjob to call polling script daily

Overview

Interface

  • Create and enable a greasemonkey script which adds a button of form to flag for followup and optionally designate a “follow up time window”
    • http://code.google.com/p/gmail-greasemonkey/wiki/GmailGreasemonkey10API
  • Have this button and or form fill in the BCC field as described below

Mark

  • BCC a special email address for emails that require followup (e.g. john.doe+r@example.com)
    • ALTERNATIVE : BCC an email address at a domain which forwards everything to a single address (e.g. anything@followup.jdoe.example.com)
      • Perhaps embed the follow up time window if it’s not default in the email address name (e.g. 5+days@followup.jdoe.example.com)
  • Have this email address be delivered to the same mail account as the sender
  • Have the sender’s email system filter and store emails containing the “+r” designator in a special “Follow Up” email folder
    • ALTERNATIVE : Have the sender’s email system filter and store emails destined for the special domain (e.g. *@followup.jdoe.example.com) in a special “Follow Up” email folder

Poll

  • Create a script which runs via cron and :
    • Connects via IMAP to the sender’s email system
      • ALTERNATIVE : Queries gmail via something other than IMAP for example http://libgmail.sourceforge.net/
    • Reads in all emails in the “Follow Up” folder
      • grabs the following fields :
        • “Subject”
        • “To”
        • “Date”
    • For each “Follow up” mail do a substring search for other mail in the whole IMAP account
      • Which was not sent by the sender
      • For each match, delete the corresponding “Follow Up” email in the “Follow Up” folder
    • For each “Follow up” mail remaining parse the “To” field and look for a non-default “follow up time window” encoded in the address
      • else use a default
    • For each mail if (now() - the “Date” field) > “follow up time window”
      • Take some action like :
        • Email the sender an example reminder email that they can then tweak and forward to the non-responsive recipient
        • Insert a calendar event to follow up on the sent email
        • Update a webpage of outstanding unresponded to emails
        • Flag the followup email with a star or label