Let's download only the things that we don't have already.
In an online world with synchronous operations, everything is easy. In reality, things tend to be messier. Assuming that the internet is going to be always available for something like a calendar is not an option. So how to store the data?