I added the action to the functions file, and it did solve the issue. I can now access my widgets screen.
I checked my events and I found that the client put 2 events with no end date. All of the other events have end dates, so they aren’t an issue, but the events without end dates have been duplicated many times over. I tried to edit the event to add an end date (dropped it to 4 occurrences) but it didn’t remove any posts. It looks like I’ll just have to manually remove them.
I have a feeling it may have been caused by the host they are on. I’ve noticed recently that their server keeps cutting out, and if this happened during a save, I could easily see it corrupting the reoccurring event.