How can I enable auto-sync only when wifi is available? I have a small data plan and I don't want to waste it on sync.
There isn't a way to do this in the default settings for Android devices and most people are surprised to learn that they can keep sync on full time without exceeding even modest data plans.
I would recommend checking out Tasker. It's an Android application that allows you to automate almost anything on an Android device. You can use it to automatically toggle on your auto-sync setting using the WiFi state as a trigger. Tasker is a bit pricey, so please read on.
This widget, if it lives up to its billing should do the trick for you, read the comments, you'll see it turns on sync when wifi is present. It's not named very well, but check it out: wifi AutoSyncAuto Toggle