Okay forget my last post - I'm back to the post of 06 Oct 2015.
The problem is that we are in "Mountain Standard Time" NOT "US Mountain Standard Time" so this needs to work for the appropriate TZ. "US Mountain Standard Time" does not support DST and does not contain any adjustment rules for processing DST.
Here's the behavior I'm seeing (which I cannot reproduce on your demo site):
I set TimeZoneID property of the Scheduler to "Mountain Standard Time" and create an appointment on Tuesday March 1, 2016 to start on Friday March 1 2016 from 7:00 a.m. to 8:00 a.m. and recurring every Monday for through December 31, 2016.
The appointments gets stored in the database as UTC (14:00 - 15:00), which is correctly -7:00.
The occurrences show on the scheduler at 7:00 a.m. - 8:00 a.m. until March 18, 2016 - where they being showing up in the scheduler 8-9 a.m. (-6:00) and continue to November 11, 2016, when they start appearing again from 7-8 a.m.
If I then switch the TimeZoneID to "US Mountain Standard Time" all occurrences show on the scheduler 7-8 a.m.
I really confused and frustrated with this whole recurrence issue and need to resolve what's going on.