1.) When the calendar view is changed (e.g. agenda to posterboard, etc) and perhaps anytime 'Update Settings' is clicked a feed refresh gets triggered. So if a feed refresh is triggered while another feed refresh is already occurring the duplication of events occurs. We have a ticket into the developer about this.
2.) If this feed refresh during a feed refresh happens a number of times in a short period of time, bad records may be introduced (events with no time or date). With those bad records the number of events may jump around wildly during the feed refresh.
More Explanation: During a feed refresh, you can repeatedly reload the front page of the dashboard to watch all of the events get removed and then be re-added. If all of your events are associated with one feed (let's say there are 230 events total), the expected behavior during a feed refresh would be seeing a smaller number of events each time you refresh the dashboard until it reaches zero, then a larger number of events each time you refresh the dashboard until you reach the total number of events in the feed (in this example 230, assuming there were no changes in the feeding calendar).
With those bad records in the events list, the number of events could jump around wildly (872 -> 443 -> 1261 -> 1712 -> 944).
3.) After removing the bad records the events should decrease and increase as expected during the feed refresh.
1.) Duplication of events occurs when a feed refresh is triggered during an active feed refresh or when bad records (events with no time or date) are in the list of events.
2.) Bad records appear to be created when a feed refresh is triggered during an active refresh.
3.) Feed refreshes occur when you click 'Refresh' on the feed itself (on the 'Calendar Feeds' menu), when the view is changed (on the 'Settings' menu), and quite possibly any time the 'Update Settings' button is clicked (on any time.ly menu).
The calendar is still very functional, especially now that we know about these pitfalls. Until we receive a patch from the developer or in lieu of that, repair the issue ourselves, we should take these steps to ensure its 'safe' use.
1.) Before clicking 'Refresh' on the feed or clicking 'Update Settings' on any of the time.ly menus, ensure that an active feed refresh is not occurring by reloading the front page of the dashboard a couple of times and watching the number of events. If the number of events is holding steady, move forward with your changes.
2.) If you know a refresh was triggered during an active refresh or you see duplication errors, check for an active feed refresh (reload the dashboard a couple of times, checking the number of events) and if active allow it to conclude, then look at the 'All Events' list, if you see any events that do not have a time/date delete them (move to trash, then empty trash). Then if duplication errors are present refresh the feed (on the 'Calendar Feeds' menu click refresh on the listed feed). This should take care of duplication issues without introducing anymore errors.