Create notifications for all your recurring events! For example, I use this to keep track of when my Southbound and Northbound trains are next leaving. That way I know when I need to pack up my laptop and head over to the station.
Via Command Line
apm install event-watch
Command Palette ➔ Settings View: Install Packages And Themes ➔ Event Watch
Most configuration options for this package are available through your Atom settings panel. You must edit schedule data directly. To do this, first open your Atom configuration file:
Command Palette ➔ Application: Open Your Config
Within this config you should see configuration data for installed packages, for example you will
minimap (if you have it installed), as well as other package configurations.
You will need to provide schedule data for
event-watch specifying your recurring event schedules.
Configuring Schedule Data
schedules configuration should be a simple key/value object. Its keys are the titles of your
events, and its values are the schedules. For example:
schedules: "Standup Meeting": "at 9:00 am on Mon,Tue,Wed,Thu,Fri" "Happy Hour": "at 5:00 pm on Fri"
If you'd like to put your schedules in their own separate configuration files, you can instead use
subscriptions configuration, which should be an array of file paths to load schedule data
from. For example,
"Standup Meeting": "at 9:00 am on Mon,Tue,Wed,Thu,Fri" "Happy Hour": "at 5:00 pm on Fri"
in a file at
/path/to/your/data.cson and then set your
subscriptions configuration as follows.
subscriptions: [ "/path/to/your/data.cson" ]
Either or both methods of configuring schedule data are valid. Use whichever method is more convenient for your purposes.
The files listed in the
subscriptionsconfiguration parse at startup time and if the configuration changes. You can force a reload and update of event-watch using the command
Command Palette ➔ Event Watch: Reload.
Writing a Schedule
Schedules are strings parsed using later.js's text or cron parser. Please see their extensive documentation for further details and examples. If event-watch encounters a problem in parsing your schedule, it will warn you with a short notification. Note that later.js can not detect errors in cron expressions.
||fires at 10:15am every day|
||fires every 5 minutes every day|
||fires at 7:03 am every Monday and Friday|
Time and Display Formats
Time formats such as
timeFormatOtherDay must fit
moment.js's format specification. Display formats like
Display Format and
Display Format Tooltip are strings that specify how to display your event times in the status bar
or tooltip areas. The following values interpolate automatically in display formats:
$title: The title of the event as defined by its key in
$time: The time of the next occurring event, formatted according to either
$tminus: The time remaining until the next occurring event.
The following is what my configuration looks like.
"*": "event-watch": schedules: Northbound: ''' at 7:03am and 7:34am and 8:05am and 8:41am and 9:15am and 9:44am and 10:15am and 11:15am and 12:15am and 1:15pm and 2:15pm and 3:15pm and 3:44pm and 4:19pm and 4:55pm and 5:27pm and 5:57pm and 6:30pm on Mon,Tue,Wed,Thu,Fri also at 7:30pm and 8:30pm and 9:30pm and 10:30pm and 11:30pm on Fri also at 12:30am on Sat also at 4:41pm and 5:15pm and 5:15pm and 5:49pm and 6:23pm and 6:57pm and 7:31pm and 8:05pm and 8:39pm and 9:13pm and 9:47pm and 10:21pm and 10:55pm and 11:29pm on Sat also at 12:03am on Sun ''' Southbound: ''' at 6:24am and 6:56am and 7:27am and 7:58am and 8:34am and 9:09am and 9:38am and 10:38am and 11:38am and 12:38am and 1:38pm and 2:38pm and 3:09pm and 3:38pm and 4:13pm and 4:43pm and 5:19pm and 5:51pm on Mon,Tue,Wed,Thu,Fri also at 6:53pm and 7:53pm and 8:24pm and 9:24pm and 10:24pm and 11:24pm on Fri also at 4:00pm and 4:34pm and 5:08pm and 5:42pm and 6:16pm and 6:50pm and 7:24pm and 7:58pm and 8:32pm and 9:06pm and 9:40pm and 10:14pm and 10:48pm and 11:22pm on Sat '''
So if my current time is
And if I hover over the widget at
9:11 AM I would see:
I would like to add the following features in future versions of event-watch.
- Option to configure certain events to display in-editor notifications.
- Detect "last event of the day" and display in-editor warning.
- Time formatting options for
$tminusbesides humanized durations.
- More unit tests. Tests for every configuration option. Tests for tooltip and commands.
- Add more screenshots other than my Northbound/Southbound train example.
- Refactor and unify creation of tooltip and status-bar label?
- Support schedule data provided by remote configuration file? Or from a common dot file?