Core component of SQL Server for storing, processing, and securing data
It is almost impossible to give an answer to that question, because there is so much It depends in that question. For instance, is there a daily full backup from production that you can use?
At my client we restore a copy of production to two different test environments nightly. In our case, we don't rely on the backups taken by the IT department, because their backup schedule does not meet our needs. So we have a backup job on the production server at 3:40 in the morning. (For us the time of day is important, but it may not be equally important if you are only going to this monthly.) This backup job writes the backup to a file share on the dev/test server.
We used to have Agent jobs to restore the database, but we have changed this to DevOps pipelines, because for one of the environments we also want to deploy the most recent bits from our main branch. For your case, I will assume that DevOps pipelines is over the top, but that you can simply schedule a job that runs the restore. Exactly how that script would look like depends on your needs. What we do in our SQL script is that we restore the database as OurDBNew and once the restore has completed, we rename the existing database OurDB to OurDBOld and then we rename OurDBNew to OurDB. This is to avoid that the database is inaccessible for longer time. What we also do is to copy permissions and users from OurDBOld to the new OurDB. This can be practical if you have assigned different permissions in the Dev environment and want to keep them.
As for setting up the schedule, that should not be difficult. We do this only daily basis, but the UI in SSMS makes it easy to set up jobs that runs only once a month.