It is smart that You can send e-mails, and even create lists with receipents.
But You can only send e-mails when the cronjob runs, and sending e-mails will happen every time the cron job runs.
It would be nice to have :
A function where the cronjob would only run (succesfully ) once a day even if started more times a day. This should be for all functions in the cronjob except the mail function.
If for example the cronjob would be set to run every 1 hour, the whole cronjob would run for the first time next day, at the first time after midnight let's say 00:30. Then the next time will be 01:30. If the cronjob was succesful the first time it will not be performed again at 01:30 except the mail function will.
Another way to do it, will be to have 2 cronjobs, but then You have to have 2 cronjob settings in settings, and it is maybe not possible to have 2 cronjobe set up, for some hosts.
Then You could have 2 fields on an event :
Send mail xxx Hours xx min x time(s) before eventstart
And again xxx Hours xx min x time(s) before eventstart.
Then if You have an event starting 06.06.2016 12:20
And You have a setup :
Send Mail 48 Hours 0 Min 1 time(s) before eventstart
And again 2 Hours 30 Min 2 time(s) before eventstart
And You have a cronjob running every full hour, You will have an email sent on the 04.06.2016 13:00
And You will have an email sent 06.06.2016 10:00
And again 06.06.2016 11:00
Via an mail2sms provider, it would/could be possible to have sms sent this way.