Just make it your policy and enforce it, whether it be written or not. The easiest time to have them sign an agreement is in the beginning of the season at which time you can also make any rate adjustments. You just sent them out to all of your current customers and request that they all sign one. It's up to you whether you make it a requirement.
I tell my customers that it either gets cut weekly or bi-weekly. If it's a nice lawn (irrigated and/or fertilized) it's strictly weekly. If there's an extended drought I'll cut only as needed, but that's at my discretion, not theirs.
I explain to people that I run a route and I'm only in certain areas on certain days. If they want a cut and they're not on my schedule it's a minimum of $75.
I didn't send out contracts this year. All but 1 or 2 are long-time customers and they know how I operate and they've already passed my financial requirments (payment on time).
You basically just have to grow some and take control of the situation. You can't run a lawn care business efficiently on a "call as needed" basis. Do what you have to if you're just starting out and just happy to have some work, but work toward getting customers on a regular schedule that you control.