How do I stop iCal from always asking for a password?
Have you seen the following menu in Keychain Access app?

Open Keychain Access app (use spotlight!), select your login Keychain and in the Edit menu:



select 'Change Settings for Keychain “login”…’

This brings you the following screen:



If you have either of those, iCal will find the Keychain locked when it tries to sync.