:param utc_now: optional parameter to be used by Unit Tests as a definition of "now"
            :return: datetime instance presenting next trigger time of the event

def next_trigger_frequency(self, utc_now=None):
        """ :param utc_now: optional parameter to be used by Unit Tests as a definition of "now"
            :return: datetime instance presenting next trigger time of the event """
        if utc_now is None:
            utc_now = datetime.utcnow()

        def wind_days(start_date):
            while True:
                if self.day_of_week == EVERY_DAY or start_date.weekday() == int(self.day_of_week):
                    return start_date.replace(hour=self.time_of_day.hour, minute=self.time_of_day.minute)
                else:
                    start_date += timedelta(days=1)

        if utc_now.time() > self.time_of_day.time():
            return wind_days(utc_now + timedelta(days=1))
        else:
            return wind_days(utc_now)