docs: public void run()
      {
          CalendarEntry recCalendarEntry = (CalendarEntry)this.getMainRecord();
          recCalendarEntry.close();
          try {
              Date now = new Date();
              Date date = null;
          
              ((Application)this.getTask().getApplication()).getTaskScheduler().addTask(PrivateTaskScheduler.EMPTY_TIMED_JOBS);    // Clear out any jobs queued for a later time
          
              while (recCalendarEntry.hasNext())
              {
                  recCalendarEntry.next();
                  
                  Map<String,Object> properties = recCalendarEntry.getProperties();
                  if ((properties == null) || (properties.get(DBParams.PROCESS) == null))
                      continue;   // Not a task
                  if (properties.get(CalendarUpdateProcess.TASK_COMPLETED) != null)
                      continue;   // It has already been run
          
                  date = ((DateTimeField)recCalendarEntry.getField(CalendarEntry.START_DATE_TIME)).getDateTime();
                  if (date == null)
                      continue;   // Never?
                  if ((date.getTime() - now.getTime()) > 0)
                      break;  // The one should be run later
          
                  this.runCalendarEntry(properties);  // Queue this job
                  // Now, Add a process that will mark this job as done (todo(don) NOTE: This will only work if there is one thread on the task scheduler)
                  Map<String,Object> propUpdateTask = new Hashtable<String,Object>();
                  propUpdateTask.put(DBParams.PROCESS, CalendarUpdateProcess.class.getName());
                  propUpdateTask.put(DBParams.ID, recCalendarEntry.getCounterField().toString());
                  this.runCalendarEntry(propUpdateTask);  // Queue this job
              }
              
              if (date != null)
                  if ((date.getTime() - now.getTime()) > 0)
              {
                  Map<String,Object> propSleepTask = new Hashtable<String,Object>();
                  propSleepTask.put(PrivateTaskScheduler.TIME_TO_RUN, date);
                  propSleepTask.put(PrivateTaskScheduler.NO_DUPLICATE, Constants.TRUE);   // Being careful
                  propSleepTask.put(DBParams.PROCESS, JobSchedulerProcess.class.getName());
                  this.runCalendarEntry(propSleepTask);  // Queue this job
              }
          } catch (DBException ex) {
              ex.printStackTrace();
          }
      }