def events(opts = {})
      enums = @rules.map { |r| r.merge(opts).events }
      Enumerator.new do |y|
        loop do
          enum = active_enums(enums).min_by(&:peek) or break
          y << enum.next
        end
      end
    end
def events(opts = {})
      enums = @rules.map { |r| r.merge(opts).events }
      Enumerator.new do |y|
        loop do
          enum = active_enums(enums).min_by(&:peek) or break
          y << enum.next
        end
      end
    end
Returns an enumerator for iterating over timestamps in the schedule

 @example Return the events
   schedule = Montrose::Schedule.build do |s|
     s << { every: :day }
   end
   schedule.events

 @return [Enumerator] an enumerator of recurrence timestamps