ESPN should not schedule games months in advance because you do not know how the teams will do on the day that you broadcast the game.
I know that in April when I first saw the schedule, they had Red Sox-Yankees games at least once in every series, because that is the No. 1 rivalry in baseball.
I don't get why they had to preschedule the Red Sox-Royals game on Aug. 4 or the Red Sox-Phillies on June 15? It doesn't make sense. No one knows how well they are going to do at that point of the season in the beginning of the season. Just because a team might do well in April, doesn't mean that they are going to do well in June. As the season goes on, the teams will change!
I can understand why they have to schedule a game for Monday Night Football during the later parts of the season. The other games are played on Sunday and you cannot move a game from Monday to Sunday and vice versa. In recent years, they did add the flex system, which can move Sunday's 1 PM games to 4:15 or the 8:30 NBC slot. When ESPN decides to schedule a game to air, they follow the team's schedules and those games are able to move time slots.