We listen for changes in a gitrepo and do nightly builds every night, we do it like this:
<schedule interval="${buildtime}">
<ant antscript="ant.bat"
buildfile="build.xml"
</ant>
</schedule>
<bootstrappers>
<gitbootstrapper localWorkingCopy="${checkout_folder}"/>
</bootstrappers>
<modificationset quietperiod="${quiettime}"
Ignorefiles="${ignorelist}">
<git localWorkingCopy="${checkout_folder}"/>
<timebuild username="Cruisecontrol nightwatch"
time="0300"
property="build_nightly"/>
</modificationset>
As you see here the clue here is that the timed build is placed in the modificationset, not the schedule, so at each scheduled time it will check if either the git repo has changed or the time has come to do the nightly build.