Hi there!
Yes, ExpressionEngine would be a great fit for this site. You might take a look at a site like Director-EE as an example of a site built with ExpressionEngine that includes user profiles that they update themselves. It allows viewers to sort and search those profiles a variety of ways. I’m not sure exactly the route Director-EE takes to get there, but you could use the included SafeCracker module to accomplish this. Solspace’s User also gives you a ton of flexibility for user profiles.
Speaking of Solspace, I would recommend their module Calendar for your project, though it’s certainly possible to simply set up each calendar item as its own Channel Entry without the need for any additional add-ons. Let me recommend having a look over the Big Picture article in our User Guide. It’ll help give you a better idea for how content is structured and displayed in ExpressionEngine.
Hope this helps! Are there any other questions I could answer for you?