You should prevent having multiple timeouts running at the same time. Have something like:

```python
# in __init__
self.timeout_source = None

# And the code
if self.timeout_source:
     gobject.source_remove(self.timeout_source)

self.timeout_source = gobject.timeout_add(secs_to_refresh, self.emit_refresh)
```

Why this is an issue?

  * I set day start at 10:00
  * Then I set day start at 11:00
  * Then I set day start at 10:30
  * Then I set day start at 10:00

If I don't restart GTG in the meantime, I get 2 refreshes at 10:00, 1 at 10:30 and 1 at 11:00. Expected behaviour is to get refresh only at 10:00.