Timer to start car engine
You can do this with a remote start kit, a spare key fob, and a switch to let your Arduino (or whatever) "press" the start button on the fob at the desired time. 

Wire a spare GPIO on the Arduino to a MOSFET and the contacts in the key fob, and create a program / sketch that toggles the pin at the desired time. 

If you don't want to get a remote start kit, you'll wind up having to build basically the same thing, including bypassing the anti-theft system (if present) and/or leaving a key in the ignition. Also, I hope this is for a car with an automatic transmission. You don't want your car charging into the nearest obstacle on its own if you accidentally leave it in gear. (As a manual transmission-equipped car should always be parked.)

I'd also add a way to make sure that the car isn't already running before activating. Maybe add an ADC connected to the tachometer signal, or read from a switched pin in the fuse box?