I've used recalendar.js the past few years for my eInk devices:
https://github.com/klimeryk/recalendar.js