My Dad had a way of getting people to accept just getting on ' the list' with virtually no time frame commitment except, this year sometime, or next spring. And he would let them know 1-2 weeks in advance. Worked out good usually.
I do a lot of work for contractors and management companies that pretty much demand a set schedule. And a lot of HO's want set times for one reason or another.
It's tough, even if you have a good handle on production rates. There are just too many variables. Add ons, weather delays, etc..
Lately, I try to get as many jobs as possible 'on the list'. If I'm pressed for specifics more than that I give a ballpark like 'mid June' or something. I have to do some set dates though, no way around it sometimes. For these I try make the dates pretty far out, and work the other ones around it. If necessary, send one or two of our small crew to start on time while finishing up the one were on. I will have to do this next week because a condo job starts on the 10th and won't finish where we are till mid week. (Add on's)
I'm trying to use my phone more, set reminders In advance, notes.
I do too much in my head too. Use pen and paper too often still.
As far as gauging time frames, I usually lay it out in week long intervals, and generally over estimate how long it will take to try to make up for delays/last min stuff.
When you have a set schedule with lots of specific dates, getting a few days/week behind has a snow ball effect that can really throw it off. I try to stay as flexible as possible.
One thing I tell clients that have to be putt off is, that I'm finishing for someone else and when I get to you I will not leave to go start another job too early either.
Overall, I really suck at scheduling too. Sorry no magic bullet.