Я предлагаю в таблице с расписанием сохранять конкретную дату и время рассылки конкретному пользователю. Чтобы при самой рассылке не заниматься сложными вычислениями.
А для удобства формирования рассылок сделать отдельную таблицу с шаблонами. Точнее, две таблицы — сам шаблон и его строки с расписанием. Там указывать смещение и прочие детали.