code: @Override
      public ScheduledFuture<?> schedule(Runnable task, Date startTime) {
          long initialDelay = startTime.getTime() - System.currentTimeMillis();
          try {
              return this.scheduledExecutor.schedule(decorateTask(task, false), initialDelay, TimeUnit.MILLISECONDS);
          } catch (RejectedExecutionException ex) {
              throw new TaskRejectedException("Executor [" + this.scheduledExecutor + "] did not accept task: " + task,
                      ex);
          }
      }
docs: {@inheritDoc}
  
  @see org.audit4j.core.schedule.TaskScheduler#schedule(java.lang.Runnable,
  java.util.Date)