Tried that? What I was suggesting is if isValidNotebook() returns true in saveIncidences() even if update is not yet run. Notebooks are handled with QSharedPointer, so I suppose even a newly fetched notebook should share the state.

Read only state is documented to be used for notebooks without user write permission, so it would be quite dumb if any write there would require changing the global state of the notebook. Then again, wouldn't surprise me with mkcal.