One big part of waking up refreshed and comfortable, instead of aggravated is getting to bed at the right time. Sleepyti.me is a webapp based on our sleep cycles that calculates when you should fall asleep or, alternately, set your alarm.
Enter in when you need to wake up and you'll get four best times to fall asleep. Note: the times are not when you should go to bed, but actually be asleep, so you'll need to add in however long you think it takes you to do that. The average person, apparently, takes fourteen minutes.
Sleepyti.me is similar to previously mentioned SleepTiming but is based on strictly 90 minute sleep cycles, while SleepTiming lets you enter your own cycle time and amount of minutes you fall asleep. The premise is the same: We feel most refreshed and less groggy when we wake in between cycles rather than in the middle of it.
Give it a try to see if you can time your sleep for the best rest.