public static void GetNext(RecurrenceRule obj, MethodReturnEventArgs<DateTime> e, DateTime start, DateTime dt) { var occurrences = obj.GetWithinInterval(start, dt, dt.Add(GetIntervalTimeSpan(obj.Frequency, obj.Interval))); e.Result = occurrences.Where(i => i != dt).FirstOrDefault(); if (e.Result == default(DateTime)) e.Result = dt; }