Socket
Book a DemoInstallSign in
Socket

almanack

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

almanack

1.3.1
bundlerRubygems
Version published
Maintainers
1
Created
Source

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 https://github.com/Aupajo/almanack/issues/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

  • Clone the repository
  • Run bin/setup
  • Run bin/test

Sending patches

  • 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') with tests
  • Push to the branch (git push origin my-new-feature)
  • Create new Pull Request

FAQs

Package last updated on 26 Feb 2020

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.