No commit activity in last 3 years
No release in over 3 years
Generate printable Google Calendar agendas
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 1.11
~> 10.0

Runtime

 Project Readme

Printable Calendar

Generate printable agendas from Google Calendars.

I got sick of Google Calendar's terrible print dialog and decided to code around it. This command line utility will download a day, week, work week, or month of agenda items and render them in your default browser so you can print them easily.

Screenshot

Installation and Setup

gem install printable_calendar
  1. Copy the sample-config.json file.
  2. You need a Google OAuth client ID and secret. You get those here. First, you have to create a project, then add some OAuth credentials (cselect "OAuth client ID" under the "Create credentials" dropdown). Make sure you add the Calendar API to the project. Put the client ID and secret into the json file (You may also stash them in env vars: PRINTABLE_CALENDAR_CLIENT_ID and PRINTABLE_CALENDAR_CLIENT_SECRET. Just remove the keys from your JSON file if you do.)
  3. You need a refresh token. Having saved your partially filled out JSON file, run printable_calendar -g. That will open a dialog asking you to accept that your app can have access to your data. Just follow the instructions in the terminal. Paste that refresh token into the JSON file. (You can also use an env var for this: PRINTABLE_CALENDAR_REFRESH_TOKEN).
  4. Finally you need the calendars you want to pull in info from; grab their IDs through the Google Calendar UI by finding them in the left sidebar, clicking the little down arrow, clicking "settings", and then copying the email-looking thing next to "Calendar ID".

Usage

Run printable_calendar -c your-config-file.json. The application will download your events, create an HTML file in your temp dir, and open it in your default browser. All you have to do is print it.

There are a few other options. They're available in both the JSON file and as command line switches. Here are all them:

usage: printable_calendar [options]
    -g, --generate   Generate a token
    -h, --help       Print help
    -v, --version    Print version info
    -c, --config     Use a JSON config file
    --client-id      Google client id
    --client-secret  Google client secret
    --refresh-token  Google refresh token
    -p, --period     Time period to use. Accepts work_week, american_week, intl_week, month, day. Defaults to work_week
    --title          Title for this calendar
    -s, --starting-from  Date to anchor on. Defaults to today. Format as YYYY-MM-DD
    --calendar-ids   Google calendar IDs

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/icambron/printable_calendar.

License

The gem is available as open source under the terms of the MIT License.