Intelligent systems need to store their experience so that it can be reused. A memory for such systems needs to efficiently organize and search previous experience and to retrieve items relevant to the situation at hand. It needs to be content addressable while providing flexible matching. Previous approaches to building such memories suffered from being overly tied to a task or domain. We propose to separate memory functionality from that of the system as a way to reduce the complexity of the overall system and to allow research to focus on the generic aspects of memory organization and retrieval without the bias of a specific domain and task. We built such a generic memory for events. It employs a representation of generic episodes, uses a multi-layer indexing scheme and provides a generic API to external systems. We tested this memory module on three different tasks in the logistics domain and showed that it performs as well as serial search in terms of accuracy, while being much more efficient and more scalable.