First of all constraints regarding the Due date are updated.
We are mainly interested in due date rather than start date of task. If task is recurring and Due date is not set, then in that case we should not allow the user to close task.
Show Dialog if Due date is not set !
Connected “delete-event” to task editor, in callback method we check that if task is recurring and due date is not set then we show the dialog box.
This is how the dialog box look like : ( Message will be changed if it doesn’t look appropriate to anybody )

Now talking about the recurrence task data structure :
Initially we were thinking to go with libical ( an open source reference implementation of the icalendar data type and serialization format .) But GTG is not a calender, that’s why we dropped the idea.
After discussing these with my mentor Nimit Shah, and one of the developer of evolution-Fabiano Fidencio,, We concluded to go with xml to store the recurrence task details.
It will look like this :
<task>
<recurring>
<Daily> or <Monthly> or <Weekly> or <Yearly>
<repeats>
<frequency> 5 </frequency>
<on> First </on>
<day> Sunday </day>
</repeats>
</Daily> or </Monthly> or </Weekly> or </Yearly>
<endson>
<occurrences> 4 </occurrences> or <date> dd-mm-yyyy </date> or <never> Never </never>
</endson>
</recurring>
</task>
P.S Things are written/hidden in code according to repeats option.
Done with setting and retrieving recurrence task details.
Planning to work on modification of task and also how we can add a new instance of task if marked as complete or overdue.