Here’s some instructions on how to change the colours within iPhone’s calendars.
Since iPhone OS 2.0 was released, I’ve been slightly frustrated that the calendar colours on the iPhone are not the same colours used for the same calendars in iCal. For Windows users, I understand the same problem arises with Outlook calendar colours. Colours on the iPhone seemed to be assigned at random.
It’s only a small thing, but it’s slight mental disconnect. Such inconsistencies detract from the overall experience of a polished device.
There’s a long thread over on Apple Discussions about it, which is currently unanswered.
One way to fix it (for most people) is to sync through MobileMe – but I don’t use that service. MacOSXHints.com has a hint that I tried, which involves syncing and resyncing in an effort to force the iPhone to assign the correct colours. Despite a few goes, no joy for me.
After some more Googling, I’ve found two ways that will definitely alter the colours to those of your choosing, but I’m afraid these are only available to jailbroken iPhones.
1. Maticek has detailed a method of altering the CalendarColors.plist (but he’s incorrect that the iPhone calendar will only support 5 colours).
2. The method I used was detailed in this Google Groups posting relating to the recently-released Google Mobile Sync.
Click on “Show all 14 answers or post an answer…” and scroll down to the answer from Michael Ansel. He explains how to SSH in and modify the colours in the SQLite3 database. It’s actually quite simple, and can even be done on the iPhone itself.
Make sure you have OpenSSH installed on the iPhone first. Alternatively, if you’re doing it directly on the iPhone, install Mobile Terminal and sqlite3l.
Here are the instructions in full:
$ cd /var/mobile/Library/Calendar
$ sqlite3 Calendar.sqlitedbsqlite> select title,color_r,color_g,color_b from Calendar; — List calendars and current colors
Default|-1|-1|-1
Michael Ansel|181|0|13
School-Important|47|141|0
School-Studying|15|77|140
School-Class|229|98|0sqlite> update Calendar set color_r=181, color_g=0, color_b=13 where title = ‘School-Important’; — Red
sqlite> update Calendar set color_r=229, color_g=98, color_b=0 where title = ‘School-Studying’; — Orange
sqlite> update Calendar set color_r=103, color_g=10, color_b=108 where title = ‘School-Class’; — Purple
sqlite> update Calendar set color_r=15, color_g=77, color_b=140 where title = ‘Michael Ansel’; — Bluesqlite> select title,color_r,color_g,color_b from Calendar; — List calendars and current colors
Default|-1|-1|-1
Michael Ansel|15|77|140
School-Important|181|0|13
School-Studying|229|98|0
School-Class|103|10|108sqlite> .quit
$ exit
###################
RGB Values for the Standard Colors
Red = (181,0,13)
Orange = (229,98,0)
Green = (47,141,0)
Blue = (15,77,140)
Purple = (103,10,108)
And that’s it! Thanks Michael – works flawlessly. One little niggle removed. I don’t know if it’ll survive an OS upgrade, but I don’t see why not. Enjoy
*concession to our American readers. Don’t tell my English teacher parents