How to design a calendar reminder/alert system : <p>I have a calendar system in my web app. We need to implement reminders.</p>

<p>Are there any reminder/alert patterns or system designs, or best practices? If so or if not, what might be some ways of achieving this?</p>

<p><strong>Design Considerations</strong></p>

<ol>
<li>Need to be able to cancel/prevent reminders if the calendar event is deleted or changed, or the user turns off the reminder for that event. So we can't just fire and forget them in a queue or something.</li>
<li>The reminders can be X amount of time before the event, X being set in the calendar event settings</li>
<li>Reminders don't need to be super accurate (to the second or even minute). +- 5 minutes is fine.</li>
<li>Don't want to pre-calculate reminders because then the maintenance becomes a nightmare as calendar events change, especially where recurring events are concerned.</li>
</ol>

<p><strong>So far my design is something like this:</strong></p>

<ol>
<li>Have a scheduled job run every 10 minutes.</li>
<li>The job grabs all possible relevant events and calculates potential occurrences for the next 10 minute interval (filtering out events that don't have a reminder set).</li>
<li>Job calls an API endpoint in my server side that kicks of a front end notification and an email reminder for all relevant parties.</li>
</ol>

<p>But maybe there are more elegant patterns than this? Something already established? Or some tool in azure etc.?</p>

<p>Our stack is .net and azure.</p>
