Oi João,
Para mostrar uma notificação como se fosse nativa do Sistema Operacional você deve usar a Notifications API.
O que vc vai precisar decidir é quando o usuário vai ter acesso a essas notificações.
Se você quiser que a notificação só apareça quando o usuário estiver com o site aberto em qualquer aba do navegador, você pode simplesmente usar a API assim:
//esse interval vai rodar a cada 2 horas +/-
setInterval(function(){
//código para lançar notificação com a Notifications API aqui
}, 7200000)
Agora se você quiser que seu site receba e dispare notificações mesmo quando ele não está aberto, você vai precisar usar a Notifications API junto com um Service Worker
. Se ainda quiser que o conteúdo da notificação venha de algum serviço de cloud messging como o FCM, você vai precisar usar a Push API que funciona em conjunto com os Service Workers
.
Abraços,
Artur