'Get the next call time. This also takes the eventual effect
of start_delay into account.
Returns:
next (int or None): The time in seconds until the next call. This
takes `start_delay` into account. Returns `None` if
the task is not running.'

def next_call_time(self):

    if self.running:
        total_runtime = (self.clock.seconds() - self.starttime)
        interval = (self.start_delay or self.interval)
        return (interval - (total_runtime % self.interval))
    return None
