If you keep your keychain locked most of the time* being bothered to authenticate OR click cancel, twice, is a needless bother.
So, here's the command to set the frequency to whatever duration you like (in seconds); I chose a full day, since that's more than enough for me:
defaults write ~/Library/LaunchAgents/com.google.GoogleContactSyncAgent StartInterval -int 86400
It's also apparently necessary to log out and back in, to get the change to take effect.
*Keychains can hold some pretty sensitive info. If you don't have the keychain lock itself after X minutes inactivity, you should consider it. Pop open the "Keychain Access" app (in /Applications/Utilities/) and take a look at what's in your own keychain - sure you want to leave that unlocked? If not:
- Click the "Edit" menu
- Select "Change settings for Keychain 'login'..."
I recommend turning both checkboxes ON and setting a short lock time.
Now, once you've done this, you may find that Safari is pestering you mercilessly, to authenticate. This is because it's being very careful and storing virtually everything you type in Safari, in the keychain - since it can't tell how sensitive everything is, though it knows that some of it might be credit card numbers and the like. Fortunately there's a solution that's both secure and convenient; tell it not to store that info:
- Click the "Safari" menu
- Select "Preferences..."
- Select the "Autofill" tab
- Turn OFF the checkbox for "Other forms".
(If you're curious, you can see what it's been storing by clicking the "Edit..." button to the right of the checkbox. It's mostly web searches and other such innocuous stuff. As you can see by the other checkboxes, passwords are stored separately.)