final CronScheduleBuilder csb = CronScheduleBuilder.cronSchedule(getCronExpression());
if (timeZone != null) {
csb.inTimeZone(TimeZone.getTimeZone(timeZone));
}
trigger = tb.withSchedule(csb).build();
try {
((CronTriggerImpl) trigger).validate();
} catch (final SchedulerException e) {
throw new InvalidPropertyException(e);