I am developing a plugin for a Wordpress website in which I would like to generate a report on the first day of every month and send it to the users/admin.

Creating a Cron job in the server would be a perfect solution but there are few hurdles in creating Cron Job programmatically as the procedure differs from Server to the server(I guess). 
So I am thinking of a WordPress function instead of creating a Cron Job in the server that does this job.

Do let me know if you guys have any idea about it.