Deleting elements of an array from EEPROM


I have a need to store array of structs in EEPROM. The structs contain data about events that take place during the week, among them day of week of the event, hour, minute. Usually the data will be written once and rarely modified, but on accasions that might happen, and also "one time" events can be entered that must be deleted after completion. My problem is, currently I am iterating through this array in SRAM, checking if the day of week matches today, then hour and minute. But that wont hold too many events because SRAM is limited and if the array is built into the program i cant change it from outside. But if I store it into EEPROM, will it be fast enough for me to read the items one by one and compare them against current time? I will be doing this once per minute. There wont be THAT many of them, lets stay at two digits. And another thing, if I delete an item from the array, there will be a gap. Is there any way to deal with this? Reallocating whole array isnt practical, so I will probably also have to mark entry as invalid and skip it or something (which also takes a read from EEPROM and adds to time)?

Thanks for any suggestions!

Don't bother deleting them, just mark them as completed somehow. Maybe set day of week to 10 or something impossible and that will mark it as not needed anymore. It also lets you know that it can be overwritten if you have a new one.