I don't know why, but this advertised feature on the iPhone is still not available. Its been killing me as I have been waiting for a solution.
I have been researching this for months and haven't been able to find any solution on the web for how to sync Yahoo calendar to the iPhone on a Mac. FYI, on a PC, it is pretty easy - download Yahoo Autosync, sync to local copy of Outlook, and from there to your iPhone. After testing different things out for hours, I figure out a pretty ugly solution, but one that works. Figured others might find it useful.
For it to work on the Mac, you need to get your Yahoo calendar to iCal. Unfortunately, there is no way to do it directly or through a single intermediate step. FYI, the web docs that say Plaxo works are not right - as of right now, it does not sync Yahoo calendar.
So here is the ugly solution: I am running a virtual copy of windows xp on my mac, which I leave open. On this, I have Outlook installed and Yahoo Autosync. This gives me a local copy of the calendar. Then I install Google Calendar sync. This takes the local calendar to Google calendar. From there, I bought Spanning Sync (free to try; $25 for a one year subscription), which syncs Google calendar to iCal. Then from the iCal to the iPhone. You need to make sure that all syncs are set up as two-way syncs.
Another note - Google calendar now has two way direct sync for free to iCal, but it doesnt let you do two way sync from iCal to iPhone on that calendar. Meaning, if you input calendar entries on the iPhone, they wont end up on Google calendar.
I recommend backing up your Yahoo calendar to a CSV file first. However, all the sync apps are good about alerting you if they are about to do something you dont want (like deleting all your calendar entries). It took a while to figure out all the syncing, but have had running for a couple days now and it seems to work. It also seems to retain repeating events, etc. in original setups (as opposed to turning repeating events into multiple separate entries). The best starting setup is to have only a Yahoo calendar and everything else blank (or deleted). Also, make sure your time zones are all set to the same one (caused me a bunch of headaches). Then sync to outlook, then to Google calendar, then to iCal, then to the iPhone.
The only software I had to buy for this was Spanning Sync. I already had Parallels (for the virtual Windows xp) and Outlook. Yahoo Autosync, Google Calendar Sync and, of course, iCal and iTunes are free. Spanning Sync is free for 15 days, so you can test it out first to see if it works. If you do end up buying, I would appreciate you using my referral code: 8E3XP3. It will get you $5 off and give me $5 as well. Would help me recover from the countless hours I have invested to figure this out...
Look, I know this may sound like a crazy solution on paper, but it actually works and it isnt really that hard to set up. If you are like me and absolutely NEED a solution, try it out!