You could take a look at the scheduled events of the administration module and take that as basis. It would be nice to display also the next event that is going to be triggered.
And I would use custom microflows to create the tasks and do a schedule event to keep them updated with new ones.
And take a look here for date creation.
You could try to play around with non persistent objects and based on the date period the user displays generate the data for display purposes. This is sort of the same that Outlook handles this. If you have a recurring appointment outlook determines if the event should be displayed based on the period selected. By means of the non persistent objects you could generate the fixed date appointments and the recurring appointments and display them from the same entity. It sure isn't easy though as the determining the records to be created based on the period selected and the recurring options for the appointment is a complex job. For example in C look at http://msdn.microsoft.com/en-us/library/office/ff184586.aspx and there must be some java code out there as well that can accomplish this task.