Allow upcoming to take a date argument, simplify JS