You can schedule a backend workflow to run on the 1st of each month - just schedule it to run initially on the 1st of the next month (i.e. current date, plus 1 month, rounded down to month) then have it schedule itself to run again on the current date plus 1 month).
Or you can set up a recurring backend workflow and scheduled it to run monthly, starting on the 1st of the next month.
Just remember that you’ll have to set it to run initially in your dev and live versions separately.