There has been a lot of talk on this over the years. To use the timer, your program would have to be constantly running and the timer would use system resources. There are solutions out there to avoid this, but most people end up recommending the Task Scheduler that's built into Windows. I use this method in one of my backup programs.

I use a switch when I call the executable to tell it that I will be performing an unattended backup so no user interaction is required. Now, that's all we do. I hope this helps.