code: public Instant getNextExecutionTimeAfter(Instant now) {
          OffsetTime timeOfDay = OffsetTime.from(TIME_OF_DAY_FORMAT.parse(getTimeOfDay()));
  
          // The time of the next run is based on the time past midnight UTC relative to the current time
          Instant nextExecTime = now.atOffset(ZoneOffset.UTC).with(timeOfDay).toInstant();
  
          // If the first execution would have been for earlier today move to the next execution.
          while (nextExecTime.isBefore(now)) {
              nextExecTime = nextExecTime.plus(Duration.ofDays(1));
          }
  
          return nextExecTime;
      }
docs: Gets the first execution time for the given scan and upload which is at or after "now".