def assignSeasonSchedule(self, season, month, day, schedule):
season += <NUM_LIT:1><EOL>schedule += <NUM_LIT:1><EOL>if ((season < <NUM_LIT:1>) or (season > Extents.Seasons) or (schedule < <NUM_LIT:1>) or<EOL>(schedule > Extents.Schedules) or (month > <NUM_LIT:12>) or (month < <NUM_LIT:0>) or<EOL>(day < <NUM_LIT:0>) or (day > <NUM_LIT>)):<EOL><INDENT>ekm_log("<STR_LIT>" + str(month) + "<STR_LIT>" + str(day) +<EOL>"<STR_LIT>" + str(schedule) + "<STR_LIT>" + str(season))<EOL>return False<EOL><DEDENT>idx_mon = "<STR_LIT>" + str(season) + "<STR_LIT>"<EOL>idx_day = "<STR_LIT>" + str(season) + "<STR_LIT>"<EOL>idx_schedule = "<STR_LIT>" + str(season) + "<STR_LIT>"<EOL>if idx_mon not in self.m_seasons_sched_params:<EOL><INDENT>ekm_log("<STR_LIT>" + idx_mon)<EOL>return False<EOL><DEDENT>if idx_day not in self.m_seasons_sched_params:<EOL><INDENT>ekm_log("<STR_LIT>" + idx_day)<EOL>return False<EOL><DEDENT>if idx_schedule not in self.m_seasons_sched_params:<EOL><INDENT>ekm_log("<STR_LIT>" + idx_schedule)<EOL>return False<EOL><DEDENT>self.m_seasons_sched_params[idx_mon] = month<EOL>self.m_seasons_sched_params[idx_day] = day<EOL>self.m_seasons_sched_params[idx_schedule] = schedule<EOL>return True<EOL>
Define a single season and assign a schedule

        Args:
            season (int): A :class:`~ekmmeters.Seasons` value or in range(Extent.Seasons).
            month (int): Month 1-12.
            day (int):  Day 1-31.
            schedule (int): A :class:`~ekmmeters.LCDItems` value or in range(Extent.Schedules).

        Returns:
            bool: True on completion and ACK.