Uses a SharePoint 2013 workflow. You can test with a second workflow and just copy the finished product stages to a second workflow to schedule the email at intervals by adding another loop:
Don't try to call a workflow from another workflow, this is a waste of time and doesn't work. Microsoft needs to fix this. Don't try to trigger a workflow on change this doesn't work either. Just copy the activities from one workflow to another in designer edit workflow.
Use the rest api get to access a sharepoint list and get the ids for the items.
Use Get web service call with
http://<server>/<web>/_api/web/lists/getByTitle('<ListName>')/items?$select=*&$filter=(Date ge datetime'2019-09-08T00%3a00%3a00') and (Date le datetime'2019-09-10T00%3a00%3a00')
Use ISO formated date in designer. The above filters on a date range.
Don't use any request headers since this didn't work for me.
Contact me at email@example.com if you want me to build it for you as a consultant.
Use a loop to go through the results and set variable to get the row data from the list.
Use a set variable activity to get the lookup data without adding them to the original list.
Put this all in a loop and pull the delay times from the second list with the workflow on it.
change the if statement to equals count, set to 5 for testing.
build the rows in a variable and set all the fields, build the rows variable in a loop and add the vriable to your email body inside a table.
If you run into an error on workflow publish with too many arguments (>50) then do this on your server sharepoint management shell:
Set-WFServiceConfiguration -ServiceUri <wf manager url and port> -Name WorkflowServiceMaxArgumentsPerActivity -Value 100
Get-WFServiceConfiguration -ServiceUri <wf manager url and port>