Masking event title if marked as "private" (Views, Pathauto…)
hook_node_load() should be suitable for changing the title based on the private status and current user.

Changing the path will be the hard bit.

Pathauto can only have 1 configuration per bundle so you'll need to use hook_node_insert() and hook_node_update()
to act on events being added or altered to set the private path alias. path_save() can be used to actually save the new alias, but you will need to code the logic to come up with the alias yourself. This post on drupal.org may help.

Once the additional alias is set you will need to make sure to use the correct alias when building links to the content based on the current users permissions.