Also, for my earlier question, I have got logic to reschedule without a need to fetch all the properties. Posting it here, just in case if it might help you/others.
IEnterpriseSession ceSession = CrystalEnterprise.getSessionMgr().logon( boUsername, boPassword, boCmsName, boAuthType ) ;
IInfoStore oInfoStore = (IInfoStore)ceSession.getService( "", "InfoStore" ) ;
// IInfoObject oI = (IInfoObject) oScheds.get(0);
IInfoObjects oScheds = oInfoStore.query("select top 1 * from ci_infoobjects where si_recurring=1 and SI_NAME='"+reportName+"'" );
IInfoObject oSched = (IInfoObject) oScheds.get(0);
oSched.getSchedulingInfo().setType(CeScheduleType.ONCE);
oSched.getSchedulingInfo().setRightNow(true);
while(oSched.getSchedulingInfo().getDependencies().size() > 0)
oSched.getSchedulingInfo().getDependencies().remove(0);
oInfoStore.schedule(oScheds);
Pls let me know if this wont work in all scnerios.