Quartz
http://www.quartz-scheduler.org/overview/features.html as you can see here it's quite complex.
Jobs are scheduled to run when a given Trigger occurs. Triggers can be created with nearly any combination of the following directives:
at a certain time of day (to the millisecond)
on certain days of the week
on certain days of the month
on certain days of the year
not on certain days listed within a registered Calendar (such as business holidays)
repeated a specific number of times
repeated until a specific time/date
repeated indefinitely
repeated with a delay interval
Most of these are possible using cron or windows scheduler as well.
If I were to implement such a thing I would go for either cron or windows scheduler just for simplicity.
If a more organized approach is required for scheduling
Job Persistence
The design of Quartz includes a JobStore interface that can be implemented to provide various mechanisms for the storage of jobs.
like being able to manipulate the schedule through web front end. Or modifying more often automatically by programs then Quartz would be worth using.
If your schedule doesn't change often and there is always some intelligent agent like human being is there to do it go for cron or windows scheduling. I have seen cron being used in enterprise applications so do not underestimate its capability.
Hope that gives you enough grounds to make decision.
Samarjit