public static int guessEventTimeMinutes(final String searchText) {
        final int eventTimeStandardFormat = getEventTimeStandardFormat(searchText);
        if (eventTimeStandardFormat != UNKNOWN) {
            return eventTimeStandardFormat;
        }

        int start = UNKNOWN;
        int eventTimeMinutes = UNKNOWN;
        for (final Pattern pattern : getEventTimePatterns()) {
            final MatcherWrapper matcher = new MatcherWrapper(pattern, searchText);
            while (matcher.find()) {
                try {
                    final int hours = Integer.parseInt(matcher.group(1));
                    int minutes = 0;
                    if (matcher.groupCount() >= 2 && StringUtils.isNotEmpty(matcher.group(2))) {
                        minutes = Integer.parseInt(matcher.group(2));
                    }
                    if (hours >= 0 && hours < 24 && minutes >= 0 && minutes < 60 && (eventTimeMinutes == -1 || matcher.start() < start)) {
                        eventTimeMinutes = hours * 60 + minutes;
                        start = matcher.start();
                    }
                } catch (final NumberFormatException ignored) {
                    // cannot happen, but static code analysis doesn't know
                }
            }
        }
        return eventTimeMinutes;
    }
event time format embedded into cache descriptions as generated by <a href="https://gcffm.de/eventstandard.html">standard event</a>
main/src/main/java/cgeo/geocaching/utils/EventTimeParser.java