Remind: The Ultimate Personal Calendar
Remind is a calendar and reminder program for Linux and most UNIX Systems. I started writing Remind in 1989 because I was fed up with the limitations of the UNIX calendar program. In the last ten years, it has accreted features and has become one of the most sophisticated calendar programs I've seen. I'd like to take you on a journey through the history of Remind, demonstrating some of the features which lead me to immodestly call it the “Ultimate Personal Calendar”.
First, let's start with the venerable UNIX calendar program. This program simply scans a text file for lines containing likely-looking dates. It prints any lines containing today's or tomorrow's date (where Monday is considered “tomorrow” relative to Friday). You can also arrange to have reminders mailed to you.
Well, this is fine for very simple things. However, there is no provision for repeating reminders, so you can't (for example) remind yourself of something on the first of every month.
The next step up in sophistication is cron. This lets you specify dates in a relatively sophisticated format, so you can remind yourself of daily, weekly or monthly events. Still, cron won't handle fairly simple things like events which happen on the first Wednesday of every month.
To remedy these shortcomings, I started work on Remind. In its simplest form, Remind is similar to calendar in that it reads a text file and sends reminders to standard output. However, Remind uses a sophisticated date-specification language which allows very complex reminders to be issued. Although the language is sophisticated, it is still quite intuitive for simple cases. Let's look at a few examples from a Remind script file:
REM 6 January MSG David's birthday.
That example is fairly straightforward. On January 6 each year, it reminds me of my birthday. But suppose I need advance warning of my wife's birthday, so I have time to buy her a present. Try this:
REM 20 December +7 MSG Norine's birthday is %b.A little more complex, but still understandable: The +7 means Remind starts warning me seven days ahead of time. The %b is a special substitution sequence, and it works like this:
On 13 December, %b is replaced with “in 7 days time”
On 19 December, %b is replaced with “tomorrow”
On 20 December, %b is replaced with “today”
How about some more tricky reminders? My local Linux users' group meets on the first Wednesday of the month. How do we express this in Remind?
REM Wed 1 MSG OCLUG Meeting.
How does it work? The Wed is recognized as a weekday token, and the 1 as a day-of-the-month token. If both of these tokens are present, the trigger date is the first weekday on or after the day-of-the-month. If you specify multiple weekdays, the first matching one is used. Here are a few more illustrations:
REM Wed MSG Issued every Wednesday. REM Mon Tue Wed Thu Fri MSG Issued every working\ day. REM Mon Tue Wed Thu Fri 1 MSG Issued first\ working day of the month. REM Sat Sun 1 June MSG Issued first weekend day\ in June.Seemingly more difficult things like the first Tuesday after the first Monday in a month are, in fact, easy: a little thought shows that the first Tuesday after the first Monday in a month is simply the first Tuesday on or after the second of the month:
REM Tue 2 MSG Presto! First Tuesday-after-Monday.The last Monday in a month is handled like this:
REM Mon 1 --7 MSG Last Monday of a month.This one is rather tricky: the Mon 1 part is the first Monday of a month, but the --7 means “go back 7 days”. So that reminder is triggered seven days before the first Monday of every month—which happens to be the last Monday of the previous month. The --n sequence can solve some thorny problems related to the “last something in a month”.
Today’s modular x86 servers are compute-centric, designed as a least common denominator to support a wide range of IT workloads. Those generic, virtualized IT workloads have much different resource optimization requirements than hyperscale and cloud applications. They have resulted in a “one size fits all” enterprise IT architecture that is not optimized for a specific set of IT workloads, and especially not emerging hyperscale workloads, such as web applications, big data, and object storage. In this report, you will learn how shifting the focus from traditional compute-centric IT architectures to an innovative disaggregated fabric-based architecture can optimize and scale your data center.
Sponsored by AMD
Built-in forensics, incident response, and security with Red Hat Enterprise Linux 6
Every security policy provides guidance and requirements for ensuring adequate protection of information and data, as well as high-level technical and administrative security requirements for a system in a given environment. Traditionally, providing security for a system focuses on the confidentiality of the information on it. However, protecting the data integrity and system and data availability is just as important. For example, when processing United States intelligence information, there are three attributes that require protection: confidentiality, integrity, and availability.
Learn more about catching the bad guy in this free white paper.
Sponsored by DLT Solutions
| Making Linux and Android Get Along (It's Not as Hard as It Sounds) | May 16, 2013 |
| Drupal Is a Framework: Why Everyone Needs to Understand This | May 15, 2013 |
| Home, My Backup Data Center | May 13, 2013 |
| Non-Linux FOSS: Seashore | May 10, 2013 |
| Trying to Tame the Tablet | May 08, 2013 |
| Dart: a New Web Programming Experience | May 07, 2013 |
- RSS Feeds
- Making Linux and Android Get Along (It's Not as Hard as It Sounds)
- New Products
- Drupal Is a Framework: Why Everyone Needs to Understand This
- A Topic for Discussion - Open Source Feature-Richness?
- Home, My Backup Data Center
- Validate an E-Mail Address with PHP, the Right Way
- New Products
- Developer Poll
- Trying to Tame the Tablet
- not living upto the mobile revolution
1 hour 21 min ago - Deceptive Advertising and
1 hour 56 min ago - Let\'s declare that you have
1 hour 57 min ago - Alterations in Contest Due
1 hour 58 min ago - At a numbers mindset, your
2 hours 8 sec ago - Do not get Just Almost any
2 hours 3 min ago - A fantastic rule-of-thumb to
2 hours 5 min ago - Keren mastah..
Penting,
3 hours 2 min ago - mini tablet compare
4 hours 21 min ago - Looking Good
7 hours 54 min ago




Comments
Big fan of Remind - can I use
Big fan of Remind - can I use it with CalDav or will I have to use rem2ics as well?
Dan
The initiative taken for the
The initiative taken for the concern is very serious and need an attention of every one. This is the concern which exists in the society and needs to be eliminated from the society as soon as possible. The people are loosing their moral while becoming modern. The society needs to be attentive that moral value.
=================================================
Personal Finance Bible
Remind
That piece of software is worth its its bytecode-size in gold.
I´ve been configuring my calendar for about 6 hours and still finding new stuff to try out.
The only thing I´m missing is a omit for multiple days for like having holidays integrated. But maybe I will find something.
Great tool
I thought the calendar tool was good... but `remind' is actually better! It's really sophisticated (I was reading the man pages...), but you can keep it simple.
BTW this is a great HOW-TO... Thanks to your article `remind' convinces me now!
Cheers,
Kenny
Remind article
What a great sounding tool. I wish I had run into it earlier.
The Remind Home Page
The Remind home page is now http://www.roaringpenguin.com/penguin/open_source_remind.php.
-- David.