I am in recent possession of not only my first Android handset, but my first smartphone, a Motorola Droid 2. As a Computer Science major, I have elected not to immediately go the nuclear route of making drastic modifications to it, but have instead tinkered with it gradually over time. This is not entirely relevant in a material way, but helps put into context that which follows.
The issue I am attempting to explain frustrated me very quickly, rapidly culminating in a factory reset, which has not solved the problem. It is (Android Version 2.2) (System version.2.3.20.A955.Verizon.en.US). There are very few apps currently installed on the phone. I first installed "Pandora Radio" by Pandora, "Droidlight LED Flashlight" by Motorola Inc, and "Easy Profiles (Pro)" by SmartDyne.
The first marginally complex task I required of my phone was for it to keep track of dates and times for my college classes, as well as making note of when I receive advance notice of a class cancellation. In this regard, it seems to have failed me quite spectacularly.
I elected to save my classes in my Google Account's Calendar, which my phone is capable of automatically synchronizing with. I assumed this was a task for which Android would be innately well-suited, but it appeared that the only Home Screen widget available to show Calendar events was a last-mile addition by Motorola, in the form of the "Calendar" app/widget, marginally effectively but very genuinely unimpressive. I access it via ...
(Home Screen) -> [App Tray] -> "Calendar"
... and the correspondingly disappointing widget, accessible via ...
(Home Screen) -> [Menu] -> "Add (+)" -> "Motorola widgets" -> "Calendar"
I elected to initially add all of my events in via my desktop running Firefox, for which Google has a satisfactorily robust interface. It allowed me to quickly and easily add in my classes, which repeat at their characteristic times, such as "Every Monday and Wednesday", which must be specified by hand. I then assumed my Droid 2 would be capable of synchronizing these events, displaying them via the Home Screen widget, and should a professor cancel a class, I presumed I would be able to delete that single occurrence of the repeating event from the calendar. If only that were the case.
I am quite plainly unable to trust my Droid 2's Calendar's ability to remain accurate and up-to-date, an embarrassing shortcoming for a smartphone. When slight modifications to my calendar are made, such as the deletion of a single event from a repeating series, undefined behavior results, such as the disappearance of other events from the series. Deleting Monday's iteration of a class from my desktop will not remove it from my phone at all, while removing Monday's iteration of a class from my Droid 2 may result in Wednesday's corresponding class disappearing as well, only to spontaneously reappear the following Monday.
I first sought to troubleshoot that it wasn't simply the "Calendar" app/widget distributed by Motorola, and installed another third party calendar app/widget, electing to try the "Android Agenda Widget" by "Everybody all the time" from the Market. The two existed side-by-side for a while, and it was interesting to note that the inconsistencies continued in both widgets, and the two calendars always displayed identical data.
I have discovered a way to very plainly view all of these inconsistencies in real-time as they occur. I can access my Google Account's Calendar data through the mobile browser, by navigating to " https://m.google.com/app#~calendar ". This view, while grossly inefficient for any real work, has always remained free of any of the inconsistencies seen elsewhere on the device, and has always remained accurate to the view from a desktop browser.
I have reason to believe, at this point, that the error results in an inconsistency between the way Google delivers my calendar information to the phone, and the data structure my phone currently uses to store the information, and that this single data-structure is the sole source of calendar data for any Calendar app/widget I might install from Market. I believe that the structure was designed very specifically for the then-current iteration of Google's Calendar data, which has since widened. This is, however, purely speculative based on the behavior of the interfaces, and backed by no hard data.
As I've said, the inconsistencies are wild, and the issue, while prevalent, has proven difficult to reliably reproduce. In addition to the issues listed above, using my phone to adjust a classes' start time by 15 minutes once caused the entire repeating series to disappear forever, while another time, using the "Calendar" app by Motorola to add a fifteen minute warning notification for a specific occurrence resulted in every. single. Calendar. event. period. to spontaneously disappear from my phone.
I am at my wit's end as how to bring the behavior of my phone back into line, and appeal to you for help. Before bringing my objections to light, I was willing to try a nuclear option, such as flashing a different ROM, but my inexperienced Google searches have yielded no more than one or two walkthroughs for flashing the Droid 2, and none of the available ROMs seemed particularly impressive, rife with their own bugs and misfeatures, and there is no available distribution of Gingerbread for my hardware, which was exceptionally disappointing. The locked bootloader of the Droid 2 seems to be the primary cause of this unavailability. It is genuinely discouraging to see the open nature of Android compromised by such hostile hardware design.
EDIT: @Matt asked me about my Autosync options. We have ...
(Home) -> [Menu] -> "Settings" -> "Data Manager" -> "Data Delivery":
[x] Background data
[ ] Data Roaming
[x] Data enabled
-> Social Applications:
[ ] Sync over WiFi only
and
(Home) -> [Menu] -> "Settings" -> "Battery Manager" -> "Battery mode":
Presets:
[ ] Maximum battery saver
[ ] Nighttime saver
[o] Performance mode
Custom:
[ ] Custom battery saver