diff --git a/polybar/calendar b/polybar/calendar
new file mode 100755
index 0000000..19c2f86
--- /dev/null
+++ b/polybar/calendar
@@ -0,0 +1,32 @@
+#!/bin/bash
+
+send_notification() {
+ TODAY=$(date '+%-d')
+ HEAD=$(cal "$1" | head -n1)
+ BODY=$(cal "$1" | tail -n7 | sed -z "s|$TODAY|$TODAY|1")
+ FOOT="\n ~ calendar "
+ dunstify -h string:x-canonical-private-synchronous:calendar \
+ "$HEAD" "$BODY$FOOT" -u NORMAL
+}
+
+handle_action() {
+ echo "$DIFF" > "$TMP"
+ if [ "$DIFF" -ge 0 ]; then
+ send_notification "+$DIFF months"
+ else
+ send_notification "$((-DIFF)) months ago"
+ fi
+}
+
+TMP=${XDG_RUNTIME_DIR:-/tmp}/"$UID"_calendar_notification_month
+touch "$TMP"
+
+DIFF=$(<"$TMP")
+
+case $1 in
+ "curr") DIFF=0;;
+ "next") DIFF=$((DIFF+1));;
+ "prev") DIFF=$((DIFF-1));;
+esac
+
+handle_action