Skip to content
This repository was archived by the owner on Apr 6, 2021. It is now read-only.
/ almanack Public archive

Aggregate iCal and Google Calendar events. Pluggable or standalone app. UI optional and 100% customisable.

License

Notifications You must be signed in to change notification settings

Aupajo/almanack

Folders and files

NameName
Last commit message
Last commit date

Latest commit

67c3e8b · Apr 6, 2021
May 10, 2019
May 11, 2019
Feb 26, 2020
May 10, 2019
Mar 5, 2020
Jan 5, 2020
Nov 22, 2019
May 10, 2019
May 10, 2019
Jan 5, 2020
Mar 5, 2020
May 10, 2019
May 10, 2019
Mar 6, 2020
May 10, 2019
Apr 6, 2021
Sep 12, 2019
Feb 28, 2020
Nov 22, 2019
Nov 8, 2014

Repository files navigation

Unmaintained

I'm no longer actively maintaining almanack.


Almanack

Build Status Gem Version Deploy

A calendar that combines events from different sources (such as Google Calendar and iCal feeds), and can be hosted for free on Heroku.

Sinatra GCal example

See a demo running at http://chch-events.herokuapp.com/

Features

  • Aggregate multiple calendars together into one stream
  • Supports iCal feeds (including Google Calendars)
  • Supports Meetup.com groups (see #36)
  • Just supply a hash to create any arbitrary event
  • Supports being freely hosted on Heroku
  • 100% customisable themes with Sass and CoffeeScript support
  • Server optional (you can use the underlying calendar library by itself)
  • Rack-compatible (can be mounted inside a Rails app if needed)
  • Produces iCal feed for smartphone and desktop calendar apps to subscribe to

Changelog

See CHANGELOG.

Simple setup

This option can host your calendar for free light use.

Sign up for a free Heroku account and click the following button:

Deploy

Video tutorial

View on YouTube

Installation

Almanack is cryptographically signed. You can install it like any other gem, but you can also do so in a way that verifies the gem hasn't been tampered with.

Add my public key (if you haven’t already) as a trusted certificate and install the gem:

gem cert --add <(curl -Ls https://raw.github.com/aupajo/almanack/master/certs/aupajo.pem)
gem install almanack -P HighSecurity

All my dependencies are cryptographically signed, so you can use the HighSecurity option. Read more.

Checksums for released gems can be verified in checksums.

Creating a calendar

Generate a new calendar with:

almanack new my-calendar

This will create a directory called my-calendar and set up your new project.

Once set up, run:

cd my-calendar
almanack start

By default, your calendar will run on http://localhost:9292.

Configuration

See examples inside config.ru for iCal feeds, or static events.

Almanack.config do |config|
  config.title = 'My Calendar'
  config.theme = 'my-custom-theme'
  config.days_lookahead = 30

  # Combine sources from multiple iCal feeds
  config.add_ical_feed 'http://example.org/events.ics'
  config.add_ical_feed 'http://example.org/more-events.ics'

  # Include a downloaded iCal
  config.add_ical Pathname('downloaded-calendar.ical')
end

Time zone

To set your time zone, set your system's TZ environment variable.

TZ=Pacific/Auckland

On Heroku, you can do this with:

heroku config:set TZ=Pacific/Auckland

Custom themes

Inside your project, you can generate a new theme with:

almanack theme my-theme-name

Remember to update your config.ru to switch themes:

Almanack.config do |c|
  ...
  c.theme = 'my-theme-name'
  ...
end

Deploying to Heroku

Deployment works with Git and Heroku. First, add your work to git (an repository is already initialized for you when you run almanack new):

git add .
git commit -m "My awesome calendar"

With the Heroku CLI installed:

almanack deploy my-awesome-calendar

Will create and deploy http://my-awesome-calendar.herokuapp.com/.

Subsequent commits can be deployed with just:

almanack deploy

Contributing

Getting started

  1. Clone the repository
  2. Run bin/setup
  3. Run bin/test

Sending patches

  1. Fork it ( http://github.com/Aupajo/almanack/fork )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature') with tests
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

About

Aggregate iCal and Google Calendar events. Pluggable or standalone app. UI optional and 100% customisable.

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published