Just found a cool feature in iCal. You can add a “Birthdays” calendar to it by going to Preferences and then ticking the box near the bottom that says “Show Birthdays Calendar”. No big deal you might think, and that’s what I thought.. until I noticed that there were a few birthdays showing up on the calendar that I hadn’t entered!
On further investigation, it turned out that I’d imported a few vCards sent by email into the AddressBook application and some of them had birthdays listed within AddressBook. These birthdays were being imported into the Birthday Calendar in iCal and showed up automatically on the right dates. Very neat.
I then went to see how to add some birthdays to existing contacts – if you go to the “Card” menu, then “Add Field” there’s a list of extra fields and one of them says Birthday. Select it, and you can then type the birthday of the person into the newly added field on the card and it’ll use whatever date format your system is set to use (in my case, I entered a date in dd/mm/yyyy format). It then converted it to the long format “dd monthname yyyy” which was fine.
This only adds the birthday field for that one card though, I wanted the whole template to include the birthday field for all cards so again I went to the menu, “Card”, “Add Field” and then at the bottom is “Edit Template…” From there, you can choose Birthday from the “Add Field” dropdown at the top of the window and it’ll add that field for all cards. “Great”, I thought. Unfortunately, when I started entering more dates in exactly the same format as before (dd/mm/yyyy) it wasn’t accepting them. Confused, I tried entering mm/dd/yyyy and it worked fine and converted it to the long format.
In case you didn’t catch it, that’s the bug right there. Add the date to a single card and you enter the date in the normal system format, add the date to all card templates and you enter the date in US format regardless of what format you have it set to use.