Follow the steps below:
- Create a Scheduled flow which will give you a trigger named "Recurrence". In that change interval to
1
and frequency to Month
.
Then add 2 actions - Initialize Variable and add formula in both as shown below:
formatDateTime(startOfMonth(utcNow()), 'yyyy-MM-ddTHH:mm:ssZ')

formatDateTime(addDays(concat(add(int(formatDateTime(utcNow(),'yyyy')),if(equals(formatDateTime(utcNow(),'MM'),'12'),1,0)),'-',add(int(formatDateTime(utcNow(),'MM')),if(equals(formatDateTime(utcNow(),'MM'),'12'),-11,1)),'-01T00:00:00Z'),-1), 'yyyy-MM-ddTHH:mm:ssZ')

This will give you start and end dates for the current month which will be used in the next step to get data from SharePoint.
Add action to get items from your SharePoint list as shown below.

- Now you have your data as output from the above get items action. You can manipulate it however you want using loop. Add an action to create a file (saved on SharePoint or anywhere) and then add action to send email and attach this file to the email.