One thing I can think of, is to use the permission to allow access to the phone's Calendar in the external app(non-calendar app), and that permission is:
WRITE_CALENDAR
Similarly, if you try to read from that same external app, you may get bad values(or null values) without the associated read permission:
READ_CALENDAR
However, if it's a homebrew calendar, pet project or other, you need to make sure that the database being used will also allow other users to write to it, thought I can't remember exactly how to do that right now.
As far as cache goes, the phone shouldn't be caching a lot of database information, especially since its SQLite. A cache, in theory, would hold temporary data, or commonly used data(like an index), but it wouldn't store tuples from the database itself, and modifying the cache would require the change to be committed to the database anyhow. Perhaps I'm completely wrong on this though.