How to edit calendar colors for iPhone 2.0.x OS

Since the release of iTunes 8.1, this tutorial is no more needed. iTunes 8.1 finally syncs all the calendar colors corectly. Welcome to the year 2002, Apple!


You’ve probably noticed by now, that calendar colors don’t sync correctly via USB. Currently the only option to get your calendar colors synced to iPhone correctly is by signing up for MobileMe. This isn’t really a good fix. Turns out that if you have a jailbroken/pwnd iPhone/iPod Touch there is an alternative.


Disclaimer: I’ve found this out by chance and the power of will (read: being stubborn). Don’t hold me responsible if you loose any of your data doing this. I’ve done it many times and haven’t lost anything. If you destroy your iPhone or iPod Touch, you should really not have done this in the first place!

On to the tutorial then…

UPDATE:

I just got a reply by a reader saying that there is an easier way to get all your colors to the iPhone. Bellow is the copied commentary. In the comment he states, that because he doesn’t sync with iCal, he isn’t really sure that the colors stay in sync. Turns out they do!  Changing colors just became a hell of a lot more easier. Happy coloring 🙂 !

I found another way to do this, just playing around like you did. Copy calendar.sqlitedb from the /private/var/mobile/Library/Calendar directory on your iPhone to your computer, and make a backup of it (recommended). Open it with SQLite Dabase Editor (http://sourceforge.net/projects/sqlitebrowser/) and go to the second tab, “Browse Data”. Under “Table”, choose “Calendar”. This will give you a list of all of the calendars on your phone. Each row is a different calendar. There are three columns – color_r, color_g, and color_b. Set these to whatever you want for your RGB colors for each calendar. (It is not limited to five colors). Save the file and copy it back to your phone.


Original tutorial:

 


1. Connect to your iPhone/iPod Touch via SSH using your favourite FTP client.1. Connect to your iPhone/iPod Touch via SSH using your favourite FTP client.

2. Go to the following folder:2. Go to the following folder:

::

3. Find CalendarColors.plist and download it to a folder somewhere save. You probably want to make a backup, just in case things go bad.3. Find CalendarColors.plist and download it to a folder somewhere save. You probably want to make a backup, just in case things go bad.

4. Next, you will probably need to trans-code the plist first. You can do that by using 4. Next, you will probably need to trans-code the plist first. You can do that by using XML.plist converterXML.plist converter. It will give you a xml.plist file that is editable in any text editor (TextEdit, Notepad). Finally rename it to CalendarColors.plist.. It will give you a xml.plist file that is editable in any text editor (TextEdit, Notepad). Finally rename it to CalendarColors.plist.

5. Now open the file you just transcoded. It should look like this:5. Now open the file you just transcoded. It should look like this:

6. The numbers you see between <integer></integer> correspond to colsor red, green and blue. To get an idea which values will give you which color, try 6. The numbers you see between <integer></integer> correspond to colsor red, green and blue. To get an idea which values will give you which color, try Color MixerColor Mixer. Change the values according to the colors in your iCal or Outlook.. Change the values according to the colors in your iCal or Outlook.

You can get red, green, blue values from iCal to exactly match colors. Option click the wanted calendar in iCal, select get info, select color and click other. Now click on the sliders icon and read the values.You can get red, green, blue values from iCal to exactly match colors. Option click the wanted calendar in iCal, select get info, select color and click other. Now click on the sliders icon and read the values.

When you are finished editing the file, save it (remember to name it CalendarsColors.plist), upload it back to your iPhone and overwrite the existing file.When you are finished editing the file, save it (remember to name it CalendarsColors.plist), upload it back to your iPhone and overwrite the existing file.

7. Now the iPhone Calendar as it is, only supports 5 colors, I tried adding more, and it doesn’t really work. You can not assign the colors and in the worst case scenario you’ll only get one color instead of 10 if you try syncing calendars one by one. So I strongly suggest, that you only edit those 5 color settings, as that’s the only way you will be able to reliably set the color of a particular calendar.7. Now the iPhone Calendar as it is, only supports 5 colors, I tried adding more, and it doesn’t really work. You can not assign the colors and in the worst case scenario you’ll only get one color instead of 10 if you try syncing calendars one by one. So I strongly suggest, that you only edit those 5 color settings, as that’s the only way you will be able to reliably set the color of a particular calendar.

My conclusions are that the best way to get all colors is to edit the CalendarColors.plist for every 5 calendars that you want to sync. It seems that the color gets assigned at the first sync and it doesn’t change afterwards with changing the CalendarColors.plistMy conclusions are that the best way to get all colors is to edit the CalendarColors.plist for every 5 calendars that you want to sync. It seems that the color gets assigned at the first sync and it doesn’t change afterwards with changing the CalendarColors.plist

8. That being said, let’s repeat. The only way to get more than 5 colored calendars is by editing the the CalendarColors.plist 2 or more times. First you edit it to match 5 of your calendar’s colors, then you sync those calendars one by one. Doing that, you’ll find out that the colors follow a certain pattern. If you want to have more than 5, edit the CalendarColors.plist again (and upload it to your iPhone/iPod Touch!), then disconnect your iPhone from your computer, exit iTunes and force quit calendar on your phone (by holding the home key while in the calendar app until it quits). Reconnect the iPhone and sync those remaining calendars one by one. Don’t worry you won’t loose the colors of previously set calendars.8. That being said, let’s repeat. The only way to get more than 5 colored calendars is by editing the the CalendarColors.plist 2 or more times. First you edit it to match 5 of your calendar’s colors, then you sync those calendars one by one. Doing that, you’ll find out that the colors follow a certain pattern. If you want to have more than 5, edit the CalendarColors.plist again (and upload it to your iPhone/iPod Touch!), then disconnect your iPhone from your computer, exit iTunes and force quit calendar on your phone (by holding the home key while in the calendar app until it quits). Reconnect the iPhone and sync those remaining calendars one by one. Don’t worry you won’t loose the colors of previously set calendars.

Results:Results:

Before and AfterBefore and After

16 thoughts on “How to edit calendar colors for iPhone 2.0.x OS

  1. Thank you for this tip! For some reason the colours got messed up (but my calendars did have a non-default colour) but by syncing and re-syncing and tweaking the file a bit more (adding 3 of the same and 2 of the same colour, increasing the odds of getting the calendar in the right colour), I got my colours in sync with my desktop!

    Thank you a lot for getting me started, I love having my colours 🙂

  2. Fantastic,

    This is the best advice I’ve found on dealing with calendar colors, it works great. Thank you.

  3. Thanx so much! I now have 10 different calendars with ten different colors!

  4. maticek, you are a god. Does this trick work with 2.2, perchance??

  5. Yes, as long as it’s jailbroken, it works!

    And about the god part…My momma always told me I was special… LOL 😉

  6. I found another way to do this, just playing around like you did. Copy calendar.sqlitedb from the /private/var/mobile/Library/Calendar directory on your iPhone to your computer, and make a backup of it (recommended). Open it with SQLite Dabase Editor (http://sourceforge.net/projects/sqlitebrowser/) and go to the second tab, “Browse Data”. Under “Table”, choose “Calendar”. This will give you a list of all of the calendars on your phone. Each row is a different calendar. There are three columns – color_r, color_g, and color_b. Set these to whatever you want for your RGB colors for each calendar. (It is not limited to five colors). Save the file and copy it back to your phone.

    I don’t sync with MobileMe or iCal (one synced to Google with NemusSync, one with work through Exchange) so I don’t know if the colors change when syncing. Also, it wouldn’t work too well if you are always adding/deleting calendars. But neat nonetheless! It was showing both of my calendars with near-identical colors…

    • amazing! worked so easily. just make sure to restart the calendar for the colors to change.

  7. Amazing finding! I will try it out right now.

    Additionally you can also backup the callendar sql file, and restore it when you have to do a full restore or hard reset of your phone. That way you don’t have to always fiddle with the colors. This has one side effect however, you will get duplicated categories (or calendars for that matter) if you don’t delete the data on your computer before a sync.

  8. Pingback: Kako urediti barve koledarjem na iPhonu « Digitalni Šepet

  9. Pingback: Change calendar colors for iPhone 2.x OS « Wandering in the City of Glass

  10. Thanks! Feels strange to hack into the calendar db just to change some colours, but it worked like a charm!

    • Yep, on purpose it’s not relevant anymore. Upgrade to 3.x or 4.x and sync the colors correctly from computer.

      • …What! That’s wrong! The colors are still fucked up unless you have iCal, which is hard for us non-mac users to install.

Komentarji so zaprti.