Show different events to different user groups
I solved this by:


Enabling the PHP module that comes as part of Drupal 7 core but is disabled by default.  Enabling this module creates a new text format called "PHP Code"
Creating a new page and setting the text format of that page to "PHP Code".  I called the page "Calendar of Events".
Putting the following code in the body of that new page:


  &lt;?php
     $role = user_role_load_by_name('My Role');
     if (user_has_role($role-&gt;rid)) {
       header("Location: https://mysite/civicrm/event/ical? 
       reset=1&amp;list=1&amp;html=1&amp;type=7");  /* Redirect browser */
       exit();
     }
     ?&gt;



This solution requires you to have a separate Drupal role for each group of users you want to show different events to.  It also requires that you have defined different event types.  So for example, users in the group Managers would see events that have event types such as "Manager Meeting", "Employee Meeting", and "Very Secret Meeting".  You define the event types in CiviCRM's Administer menu for CiviEvent.  The &amp;type=X is what defines what event types will be displayed; the X value comes from the event type list in CiviCRM's CiviEvent administration.  You can comma separate the &amp;type=X,Y,Z for example to show one user role multiple event types.