fromField.setImmediate(true); toField.setImmediate(true); fromField.addValueChangeListener(e -> { if (e.getProperty().getValue() != null) { toField.setRangeStart((Date) e.getProperty().getValue()); toField.addValueChangeListener(e -> { if (e.getProperty().getValue() != null) { fromField.setRangeEnd((Date) e.getProperty().getValue());