I have just stumbled onto a solution to this problem in my situation. It's not something i really understand but for whatever it may or may not be worth, i will share what how the solution came about. I'm not someone who uses Exchange and as far as i know i'm not using Google Calendars, at least it's not something that has come to my attention. I just use the iPhone for my personal needs. My calendar is not shared. i don't have invites.
Until the last week of November, i was using an iPhone 4s with iOS 5. Calendar always worked normally, nothing weird, easy to use. Ever since they first started iCloud, phone and computer have synced. The last week of November, i traded in the 4s in on an iPhone 6 with iOS 8. I set up my phone. Calendar worked normally, no different from iOS 5 where i never had any problems.
A few days ago, 3 or 4 i think, suddenly i encountered three Calendar problems on my iPhone. One was that it wasn't syncing to the cloud or iCal, so my events were saved on the iPhone but not showing up on iCal, or in iCloud. To my knowledge, i didn't change any settings. i had the same settings as i had on my 4s.
The second problem i noticed was that the events i entered in Calendar were showing up in the calendar at the times i entered them but under the name of the event, GMT was given, which was confusing and annoying, and worst of all, a separate entry for that event was showing up before the event, in the early hours of the morning. More confusing. i checked settings, i googled the problem. I experimented with time zone override off and on. i rarely travel so i was OK with Time Zone Override being set to On. But whether it was off or on made no difference, nothing got rid of the GMT info on my entered event. Something i did, apparently, DID get rid of the second entry on the same day at the GMT of the event, so that only the original local time entry showed up, but it still showed the GMT info under the event name.
The third problem was that i started noticing that i always had an alert set for 30 minutes before all my events, even though i didn't set an alert for the event. Before a few days ago, there would be no alert unless i set one. I checked Settings>Mail,Contacts,Calendars>Default Alert Times. All three types were set to None. When i entered a new event in Calendar, i would still get an alert for 30 minutes before the event, even though in Settings it said None. Paying closer attention, when i entered a new event, i scrolled down to see how the alert was set in the event. It said None, as one would expect, since in Settings, it was set to None. I then clicked Add and the event was added to the Calendar. I opened the event and the event had the 30 minute alert. If i then clicked on Edit and changed the setting back to None, it would change to none and when i clicked Done, it would stay as None. pretty ridiculously buggy.
i posted a question to Apple Support Communities about my events not syncing with iCloud. A guy advised me to check Settings > Mail,Contacts,Calendars>Default Calendar. What i found was that on the Default Calendar page, there were two headings. The first one was iCLOUD, the second one was my apple ID, which is a gmail email address. Under the heading, iCLOUD, there were 8 "calendars" to choose from, Pets, Health, Finance, etc. Any one of those, and ONLY ONE, could be selected as my default calendar. That made no sense to me. Why would i choose any one of those as my default calendar, when all my events, in all those calendars, are what i consider to be my default calendar? Why would i want Pets, or Work, or Family, to be my default calendar? i still don't understand this, but one thing it tells me is that in my settings before iOS 8, i never would've chosen any one of those subcalendars to be my default calendar. It just makes no sense to me. What was actually checked as my default calendar was the one and only calendar under the second heading, the Apple ID gmail address. That calendar was called my user name, which is my actual name. That is what had the check mark next to it. Undoubtedly, that is what i had checked on my previous phone. i have to guess because i never had any issues that led me to look at these details. i didn't even know there WAS a default calendar setting. i never had any problems.
what i found in experimenting is that, while i have chosen to leave that non-iCloud Apple ID username calendar checked as my default calendar, when i enter an event, i MUST chose one of the iCLOUD sub calendars in order to get the info to sync to the cloud. This was not the case before a few days ago. i could just leave the calendar in the event as my Apple ID email address user name calendar and it still synced just fine. But suddenly it didn't anymore, and the solution has turned out to be just to always choose one of those iCloud sub calendars when i set up an event, i mean from within the event, i don't have to change it in iPhone settings (default calendar).
So that problem was solved, but i still had GMT info and i still had the 30 minute alert.
i was just now messing around with creating test events in Calendar, to see if i could fix the 30 minute alert problem. I tried selecting Free instead of Busy in the event set up. When i clicked add, my event, named Test, did not have the GMT info. ??? It also didn't have the 30 minute alert. I kept experimenting and determined that this effect had nothing to do with setting the event to Free instead of Busy, but sure enough, i was not getting the GMT info in any of my tests as long as i changed the calendar from my Apple ID/Username calendar to one of the various 8 iCloud sub calendars.
i have replicated this "solution" numerous times in the past half hour or so. What was confusing me for a while is that some of my events, for example a vet appointment for my dog for tomorrow, is set to the iCloud sub calendar, in this case, Pets. I entered this a few days ago. That seems to contradict the logic of the solution i discovered tonight which is that i only get GMT if i create the event and add it (save it) using my non-iCloud calendar, the Apple ID/gmail/user name calendar. But i have just tested this and i am realizing in retrospect that i must have saved that event in my non-iCloud calendar, and then later i went in and changed the calendar to Pets, an iCloud calendar. What happens is (i have just replicated it a few times) if i save/add the event in the non-iCloud calendar, it will have GMT info, and even if i go back change (edit) that event to an iCloud calendar later, the GMT info will remain. But if, when i set up the event the first time, i set it to one of the iCloud calendars, it will NOT have GMT info. The only way i can get the GMT information for that event is to go back in and change the calendar to the non iCloud calendar. Then, if i go back in and change it back to the iCloud calendar, i am stuck with the GMT. Using the iCloud calendar only gets rid of GMT info if the event is set up that way in the beginning. It can't be edited out after.
So in this haphazard bizarre way, i have found a solution in which i will no longer get GMT info, as long as i add the event using an iCloud calendar. If i add an event without first changing the calendar from my non iCloud calendar to an iCloud one, then i will be stuck with the GMT info, even if i later change it to an iCloud calendar, unless i delete the event and re-enter it using an iCloud calendar.
This has also seemed to be the solution to my 30 minute alert problem. The test events i set up without changing to an iCloud calendar, where i used my non iCloud calendar, have the 30 minute alerts. The ones i set up using one of the iCloud calendars do not have any alert.
Maybe there are bits of info in this bizarre story that will help others find a way to a solution for their situation. or not.