Events Manager lets you manage single and repeated events.
You can group events into categories, and display them in a variety of ways through sidebar widgets and template tags.
If you’re the coding type you can use it’s API to get events straight from the database.