Friday, November 21, 2008

I finally got around to posting this as an error in iTunes:


When calendars are synced between iCal and iPhone via iTunes, iTunes assigns arbitrary colors to the calendars on iPhone. These colors cannot be changed, and do not match the colors chosen in iCal. On occasion, iTunes will assign two calendars the same arbitrarily-chosen color, making them functionally indistinguishable on iPhone.

This is terrible user interface design because users become accustomed to the 'meaning' of the color of the calendar and use it in recognition of the calendar layout. The mental 'wrench' involved in translating color recognition between two instances of the same calendar data imposes a unnecessary cognitive load on the user.

Solution

  1. Allow the user to set the color of iPhone calendars.

  2. If the intention is not to allow the user control of the calendar color, for simplicity of implementation on iPhone, then the logical solution is to use the same color as specified in iCal.

  3. If the synchronization API does not expose this value, then the algorithm for assigning colors should take care not to assign the same color to two or more calendars. Colors should be assigned in a predictable way (e.g. red for first calendar in iCal, Green for second, etc), so that the user has at least the chance of making a one-time change to their iCal calendars' colors in order to make them the same in both applications.

I filed this as a bug on Radar, and also in the new OpenRadar (here). Apple probably won't take any notice but one has to point this stuff out.