I think we need to be more descriptive here. It looks like from the implementation that the first event may fire before `interval` time has passed because you align to `interval`-based time values with the modulo operation... I'm not even sure how to describe that so well. That will work out nice for intervals that divide an hour evenly, but otherwise will be sensitive to the UNIX epoch, and it might be very unexpected that the first event is fired _before_ `interval` has passed.

I'd suggest an optional parameter named `align` to toggle that behavior.