code: public Date scheduleJob (final ITrigger trigger) throws SchedulerException
    {
      validateState ();
  
      if (trigger == null)
      {
        throw new SchedulerException ("Trigger cannot be null");
      }
  
      final IOperableTrigger trig = (IOperableTrigger) trigger;
  
      trig.validate ();
  
      ICalendar cal = null;
      if (trigger.getCalendarName () != null)
      {
        cal = m_aResources.getJobStore ().retrieveCalendar (trigger.getCalendarName ());
        if (cal == null)
        {
          throw new SchedulerException ("Calendar not found: " + trigger.getCalendarName ());
        }
      }
      final Date ft = trig.computeFirstFireTime (cal);
  
      if (ft == null)
      {
        throw new SchedulerException ("Based on configured schedule, the given trigger '" +
                                      trigger.getKey () +
                                      "' will never fire.");
      }
  
      m_aResources.getJobStore ().storeTrigger (trig, false);
      notifySchedulerThread (trigger.getNextFireTime ().getTime ());
      notifySchedulerListenersSchduled (trigger);
  
      return ft;
    }
docs: <p>
  Schedule the given <code>{@link com.helger.quartz.ITrigger}</code> with the
  <code>Job</code> identified by the <code>Trigger</code>'s settings.
  </p>
  
  @throws SchedulerException
  if the indicated Job does not exist, or the Trigger cannot be added
  to the Scheduler, or there is an internal Scheduler error.