# Reminders Needed

There are several deadlines for the Google Summer of Code and Google Highly Open Participation Content. It would be useful for the system to send nag emails to folks when something is not done on time / is about to not be done on time. This page should not be taken as a conflation of [Issue 495](http://code.google.com/p/soc/issues/detail?id=495): Melange should allow users to email one another from within the system UI.

  * Issue 604 (on Google Code) Nag e-mails from Melange to organizations.

  * Issue 562 (on Google Code) Populate Notification Email With All Relevant Information Available.

**Please update this document with your thoughts on when you would like to receive nag emails from the system.**

## Google Summer of Code

## Google Highly Open Participation

## Other Melange Customers