Change design, implement calendar, fix bugs

Signed-off-by: Frca <killerfrca@gmail.com>