Recommend a calendar plugin?

I'm looking to have an easy to use system for people to add meetings and so on to a site wide calendar, which could then be displayed on a page.

Each meeting would have various bits of data associated with it like date, time, location, description and weblinks. Maybe even also attach files.

Can anyone recommend a plugin that does this?