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.
See a demo running at http://christchurch.events.geek.nz
- 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
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.
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.
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
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:
- Fork it ( http://github.com/Aupajo/almanack/fork )
- Create your feature branch (
git checkout -b my-new-feature)
- Commit your changes (
git commit -am 'Add some feature')
- Push to the branch (
git push origin my-new-feature)
- Create new Pull Request