I'm no longer actively maintaining almanack.
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/
See CHANGELOG.
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 checksums
.
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.
TZ=Pacific/Auckland
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 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
bin/setup
bin/test
git checkout -b my-new-feature
)git commit -am 'Add some feature'
) with testsgit push origin my-new-feature
)