I don't have any workflows similar to what you are asking, and I have not tested this, but I would try this approach:
- Create a recurring workflow that runs every Saturday at 12:15 a.m. This is to add some leeway in case the e-mail doesn't arrive exactly at midnight.
- Then use the Get e-mails action and set the criteria to best match what is needed and include the flag for only items with attachments.
- Add a search query to get just the e-mails received in the last 15 minutes using the receivedDateTime field is greater or equal to (ge) the current time minus fifteen minutes. I think this expression will work, but you will need to adjust it for your time zone since it uses the UTC time zone: formatDateTime(addMinutes(utcNow(),-15),'yyyy-MM-ddTHH:mm:ssZ')
- Add a Delay until action and use this expression to delay it to Monday at 8 a.m. (again, you'll need to adjust this for your time zone): formatDateTime(addDays(utcNow(),2),'yyyy-MM-ddT08:00:00Z')
- Finally, add the Send Email action to send the message.
However, you'll probably need to do some extra work on this because based on your description I don't understand how the e-mail that comes at midnight on Saturday is related to the sending of the e-mail on Monday. Do you just need to know if it arrived, and if yes, send the e-mail on Monday? Or do you need to get the attachment and send that in the Monday e-mail? Either way, you'll need to do extra steps and add logic to make sure the e-mails returned from the Get emails action returns the e-mail you need.