Yeah, lazy scheduling is an easy trap to fall into. People have the wrong cost optimization function in mind while scheduling meetings -- moving an existing meeting is too expensive to consider, while breaking up an engineer's 4 hour block of productivity into 2 1:30 minute blocks is considered totally okay. In reality, the actual cost is the opposite -- moving a meeting costs nothing, but breaking up that block of free time costs an entire day of an engineer's time (something like $1000).
I have a plan for this. I'm writing a small program to move certain meetings to an auto-scheduled state. You pick some blocks on your calendar where you'll accept auto-scheduled meetings. You then say "I want to have a meeting with X, Y, and Z", and the system will use a constraint solver to find a time. The cost function favors bin-packed meetings, keeping entire days free, etc. If existing meetings have to move to optimize the cost function, so be it.
I don't actually know if people will tolerate this. People are creatures of habit, so if you're used to a biweekly team meeting on Monday, it will be weird when it gets replaced with a postmortem review that starts 30 minutes earlier and the team meeting moves to Thursday or whatever. I also think it will be hard to get people to commit to giving the bot a slot to work with. We shall see. If anything interesting comes of this I'll write up something about how it went.