Some better error handling, and more docs
Maybe fix image
Initial commit
Don't Miss It is a simple tool for polling a set of calendars and sending a notification (libnotify
, marked urgency: critical
) when the next meeting is in five minutes. Currently, only Google Calendars are supported.
I made this tool because I'm prone to missing meetings while "in the zone", and wanted a notification separate from existing calendar notifications that I could filter on, and make large and super obnoxious in the center of my screen. Makes it much harder to miss.
Here's what dont-miss-it
looks like on my machine, using wired-notify as my notification daemon and explicitly filtering for appname: dont_miss_it
to make those notifications obnoxious.
Authentication is done via Google's OAuth2 provider. To set things up:
This is all documented in these instructions.
Then, store the JSON-formatted OAuth2 client ID + secret in credentials.json
alongside your dont-miss-it
binary. You can also specify a path to this file with --oauth_credentials_file
.
To add a new account, run:
./dont-miss-it --passphrase<passphrase> login <email>
Replacing <email>
with the Google email address to authenticate with. It'll give you a URL to go to, where you can complete the OAuth2 flow and authorize the client. This will redirect you to a non-existent page on localhost
, which will fail to load. Take the code
query parameter and paste it into the terminal, then hit <Enter>
.
This will create a new <email hash>_token.json
file that is encrypted with the given passphrase.
To actually start the service, run:
./dont-miss-it --email=<email 1> --email<email 2> --passphrase=<passphrase> serve
This will decrypt the credentials for the given emails using the provided passphrase, and periodically poll all the accounts to keep track of the next upcoming event. It'll send a notification (via D-Bus) when the next event is less than 5 minutes away.
DON'T MISS IT
notificationFor configuring your notification daemon to your liking, it can be useful to simulate a DON'T MISS IT
notification, which you can do with the following:
notify-send \
-u critical \
-a dont_miss_it \
"DON'T MISS IT" 'Meeting coming up in 5 minutes'
credentials.json
file as well