Remind Helpers

From 43FoldersWiki

Jump to: navigation, search

In the tradition of many great Unix utilities, Remind is designed to interoperate easily with other programs. This page lists a number of programs (and program configurations) that work particularly well with Remind.


[edit] Tools for Displaying Remind's Output

[edit] General Text Display Tools

[edit] GeekTool

Use GeekTool to display the output of Remind on your desktop. Remember to use the -q option to prevent GeekTool from queueing up all your timed reminders again every time it refreshes.

[edit] Growl

  • I don't always have a terminal open, and sometimes when I do have one open, it's not the app currently in focus. So I wrote a Perl script that executes remind and shoves the output (via Mac::Glue) to a Growl notification. Then I put the script in ~/Library/Scripts where Quicksilver can see it and now I can just execute it any time I want to see my reminders no matter what application I'm working in.
  • nohup/remind/growl

You can run remind as a background daemon and fire off reminders through growl:

nohup remind -z -k'osascript -e "beep"; growlnotify -n remind -a iCal -t Reminder -s -m %s &' ~/.reminders &


don't kill this command when i close this terminal window or log out
remind -z 
run remind as a daemon, checking up every five minutes
pass the reminders to the commands within quotes
osascript -e "beep" 
play the default system alert sound
-n remind 
identify the app as remind to Growl (shows as a separate app in the Growl prefpane, so you can assign it a different display style if you want)
-a iCal 
give the Growl bubble the iCal icon (rather than the "Unknown app" icon)
-t Reminder 
make the bubble title "Reminder"
make the growl bubble sticky
-m %s 
represents the text of the reminder
run growlnotify as a background process
what remind file to run
run the whole thing as a background process

For extra laziness, you can write a launchd script to start this at login.

[edit] Dashboard Widgets

[edit] Cron, Mail, and Pipes

How would you like to see an updated reminder calendar in your email every morning? Set up a cron job to go off just before you would normally first sit down at your computer. The cron command would be something along the lines of:

rem -c+1 | mail

Which produces a nice plaintext weekly calendar with all your reminders for your inbox.

[edit] Frontends

  • Wyrd is a popular text-based frontend for Remind.
  • wxRemind is similar to Wyrd but based on wxPython rather than curses.

[edit] Calendar Import/Export Utilities

iCal2Rem - an iCal / IcS to Remind converter.

rem2ics is a script that converts Remind events to iCal format.

out2rem is a script to scrape your Microsoft Outlook appointments into Remind-compatible lines. Use as indicated for ical2remind above. This version 0.0.1 was not written with reference to the ical2rem script, so there is probably some worth in comparing the code and harmonizing features. Tested only with Outlook 2003 so far (please note if you test with other versions).

[edit] Editors

Editing your remind files in TextMate can be made easier if you create a Remind bundle. Here is a language grammar that provides syntax coloring for your rem files. Open your bundle editor (by pressing ⌃ ⌥ ⌘ B) and create a new bundle called Remind. Within the newly created Remind bundle creat a new language and add the following:

{	scopeName = 'source.remind';
	firstLineMatch = '^REM*';
	fileTypes = ( 'defs.rem', 'REM*.txt', '.reminders' );
	patterns = (
		{	name = 'keyword.control.remind';
			match = '\b(IF|ELSE|ENDIF|IFTRIG)\b';
		{	name = 'entity.remind';
			match = '\b(tag|PRIORITY|TAG)\b';
		{	name = 'constant.language.remind';
			match = '%';
		{	name = 'keyword.commands.remind';
			match = '\b(REM|OMIT|SET|FSET|UNSET)\b';
		{	name = 'keyword.expiry.remind';
		{	name = 'keyword.timed.remind';
			match = '\b(AT|DURATION)\b';
		{	name = 'keyword.move.remind';
			match = '\b(ONCE|SKIP|BEFORE|AFTER)\b';
		{	name = 'keyword.special.remind';
		{	name = '';
		{	name = 'comment.line.number-sign.remind';
			match = '(?<!\$)#(?!\{).*$';
		{	name = 'comment.line.semi-colon.remind';
			match = '(?<!\$);(?!\{).*$';
		{	name = 'string.quoted.double.remind';
			begin = '"';
			end = '"';

To get the syntax coloring to work with your favorite theme add the above scope names to your theme and assign them colors.

To view your monthly calendar within TextMate add the following command to your Remind bundle:

Save:		Nothing
Command(s)	remind -p1 ~/.reminders | rem2html -b 1 -t 1 -se -1
Input:		None
Output:		Show as HTML

Assign the command a key equivalent and now you can access your monthly calendar within TextMate at a keystroke.

Snippets will also be useful for your Remind bundle. Here is (a slightly modified) snippet suggested by Merlin Mann:

REM ${1:`date +'%b %e %Y'`} AT ${2:00}:${3:00} DURATION ${4:1:00} MSG $5 %


Add the following lines in your .emacs

;; ;; To include .reminders as a shell mode 
  (setq auto-mode-alist
        (cons '(".reminders$" . shell-script-mode) auto-mode-alist))

(add-hook 'sh-mode-hook
     (lambda ()
       (auto-fill-mode nil)))


There is a vim syntax file available for Remind:

Other snippets are useful as well but these will depend on your use case.

You can also download Rupa Deadwyler's Remind bundle from this subversion repository

Personal tools