Add source recurring job

@dlecocq -- here's the change we discussed.  I was a bit surprised to see the value come through as `False` if it's not set, rather than the python equivalent of `nil` (apparently `None`?).  Does that look right to you?