Calendar with = Calendar.getInstance(); Map dayToDelay = new HashMap(); dayToDelay.put(Calendar.FRIDAY, 2); dayToDelay.put(Calendar.SATURDAY, 1); dayToDelay.put(Calendar.SUNDAY, 0); dayToDelay.put(Calendar.MONDAY, 6); dayToDelay.put(Calendar.TUESDAY, 5); dayToDelay.put(Calendar.WEDNESDAY, 4); dayToDelay.put(Calendar.THURSDAY, 3); int dayOfWeek = with.get(DAY_OF_WEEK); int delayInDays = dayToDelay.get(dayOfWeek); System.out.println("When the event will start:" + delayInDays); System.out.println("Started Correctly the Wanderer event"); ScheduledExecutorService service = Executors.newSingleThreadScheduledExecutor(); service.scheduleAtFixedRate(() -> { try { start() } catch (ParseException e) { throw new RuntimeException(e); } }, delayInDays, 7, TimeUnit.DAYS); //7