diff --git a/src/main.sh b/src/main.sh
index fd3d5f9..0bc38a1 100755
--- a/src/main.sh
+++ b/src/main.sh
@@ -112,6 +112,13 @@ EOF
 EOF
   )
   export AWK_NEW
+
+  AWK_CAL=$(
+    cat <<'EOF'
+@@include src/awk/cal.awk
+EOF
+  )
+  export AWK_CAL
   ### END OF AWK SCRIPTS
 
   ## Colors
@@ -381,6 +388,52 @@ if [ "${1:-}" = "--preview" ]; then
   exit
 fi
 
+if [ "${1:-}" = "--preview-week" ]; then
+  sign=$(echo "$2" | cut -d '|' -f 1)
+  if [ "$sign" = "+" ]; then
+    startdate=$(echo "$2" | cut -d '|' -f 2)
+    set -- $(date -d "$startdate" +"%Y %m %d")
+    year=$1
+    month=$2
+    day=$3
+    set -- $(date -d "today" +"%Y %m %d")
+    year_cur=$1
+    month_cur=$2
+    day_cur=$3
+    # Previous month
+    if [ "$month" -eq 1 ]; then
+      month_pre=12
+      year_pre=$((year - 1))
+    else
+      month_pre=$((month - 1))
+      year_pre=$year
+    fi
+    # Next month
+    if [ "$month" -eq 12 ]; then
+      month_nex=1
+      year_nex=$((year + 1))
+    else
+      month_nex=$((month + 1))
+      year_nex=$year
+    fi
+    # Highlight today
+    if [ "$month_pre" -eq "$month_cur" ] && [ "$year_pre" -eq "$year_cur" ]; then
+      var_pre=$day_cur
+    fi
+    if [ "$month" -eq "$month_cur" ] && [ "$year" -eq "$year_cur" ]; then
+      var=$day_cur
+    fi
+    if [ "$month_nex" -eq "$month_cur" ] && [ "$year_nex" -eq "$year_cur" ]; then
+      var_nex=$day_cur
+    fi
+    # show
+    cal "$month_pre" "$year_pre" | awk -v cur="${var_pre:-}" "$AWK_CAL"
+    cal "$month" "$year" | awk -v cur="${var:-}" -v day="$day" "$AWK_CAL"
+    cal "$month_nex" "$year_nex" | awk -v cur="${var_nex:-}" "$AWK_CAL"
+  fi
+  exit
+fi
+
 if [ "${1:-}" = "--delete" ]; then
   fpath=$(echo "$2" | cut -d '|' -f 4 | sed "s/ /|/g")
   if [ -n "$fpath" ]; then
@@ -480,6 +533,8 @@ selection=$(
       --ansi \
       --no-clear \
       --no-scrollbar \
+      --preview-window=right,21 \
+      --preview="$0 --preview-week {}" \
       --expect="ctrl-n" \
       --bind="load:pos($DISPLAY_POS)" \
       --bind="ctrl-u:become($0 --date '$DISPLAY_DATE_PREV')" \