I think maybe instead of basing the diff off the unix epoch time, it could be based off the previous occurence of the smallest time unit which the interval is not a multiple of.  So if I call it at 12:10:00, with an interval of 7 minutes, the first event would be at 12:14:00.  If called with an interval of 65 seconds it would be based off the last even minute value.  But that could be weird for a value like 120 seconds, which is a multiple of a minute, even though it's specified as seconds.  Introducing a TimeUnit class (which has [other use cases](http://seaneagan.me/intlx/docs/intlx/TimeUnit.html)) would make it more explicit.