ChronicJ is a Java implementation of select temporal patterns by Martin Fowler . Notably:

Using these patterns, ChronicJ provides:
  • ability to define recurring events using simple, set-like expressions
  • an interfaced-based API for creating schedules for arbitrary events/objects
  • precisioned date types using Time Points
  • date Ranges

In general, these features are implemented through interface- separated, bean-and-component-friendly POJO's (plain old Java objects). ChronicJs' public API's require only standard java.* and javax.* classes. This means they are easy to test and integrate.

Time Is Definitely Not On Your Side

Building solid temporal applications is..well...time-consuming... tempus fugit