Hello Simonjr,
1. Users can create their own events. And you can use the private events calendar plugin as well as the User Specific events plugin. then you can create a menu item and allow filtering by the users created events or their private events, depending of whether you want the public to see their events or not.
2. This is indeed possible with JomSocial, with CB if you assign the users to x group then you can invite based on Joomla! usergroups? Ir are you using groupjive or some thing similar?
3. The color by event by day is definitely a customization. How do your see this being achieved?
i.e. set days for the colors? or have the users manually change them... I suspect... It might be possible with the custom fields addon..
4. This is an easy one see:
http://www.jevents.net/jevents-15-topme ... in-jevents
You would need the Gold Level for RSVP Pro if you are planning on using the invitations for the event creators/admins.
Many thanks
Tony