строковых элементов со временем
Их придётся преобразовать в объекты Date или лучше сразу в целые числа миллисекунд с Unix epoch. С целыми и работать потом.
var s = "2018-08-02 12:56";
var d = new Date(s); // объект Date в текущем часовом поясе браузера
+d // 1533203760000
Так составить массив с целочисленными полями:
[
{ ts: 1533203760000, title: "сварить кофе" },
{ ts: 1533203780000, title: "съесть булочку" },
]
Удалить все прошедшие.
Отобразить.
Найти ближайшее событие и зарядить
setTimeout()
на время до него. Раньше обновлять не имеет смысла. При добавлении/удалении событий в массив, конечно, надо всё обновлять/пересчитывать. Поэтому и значение таймера
var timer = setTimeout(...)
надо сохранить, чтобы иметь возможность отменить.