More or less every year, El Clasico ends up being played around the same dates – those being in late October or November for the first fixture and usually March for the return. It is no accident.
As noted by Diario AS, various factors contribute to the date of El Clasico. From a very basic standpoint, the fixture is never placed at the beginning of the season so that both teams are able to arrive at El Clasico in the rhythm of competition. In the event of a runaway leader, the end of the season is also discounted as an option so that the match still has plenty riding on it.
Dates which may fall on midweek rounds or on public holidays are also avoided, so that they can allow for maximum attendance. Fixtures between the two Clasico sides and Atletico Madrid are also given set windows in which the matches can take place.
Beyond that, the rest of the league calendar is decided in the same it always has been: the first round of fixtures is drawn and then the calendar follows the order of those teams as they came out.
In the 2018 season, the league imposed a change to the traditional system, meaning that the second round of fixtures does not have to follow the order of the first. This allows La Liga to spread the big matches around more evenly. The extra flexibility is useful for stadium reconstruction too, if a team wants to request a succession of away matches at the start or end of a season in order to complete works, as happened with Real Madrid last season.