This class never appears to be used such that get_next_datetime() is not just immediately called on the newly created instance of it.

Why not just?

```python
def next_occurrence(cron, start=None):
    return croniter(cron, start_time=start or datetime.utcnow()).get_next(ret_type=datetime)
```

Schema validation should make sure that cron can't be none here, so that value error also seems unnecessary?