code: private void markDateInvocation() {
  
      _updatePreviousDates = !_dateGivenInGroup;
      _dateGivenInGroup = true;
      _dateGroup.setDateInferred(false);
  
      if(_firstDateInvocationInGroup) {
        // if a time has been given within the current date group, 
        // we capture the current time before resetting the calendar
        if(_timeGivenInGroup) {
          int hours = _calendar.get(Calendar.HOUR_OF_DAY);
          int minutes = _calendar.get(Calendar.MINUTE);
          int seconds = _calendar.get(Calendar.SECOND);
          resetCalendar();
          _calendar.set(Calendar.HOUR_OF_DAY, hours);
          _calendar.set(Calendar.MINUTE, minutes);
          _calendar.set(Calendar.SECOND, seconds);
        }
        else {
          resetCalendar();
        }
        _firstDateInvocationInGroup = false;
      }
    }
docs: ensures that the first invocation of a date seeking
  rule is captured