Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

108 lines (70 sloc) 3.12 kb

Almanack

Build Status Code Climate Gem Version

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

Sinatra GCal example

See a demo running at http://christchurch.events.geek.nz

Features

  • Aggregate multiple calendars together into one stream
  • Supports iCal feeds (incuding Google Calendars)
  • Supports Meetup.com groups
  • 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

Video tutorial

View on YouTube

Installation

Run the following command:

gem install almanack

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, Meetup.com, or static events.

Almanack.config do |c|
  c.title = 'My Calendar'
  c.theme = 'my-custom-theme'
  c.days_lookahead = 30
  c.add_ical_feed 'http://example.org/events.ics'
  c.add_ical_feed 'http://example.org/more-events.ics'
  c.add_meetup_group group_urlname: 'Christchurch-Ruby-Group', key: 'mysecretkey'
end

Note: You'll need your Meetup.com API key to use Meetup.

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 Toolbelt 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

  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')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request
Jump to Line
Something went wrong with that request. Please try again.