Como criar um sistema de lembrete / alerta de calendário

Eu tenho um sistema de calendário no meu aplicativo da web. Precisamos implementar lembretes.

Existem padrões de lembrete / alerta, design de sistema ou práticas recomendadas? Se sim ou não, quais podem ser algumas maneiras de conseguir isso?

Considerações sobre design

Precisa ser capaz de cancelar / impedir lembretes se o evento do calendário for excluído ou alterado, ou se o usuário desligar o lembrete desse evento. Portanto, não podemos simplesmente disparar e esquecê-los em uma fila ou algo assim.Os lembretes podem demorar X tempo antes do evento, sendo X definido nas configurações de evento do calendárioOs lembretes não precisam ser super precisos (para o segundo ou até o minuto). + - 5 minutos é bom.Não é necessário pré-calcular os lembretes, pois a manutenção se torna um pesadelo à medida que os eventos do calendário mudam, principalmente nos eventos recorrentes.

Até agora, meu design é mais ou menos assim:

Execute um trabalho agendado a cada 10 minutos.O trabalho captura todos os eventos relevantes possíveis e calcula possíveis ocorrências para os próximos 10 minutos (filtrando eventos que não possuem um lembrete definido).Job chama um ponto de extremidade da API no meu servidor que exibe uma notificação de front-end e um lembrete por email para todas as partes relevantes.

Mas talvez haja padrões mais elegantes do que isso? Algo já estabelecido? Ou alguma ferramenta no azul, etc?

Nossa pilha é .net e azure.