How do I get my algorithm to make monthly rotation trades on the first trading day of the month?

I tried the following.

# Schedule the monthly trade function self.Schedule.On(self.DateRules.MonthStart(), self.TimeRules.BeforeMarketClose('SPY'), self.trade)

Unfortunately, this only seems to work if the first day of the month happens to be a trading day.

If the first day of the month falls on a weekend or a holiday, the algortihm does not make any trades that month.