When can I omit “for” before a time duration?

Yes, for can be omitted in that context. “More than one hour a day” is a time duration, which generally require for. However, phrases beginning with more than, less than, or fewer than often omit for. I have the impression that omitting for in such contexts is more common in British English than in American. But when in doubt, include it.

I talked on the phone for two hours.
I talked on the phone (for) more than two hours.