docs: def genInterval(self,
                      month=(),
                      day=(),
                      week=(),
                      weekday=(),
                      hour=(),
                      minute=()):
          '''Generate list of config dictionarie(s) that represent a interval of time. Used to be passed into add() or remove().
          For example::
  
              genInterval(month=(1,4), week(1,4))
              # generate list contains from first to third week in from January to March
  
          Args:
              month (tuple): (start, end) month in a year, from 1 to 12
              week (tuple): (start, end) week in a month, from 1 to 4
              day (tuple): (start, end) day in a month, from 1 to 31
              weekday (tuple): (start, end) weekday in a week, from 0 to 7. 0 and 7 both represent Sunday
              hour (tuple): (start, end) hour in a day, from 0 to 24
              minute (tuple): (start, end) minute in an hour, from 0 to 59
  
          Returns:
              list: a list of dictionarie(s) with form [{'Day':12, 'Month':3}, {}, etc]
          '''
          dic = {
              'Month': month,
              'Day': day,
              'Week': week,
              'Weekday': weekday,
              'Day': day,
              'Hour': hour,
              'Minute': minute
          }
          dic = {k: v for k, v in dic.items() if v != ()}
          # e.g. dic: {'month': (1,5), 'day': (2,4)}
          grandList = []
          for k in dic:
              # e.g. k: 'month', dic[k]: (1,5)
              l = []
              # rangeTuple = (dic[k][0], dic[k][1] + 1)  # e.g. (1,6)
              rangeTuple = dic[k]
              for num in range(rangeTuple[0],
                               rangeTuple[1]):  # e.g. 1, 2, 3, 4, 5
                  l.append({k: num})  # e.g. [{'month': 1}, {'month': 2}]
              grandList.append(l)  # e.g. [[list of month], [list of day]]
          print(grandList)
          # grandList: [[list of month], [list of day]]
          # l: [[a,a1,a2,...], [b,b1,b2,...]]
          # combineDict return: [{a,b}, {a,b1}, {a,b2}, {a1,b}, {a1,b1}, {a1, b2}, {a2,b}, {a2,b1}, {a2,b2}]
          return crossCombine(grandList)