В БД таблица
id_кому, timestamp_когда, отправлено_когда (nullable)
Скрипт по крону раз в 5 минут собирает из базы
id_кому тех, где текущее время больше, чем
ts_когда, и которые ещё не отправлены (
отправлено_когда IS NULL)
Отправляет, проставляет им время отправки.