Like Loc Chu mentioned, you can use PMWoGen crontask to auto-schedule it. We have a Sunday 5 AM job that creates the PM work orders due for the next 6 days.
In Maximo 7.6, System Configuration > Platform Configuration > Cron Task Setup
Look up: PMWoGenCrontask
Under Instances, will be the schedule which you set the job. At least one should be active.
Under Parameters tab, we have a parameter called instance_pm_sqlwhere that contains the where clause that selects the PMs. In our case, we look for PM status that is ACTIVE and looks for anything where the next date is today + 6 days. sysdate is for Oracle. It'll be different for SQL Server or DB2.
pm.status = 'ACTIVE' and pm.nextdate <= sysdate + 6
Other resources:
https://bportaluri.com/2014/10/preventive-maintenance-pm-automatic-generation.html
https://www.ibm.com/support/pages/troubleshooting-pmwogen-crontask-setup
https://www.ibm.com/support/pages/tips-executing-pm-wogen-crontask-site