You may want to investigate the use of the Report feature. You can schedule a Report to run on a recurring schedule. This includes daily, weekly, monthly, annually, etc. Report scheduling is relatively flexible.
You could use the "“ForEachRowInTable” option to scan each of the records in a table. You can specify an expression to check each record in the table and to include only those records that meet a criteria you define. In your case, the expression might check to see if an audit is needed at this time. If so, you could generate a report for that record and send a customized email report to the appropriate person or persons.
You could include a “DeepLink” in the customized report that directed the email recipient to the appropriate AppSheet view. That would allow the recipient to bring up exactly the right View to enter the results of the audit. The “DeepLink” can specify the key of the exact record to be updated.
I see one complication in your description. You mentioned that the schedule for the next review may depend on when the audit was actually completed, rather than when it was originally scheduled to occur. It would be easier if the audit was simply scheduled for every week, or every month, etc. It might be possible to schedule the next audit based on the completion date of the previous audit, but that may involve significantly more work.
See this article regarding Reports help.appsheet.com - Reports