Yes, Google calendar does everything you want---email reminders, graphical manipulation, etc. It's set up to send email reminders for all events by default.
(For the more venerable [think 1980s] and esoteric, I highly recommend the text-based program Remind. -- http://www.roaringpenguin.com/products/remind -- Lightning fast to manipulate, very flexible output, and scriptable to your heart's content. But this will not be to everyone's liking since it's a bit geeky and runs on *nix platforms.)