Firstly, events are not accessible to contracts.
The simple answer is Yes, events are permanently stored.
The nuanced answer is Yes, events are as permanent as the blockchain.
It helps to realize that events are the result of LOG opcodes being executed in the EVM. For an analogy, "internal transactions" are derived by executing transaction data through the EVM.
So as long as you have the blockchain (by definition you have all blocks and transactions) then you have all the events (or can regenerate all of them if they've been deleted). If you're on a mobile phone where you don't have the blockchain, DApps will be limited with the events it will have.
Finally, pruning has no effect on the permanence of events because pruning is done to the state trie and no blocks are lost.
Exception: Events are permanent unless there is a fork reorganization and it is on the discarded fork. A fork discards blocks and transactions and this is why an event generated in them will also get discarded.