Issue 209: api modification and adding unit tests
Issue #209 : generate extra dates should consider the last generated schedule
Issue #209 : return nil for other types schedule for now, will implement it later
Issue #209 : add one API and unit tests
Issue #209 : fix a few bugs
Issue #221 :  add a new API and modify unit tests
Issue #221 : clean up legacy code of dealing with user interaction of notification
Issue #221 : minor clean up of legacy code
Issue #221 : code refactoring