If I were doing this, I'd set it up as a Python "run" script that would be run as a monthly cron job.
Run scripts are normal Python scripts, run via commands like:
bin/client5 run myscript.py
They reveal the top of the ZMI as "app". Check PloneFormGen's source for the save-data adapter. It has methods for getting and setting the saved data. After that, it's routine scripting.