Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


HollaBack is an open-source email-based reminder system. When the mail server is configured, reminders can be registered via the mailbox name to which the email is sent. This particular project implements the scheduler which reads messages out of a Redis-backed queue and sends emails when appropriate.

Keep an eye on hollaback_admin for the other component, which receives email data via HTTP hooks and puts them into the queue, as well as adds an admin panel.

Here's some scenarios:

Scenario 1: BCC

Bob emails you an important TPS report. You hate thinking about such things and know that you only need a day to do it and that it must be dealt with by the end of day on Friday. You can reply to Bob's email and bcc On friday, HollaBack will send you back an email with the full conversion. In the mean time, you can clear the email out of sight and out of your brain.

Scenario 2: Direct Email

An album is coming out soon that you must get your hands on. You don't want things like this in your calendar or tasks list because it is too much noise and isn't something you want to keep at the forefront of your mind. Effortless is the key. Email wit the details and feel free to forget about it.


Hollaback is primarily implemented with Haskell. hollaback_admin is implemented in Ruby. If you like, you can create your own means of putting messages into the queue. Hollaback doesn't care.

Hollaback has the following system requirements:

  1. A recent version of GHC. HollaBack is developed using GHC 7.0.3. It can proobably use GHC 6.x, but this is untested.
  2. Redis
  3. sendmail


Run make build.


To run the scheduler, run ./bin/hollaback

To run specs, run make spec


This project is not nearly complete. Features implemented so far:

  • Scheduler which pulls emails off the queue at the appropriate time.
  • Poller that transports messages from the mail server into the Redis backend.
  • Date/time parsing that is almost 100% compatible with, minus tags.
  • All redis keys stored to the hollaback: namespace
  • Mailer sends mail using sendmail without any configurable flags

Features yet to be implemented and pitfalls:

  • Error handling is at an absolute minimum.
  • Attachments are discarded (this probably won't change).


This service was inspired by and aims to be interface compatible with them at the most basic level. Their service is excellent and far more full-featured than HollaBack. HollaBack is for my own learning experience and for people who want to take's concept to a different level or for people who are concerned about privacy. If you want a polished service that has lots of features, go sign up with them and support them.

The scheduling algorithm I used was a straight port from resque-scheduler. I thought the solution was elegant and simple.


Email reminder system inspired by







No releases published


No packages published