Derived from https://github.com/tsoding/schedule/pull/117/files#diff-b67911656ef5d18c4ae36cb6741b7965R25