Sleeptiming is a simple web app that calculates exactly when you need to go to sleep in order to wake up when you'll be fully rested. All you have to do is input how long it usually takes you to fall asleep and how long your usual sleep cycles are.
If you don't know, it'll make assumptions for you based on the average person. Once you've added this information (or accepted Sleeptiming's defaults), you'll be provided with a good time to wake up and feel rested. Sleeptiming will also offer additional wake-up times should you not be able to get a full night sleep but want to make the best of the time that you do have. Finally, if you need to wake up at a specific time in the morning, you can also choose to calculate when you'll need to go to bed in order to awake rested.
If you want to bring more data to the table and get the best results out of sleeptiming, you might want to check out some sleep technology. Even your smartphone can give you a decent picture of your sleep cycles so you can start calculating the optimal bedtime.