Это обходной путь к вашему решению. Просто используйте запланированную аннотацию как есть, но используйте дату с ней. То есть
String targetDate="2020-02-06 13:50:00";
Date date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(targetDate);
if(new Date().getTime()==date.getTime())
{
then put your logic here.
}
edit -> Достаточно просто проверить год. Так что вы можете сделать это.
@Scheduled(cron = "0 50 13 6 2 ?")
public void doTheJobForOnceInSpecificTime() {
if (Year.now().getValue() == 2020) {
//your logic
}
}