title: Fire Job only one time at specific date and time
body: <p>I have that code for Job - just log info to database </p>
  
  <pre><code> public class Job : IJob 
      { 
          private static readonly log4net.ILog log = 
  log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod( ).DeclaringType); 
          #region IJob Members 
          public void Execute(IJobExecutionContext context) 
          { 
              // This job simply prints out its job name and the 
              // date and time that it is running 
              JobKey jobKey = context.JobDetail.Key; 
              log.InfoFormat("SimpleJob says: {0} executing at {1}", 
  jobKey, DateTime.Now.ToString("r")); 
          } 
          #endregion 
      } 
  </code></pre>
  
  <p>My singleton scheduler class </p>
  
  <pre><code>public class Scheduler 
      { 
          static Scheduler() 
          { 
              NameValueCollection properties = new 
  NameValueCollection(); 
              properties["quartz.scheduler.instanceName"] = "myApp"; 
              properties["quartz.scheduler.instanceId"] = "MyApp"; 
              properties["quartz.threadPool.type"] = 
  "Quartz.Simpl.SimpleThreadPool, Quartz"; 
              properties["quartz.threadPool.threadCount"] = "10"; 
              properties["quartz.threadPool.threadPriority"] = "Normal"; 
              properties["quartz.scheduler.instanceName"] = 
  "TestScheduler"; 
              properties["quartz.scheduler.instanceId"] = 
  "instance_one"; 
              properties["quartz.jobStore.type"] = 
  "Quartz.Impl.AdoJobStore.JobStoreTX, Quartz"; 
              properties["quartz.jobStore.useProperties"] = "true"; 
              properties["quartz.jobStore.dataSource"] = "default"; 
              properties["quartz.jobStore.tablePrefix"] = "QRTZ_"; 
              // if running MS SQL Server we need this 
              properties["quartz.jobStore.lockHandler.type"] = 
  "Quartz.Impl.AdoJobStore.UpdateLockRowSemaphore, Quartz"; 
              properties["quartz.dataSource.default.connectionString"] = 
  "Server=localhost;Database=quartzr;Uid=user;Pwd=pass"; 
              properties["quartz.dataSource.default.provider"] = 
  "SqlServer-20"; 
              _schedulerFactory = new StdSchedulerFactory(properties); 
              _scheduler = _schedulerFactory.GetScheduler(); 
          } 
          public static IScheduler GetScheduler() 
          { 
              return _scheduler; 
          } 
          private static readonly ISchedulerFactory _schedulerFactory; 
          private static readonly IScheduler _scheduler; 
      } 
  </code></pre>
  
  <p>Global.asax start scheduler </p>
  
  <pre><code>void Application_Start(object sender, EventArgs e) 
          { 
              Scheduler.GetScheduler().Start(); 
          } 
  </code></pre>
  
  <p>And code to add jobs </p>
  
  <pre><code> DateTime SelectedDate = this.Calendar1.SelectedDate; 
                  int hour = this.TimeSelector1.Hour; 
                  int minute = this.TimeSelector1.Minute; 
                  int second = this.TimeSelector1.Second; 
                  // First we must get a reference to a scheduler 
                  // jobs can be scheduled before sched.start() has been 
  called 
                  // get a "nice round" time a few seconds in the 
  future... 
                  DateTimeOffset startTime = DateBuilder.DateOf(hour, 
  minute, second, SelectedDate.Day, SelectedDate.Month, 
  SelectedDate.Year); 
                  try 
                  { 
                      // job1 will only fire once at date/time "ts" 
                      IJobDetail job = JobBuilder.Create&lt;Job&gt;() 
                          .WithIdentity("job1", "group1") 
                          .Build(); 
                      ISimpleTrigger trigger = 
  (ISimpleTrigger)TriggerBuilder.Create() 
                                                                    .WithIdentity("trigger1", 
  "group1") 
                                                                    .StartAt(startTime) 
                                                                    .Build(); 
                      // schedule it to run! 
                      DateTimeOffset? ft = 
  Scheduler.GetScheduler().ScheduleJob(job, trigger); 
                      log.Info(job.Key + 
                               " will run at: " + ft); 
                      this.Label1.Text = "Zdarzenie dodane"; 
                  } 
                  catch (Exception ex) 
                  { 
                      log.Error(ex.Message, ex); 
                  } 
  </code></pre>
  
  <p>Problem is that jobs was add to db, but it fire immediately, not at 
  specific time by me :/ I use latest library <strong>Quartz.NET 2.0 beta 2</strong>
  Do I something wrong in code? I begginer with this API, please help </p>