Remind: The Ultimate Personal Calendar
So far, any commercial calendar package can keep up with Remind, but now we start pulling ahead of the pack.
One of the most annoying things about most calendar programs is how they handle holidays. Suppose you have a meeting every Thursday, but not if it's a holiday. The typical calendar program will go ahead and remind you anyway. Here in Canada, July 1 is a holiday and July 1, 1999, is a Thursday. Look at this script snippet:
OMIT 1 July MSG Canada Day. REM Thursday SKIP MSG Meeting.
The OMIT line tells Remind that 1 July is a holiday, and it also prints a nice message on that date. The SKIP token in the REM line tells Remind to skip the reminder if it falls on a holiday. The reminder will thus be triggered on 24 June 1999 and 8 July 1999, but not 1 July 1999.
There are other flavours:
REM Thursday BEFORE MSG Meeting moved to preceding\ Wednesday if Thursday is a holiday. REM Thursday AFTER MSG Meeting moved to next\ Friday if Thursday is a holiday.
Remind has fairly sophisticated mechanisms for adjusting reminders because of holidays and weekends; please read the manual for more information.
At this point, your head may be spinning. You don't want to learn yet another command language or obscure configuration-file format. You pine for the GUIs your Microsoft colleagues use. No problem; Remind comes with a graphical front end called TkRemind, written in Tcl/Tk. TkRemind presents a graphical calendar and lets you enter reminders with a simple graphical entry box. Figure 1 shows the main TkRemind window, and Figure 2 shows the reminder entry box.
With TkRemind, you never have to learn Remind's scripting language, as long as you can express all the reminders you need with the GUI. However, you are encouraged to learn to script Remind; from the GUI, just click “Preview Reminder” to see the Remind code which will implement your reminder.
The GUI also hinted at the existence of something called a “timed reminder”. This is a reminder with a time of day specified. You can arrange to have Remind pop up reminders just before an important meeting, or more importantly, remind you to go home.
Here's an example of a timed reminder:
REM Mon Tue Wed Thu Fri AT 17:00 +15 *3 MSG Go home!
The AT keyword introduces an “AT clause”. The 17:00 means that the trigger time is 5:00 PM. The +15 means Remind starts carping at you fifteen minutes ahead of time, and the *3 means it annoys you every three minutes.
The TkRemind front end runs Remind in a special “daemon mode” so that timed reminders like the previous example are popped up in X windows.
While what we've seen so far is quite cool, there is still the stubborn oddball reminder which requires a much tougher piece of scripting to handle. Consider the 4th of July in the U.S. If this falls on a Saturday, the previous Friday is a holiday. If it falls on a Sunday, the next Monday is a holiday. Otherwise, the 4th itself is the holiday. I won't even attempt to explain this bit of scripting; get yourself the manual, and become a hard-core Remind programmer.
Listing 1 illustrates several features of Remind scripting: Remind has built-in functions (66 of them, to be precise) and allows user-defined functions (e.g., FSET). It also has conditional tests (e.g., IF/ENDIF). A bit of clever scripting can express reminders which prove too tough for most calendar programs.
Ultimately, all calendars are derived from astronomical observations. Remind includes routines to calculate sunrise and sunset times for where you live, as well as moon phases. The moon phases were illustrated in the GUI calendar. These astronomical calculations are available as built-in Remind functions.
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
- New Products
- Making Linux and Android Get Along (It's Not as Hard as It Sounds)
- Drupal Is a Framework: Why Everyone Needs to Understand This
- A Topic for Discussion - Open Source Feature-Richness?
- Home, My Backup Data Center
- Developer Poll
- May 2013 Issue of Linux Journal: Raspberry Pi
- Dart: a New Web Programming Experience
- What's the tweeting protocol?
- Reply to comment | Linux Journal
15 min 49 sec ago - Reply to comment | Linux Journal
1 hour 2 min ago - Web Hosting IQ
2 hours 36 min ago - Thanks for taking the time to
4 hours 13 min ago - Linux is good
6 hours 10 min ago - Reply to comment | Linux Journal
6 hours 28 min ago - Web Hosting IQ
6 hours 58 min ago - Web Hosting IQ
6 hours 58 min ago - Web Hosting IQ
6 hours 59 min ago - Reply to comment | Linux Journal
9 hours 59 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.