In the task plugin they use a library that allows specifying dates in the sort of natural language. For example, "next friday", "tomorrow", and the like. Allow an option to have the various date entry fields not be calendar like items (calendar popup and then the YYY-MM-DD field) but be a text entry line. When the user enters the text and that field loses focus, use the library, get the date and then show in the box. Of course, dates specified as YYYY-MM-DD entered should also be allowed.
As a side effect, you'll have the library you need to deal with recurring date support integrated.