The solution we landed on was a telephone-based automated reminder service - controlled from your calendar app.
The hypothesis driving our solution was while many people may check their email every few seconds / view upcoming events in their calendars, everyone we know picks up calls to their phones. Therefore, if we could create a near-frictionless method of automatically calling our friends to remind them to leave early, maybe we could improve their reliability. The calendar seemed like a natural place to do this - Just invite a ringreminder.com email address to the calendar entry, and a telephone call reminder is set. Also, us organized folks already used our calendar apps to keep track of when we were meeting said friends.
On the back end, its built in Java (spring framework) - we basically poll a mail account at regular intervals checking for calendar invites (Google/iCal or Outlook format) - we then parse out the necessary information to schedule the reminder call from the invite, and call Twilio to make the outgoing call. Any changes to the event (including cancellation) are automatically processed, assuming that you let your calendar app notify all guests to the event of the change. There is also a web CRUD interface for manually managing reminders.
Let me know if you have any questions!