/recalendar.js

ReCalendar - create your personalized calendar PDF for ReMarkable tablets

Primary LanguageJavaScriptGNU Affero General Public License v3.0AGPL-3.0

ReCalendar

Highly customizable calendar for ReMarkable tablets

ReCalendar allows you to generate your own, personalized calendar right in your browser. You can view the live, production version at https://recalendar.me/.

It is the continuation of my previous efforts: https://github.com/klimeryk/recalendar. Although, basically all of the code had to be rewritten as I'm using a different PDF library, CSS engine, language, etc.

Features

See https://recalendar.me/features for a full list with screenshots.

  • Optimized for the ReMarkable 2 tablet (should work with version 1 as well) to use the full space available and minimize screen refreshes.
  • No hacks needed - the generated PDF is a normal file, with links, etc. that you can simply upload normally to your tablet.
  • Heavy use of links to allow quick and easy navigation.
  • Lots of easy configuration options to tailor the calendar to your needs - plus access to the source code for even more advanced customization.
  • Easily switch to any locale supported by PHP.
  • Add extra pages to all or selected days of the week to suit your needs.
  • Provide a list of special dates (anniversaries, birthdays, etc.) and let ReCalendar embed them into your personalized calendar - on monthly views, weekly overviews and finally, day entries.
  • Track your habits monthly.
  • Start the "year" on arbitrary month (can be useful for tracking academic years, etc.).

Quickstart for developers/contributors

Vite is used for development. Make sure you use nvm or a compatible solution to use the correct Node version.

nvm use
npm install
npm run dev

Known issues

See the FAQ and the open issues on GitHub.

License

GNU AGPLv3 License. In particular, this means that you can do what you want with this code, but you have to publish your changes with the same license. Please consider submitting a PR, if you have an idea for a great improvement! 🙏 My main motivation was to scratch my own itch, but as a result I might have missed your use case so I'm happy to hear how this project can be improved 🙇