Skip to content

Create calendars to display on a reMarkable device as the suspend screen or to write notes on, including events from your own online iCal calendar

License

Notifications You must be signed in to change notification settings

koenvervloesem/remarkable-calendar-creator

Repository files navigation

reMarkable Calendar Creator

Continuous integration reMarkable 1 is supported reMarkable 2 is supported License

This tool creates calendars to display on a reMarkable device. You can create:

  • a PNG image to use instead of the default suspend screen (in /usr/share/remarkable/suspended.png)
  • a PDF document to write your notes on

You can also add events from an iCalendar (ics) file to your calendar.

Installation on your reMarkable

First install Toltec. Then install the latest release of reMarkable Calendar Creator, including its dependencies, on your reMarkable:

opkg install coreutils-date coreutils-install column make pcal ghostscript
wget https://github.com/koenvervloesem/remarkable-calendar-creator/archive/refs/heads/main.zip
unzip main.zip
cd remarkable-calendar-creator-main
make install

This installs the binary in /opt/bin, as well as a systemd service and timer that replaces your splash screen /usr/share/remarkable/suspended.png every day with a calendar of the current month.

Note

The first time you run make install, it makes a backup of your original splash screen to /opt/etc/remarkable-calendar-creator/suspended.png.backup, which is copied back when you run make uninstall later.

Then copy the example environment file to the location that the service consults:

cp /opt/etc/remarkable-calendar-creator/remarkable-calendar-creator.env.example /opt/etc/remarkable-calendar-creator/remarkable-calendar-creator.env

Configuration

If you want to change the type of calendar or other options, change the environment variables in /opt/etc/remarkable-calendar-creator/remarkable-calendar-creator.env. Have a look at the default configuration, which is commented with some interesting options you can add.

Especially pcal has a lot of possible customizations. For instance you can add moon phases or custom images. See pcal's man page for the full list of options you can add to the variable PCAL_OPTS.

Adding calendar events

If you want to add events from your own calendar, just enter the URL of your ICS file in the file /opt/etc/remarkable-calendar-creator/remarkable-calendar-creator.env. This should be something like ICS_URL=https://www.google.com/calendar/ical/feestdagenbelgie%40gmail.com/public/basic.ics (an example for Google's calendar file for the Belgian public holidays). Note that ICS_URL should be a publicly accessible but secret address of the ICS file of your iCalendar calendar. Make sure to remove the # before ICS_URL in the configuration file.

After this, the systemd timer downloads this file daily and updates your calendar suspend screen. If you want to see the result immediately, run the systemd script manually with:

systemctl start remarkable-calendar-creator.service

Have a look at the example with Belgian public holidays for the result.

This only works for month calendars, as there's not enough room on the year calendar to add events.

Using on a Linux computer

You can also use reMarkable Calendar Creator on a Linux computer. Obviously it won't make sense to install the systemd service and timer because your computer doesn't use the reMarkable's suspend screen. However, you can run the script manually to create a PDF file with a calendar. Then you can send the PDF to your reMarkable device to draw notes on it.

The reMarkable Calendar Creator is essentially a light wrapper around pcal (which generates calendars in PostScript output) and GhostScript (to convert the PostScript to PNG or PDF). Both programs are available in all major Linux distributions. For instance on Ubuntu you can install them as:

sudo apt install pcal ghostscript

After this, you can run the script remarkable-calendar-creator.sh.

You can create a calendar of the current month, for instance as a PNG image:

./remarkable-calendar-creator.sh calendar.png

Every argument that you add after the filename is forwarded to pcal. This means that you can also create a calendar for a specific month:

./remarkable-calendar-creator.sh calendar.png 1 2021

Or a calendar with all months of the current year on one sheet in a PNG file:

./remarkable-calendar-creator.sh calendar.png -w

Or you can create a PDF with a page for every monthly calendar of 2021:

./remarkable-calendar-creator.sh calendar.pdf 2021

For portrait mode, add the option -p after the file name.

You can find generated PNG and PDF files for all months of 2021 for landscape and portrait mode in the examples directory.

If you want to add events from your calendar, you first have to download an ICS file for your calendar and convert it to the pcal format that reMarkable Calendar Creator uses. This goes like this:

./remarkable-calendar-downloader.sh URL events

The URL should be a publicly accessible but secret address of the ICS file of your iCalendar calendar. The events is the filename of the calendar file that reMarkable Calendar Creator uses by default.

After this, run remarkable-calendar-creator.sh again and it will automatically pick up your events and put them on your calendar. Have a look at the example with Belgian public holidays for the result.

This only works for month calendars, as there's not enough room on the year calendar to add events.

Disclaimer

This project isn't affiliated to, nor endorsed by, reMarkable AS.

I assume no responsibility for any damage done to your device due to the use of this software.

License

This project is provided by Koen Vervloesem as open source software with the MIT license. See the LICENSE file for more information.

The file ical2pcal.sh comes from the MIT licensed ical2pcal project by Francisco José Marín Pérez.

About

Create calendars to display on a reMarkable device as the suspend screen or to write notes on, including events from your own online iCal calendar

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published