Why are Civi Events and Activities in Drupal Views Calendar showing incorrect times
According to Eileen "the meta fix for CiviCRM for timezone issues is to change the type of appropriate fields to mysql timestamps (which we actually do sometimes) but views calendar should just assume it's getting the data in whatever timezone it is in". 

We found this post by SGladstone (thanks Sarah) which gave us a new direction to explore, and Chris has now done a PR for a fix based on that approach.