I think its not possible to directly schedule a report using apex but this can be done through schedule apex:
read more through the following posts which talk about the same : https://developer.salesforce.com/forums/ForumsMain?id=906F000000091tiIAA https://developer.salesforce.com/forums/ForumsMain?id=906F000000091cPIAQ
read more through the following posts which talk about the same :
https://developer.salesforce.com/forums/ForumsMain?id=906F000000091tiIAA
https://developer.salesforce.com/forums/ForumsMain?id=906F000000091cPIAQ