I have users in different groups; depending on the group they are in, when they see the events listing, I'd like them to only see events that are relevant for them based on the group(s) they are in.
For example, let's say I have users in 3 groups: Employee, Manager, Contractor. Manager gets to see events for all groups. Contractor only gets to see Contractor events. Employee gets to see events for Employee and Contractor.
Right now I am just using the basic CiviEvent listing: https://mysiteurl/civicrm/event/ical?reset=1&list=1&html=1.
One option I have thought of is to use the "Event Type" as a filtering mechanism because you can then use URLs like https://mysiteurl/civicrm/event/ical?reset=1&list=1&html=1&type=XXX. So then for event display I would create my own event listing page and embed iframes. I would still need to find a way to identify programmatically what group the user is in and only display the iframe for that user. The problem with this option is that it does not show the events in date order: it would show the Employee events in date order, then in a separate section the Manager events in date order, and in a third section the Contractor events in date order. I feel this would become confusing for people. I'd rather show them just one single event list that is in date order and only shows events that are relevant to them.
I guess it might be possible to use views? But I don't know much about views.
So I'm looking for advice or help. I haven't been able to find any plugins or sample code that might do this but it seems like it would be a super common use case?
PS: I am on Drupal 7 and Civi 4.6.X.