Windows services are designed to work all the time until explicitly stopped or until system shutdown. Use your timer only to initiate some action of a working service.
But maybe you don't need your own service at all? If you only need to initiate some action at certain moments of time, you can use already available service, designed specially for this purpose, which can support really complex schedules. It is already bundled with Windows and enabled; you can use it on different levels. It is called Window Task Scheduler, see
http://en.wikipedia.org/wiki/Windows_Task_Scheduler[
^].
First, you can schedule events using command-line utilities AT.EXE or CSHTASKS.EXE (which is replacing AT.EXE), see:
http://en.wikipedia.org/wiki/At_%28Windows%29[
^],
http://en.wikipedia.org/wiki/Schtasks[
^],
http://technet.microsoft.com/en-us/library/bb490866.aspx[
^],
http://msdn.microsoft.com/en-us/library/windows/desktop/bb736357%28v=vs.85%29.aspx[
^].
And you also can use Window Task Scheduler API, please see:
http://msdn.microsoft.com/en-us/library/windows/desktop/aa383614%28v=vs.85%29.aspx[
^],
http://msdn.microsoft.com/en-us/library/windows/desktop/aa383608%28v=vs.85%29.aspx[
^].
To see how can you use it with .NET, see this CodeProject article:
A New Task Scheduler Class Library for .NET[
^].
—SA