Одна вещь, о которой я могу подумать, - это использовать разрешение, чтобы разрешить доступ к календарю телефона во внешнем приложении (не в календаре), и это разрешение:
WRITE_CALENDAR
Аналогично, если вы пытаетесь читать из того же внешнего приложения, вы можете получить неправильные значения (или нулевые значения) без соответствующего разрешения на чтение:
READ_CALENDAR
Однако, если это домашний календарь, проект для домашних животных или другой проект, вам нужно убедиться, что используемая база данных также позволит другим пользователям писать в нее, хотя я не могу точно вспомнить, как это сделать прямо сейчас.
Что касается кэширования, телефон не должен кэшировать большую часть информации базы данных, особенно с учетом SQLite. Кеш, в теории, будет содержать временные данные или часто используемые данные (например, индекс), но он не будет хранить кортежи из самой базы данных, и изменение кеша потребует, чтобы изменения были зафиксированы в базе данных в любом случае. Возможно, я совершенно не прав в этом.