A calendar that combines events from different sources (such as Google Calendar and iCal feeds), and can be hosted for free on Heroku.
See a demo running at http://chch-events.herokuapp.com/
This option can host your calendar for free light use.
Sign up for a free Heroku account and click the following button:
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
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, 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
To set your time zone, set your system's
TZ environment variable.
On Heroku, you can do this with:
heroku config:set TZ=Pacific/Auckland
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
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 CLI installed:
almanack deploy my-awesome-calendar
Will create and deploy http://my-awesome-calendar.herokuapp.com/.
Subsequent commits can be deployed with just:
git checkout -b my-new-feature)
git commit -am 'Add some feature') with tests
git push origin my-new-feature)