#782 add monthly schedule generator placeholder
#782 add more placeholder
#782 add a new method, code refactor
#782 add a new API, add unit tests
#782 add by day of month schedule, code refactoring