Not really hidden, but not really out there either, the event/oberserver/asynchronous/quartz combo :
You can raise Events (like signals) with the builtin Seam component Events :
Events.instance().raiseEvent("event name", params ...);
Events.instance().raiseAsynchronousEvent("event name", params ...);
You can catch those events with @Observer :
@Observer("event name")
public void fonction(param1, param2, etc) {}
You can create a job with Quartz and Seam which will raise an event every time the scheduler activates :
org.jboss.seam.async.QuartzDispatcher.instance().scheduleTimedEvent("event name", Scheduler);
You can create a CronScheduler:
new CronSchedule(firstExecution, "cronSchema", "event name");
You can have a handle on this quartz job, for pausing, resuming, and stopping this job :
org.jboss.seam.async.QuartzTriggerHandle handle = QuartzDispatcher.instance().scheduleTimedEvent( blabla );
Cool eh ?