Вариант 1: Вы можете сделать это в своем коде Csharp, используя проверку даты и времени внутри таймера, который срабатывает через регулярный интервал.Этот подход плох, поскольку требует, чтобы ваше приложение работало непрерывно.
Опция 2. Вы можете использовать запланированное задание в своей ОС и запускать приложение в определенный час, чтобы достичь того же самого.Моя компания следит за этим для создания автоматических отчетов
Вариант 3. Вы можете использовать службу Windows. ( Учебник по простой службе окон )
Вот ссылка , который поможет вам решить, выбрать ли запланированное задание или службу Windows.