Если временные рамки будут чем-то простым, например, один раз в день, один раз в неделю и т. Д. c., Использование папки cron.d является довольно тривиальным и, на мой взгляд, подходящим решением.
Самый простой способ - каждый пользователь имеет свой собственный файл с простым однострочным оператором cron, который отражает выбранное им время. Когда пользователь выбирает свое время, часть вашего сервиса создает правильный файл для этого пользователя. Вы можете go оттуда.
Поместите ли вы их в базу данных - это действительно вопрос вашей собственной системы; При правильной схеме именования файлов вы можете сделать это, не сохраняя запрошенное время в постоянном хранилище.