code: public static Instant nextInstant(Instant instant, Schedule schedule) {
      final ExecutionTime executionTime = ExecutionTime.forCron(cron(schedule));
      final ZonedDateTime utcDateTime = instant.atZone(UTC);
  
      return executionTime.nextExecution(utcDateTime)
          .orElseThrow(IllegalArgumentException::new) // with unix cron, this should not happen
          .toInstant();
    }
docs: Gets the next execution instant for a {@link Schedule}, relative to a given instant.
  
  <p>e.g. an hourly schedule has a next execution instant at 14:00 relative to 13:22.
  
  @param instant  The instant to calculate the next execution instant relative to
  @param schedule The schedule of executions
  @return an instant at the next execution time