#!/bin/bash #Print the next appointment for the day for statusbar #or generate notification for upcoming appointment diff=$(calcurse --next | tail -n1 | sed 's/^\s*//; s/\[//;s/\]//' | cut -f1 -d ' ') secs=$(( $(echo "$diff" | cut -f1 -d ':') * 3600 + $(echo "$diff" | cut -f2 -d ':') *60 )) time_appointment="$(date --date "@$(( $( date +'%s' ) + $secs ))" +"%s")" appointment="$(calcurse --next | tail -n1 | awk '{$1=""; print $0}' | sed 's/^\s*//')" if [ "$1" = "notif" ]; then msg="$(printf '%s\n%s' "$(date --date "@$time_appointment" +'%H:%M')" "$appointment")" notify-send "Appointment coming up" "$msg" else midnight=$(( $(date --date "$(date | sed 's/..:..:../23:59:59/; s/ PM//; s/ AM//')" +%s) + 1 )) if [ $midnight -gt "$time_appointment" ]; then printf '%s %s' "$(date --date "@$time_appointment" +'%H:%M')" "$appointment" fi printf '\n' fi