Pickdate

October 27, 2025 ยท View on GitHub

fastly select date via vim-motions and print it to stdout

showcase

Install

arch linux:

yay -S install pickdate 

manualy:

git clone git@github.com:maraloon/pickdate.git
cd pickdate
go install

Usage idea

It's for what i develop this app. Terminal-based notes. Open (or create) file for selected date

After time i rewrite my bash scripts to one project: tty-diary, so if you want to diarize like me, check it

#!/usr/bin/env sh
prev_selected_date=$(date +"%Y/%m/%d")
while true
do 
    selected_date=$(pickdate -m --start-at $prev_selected_date) || exit 1
    nvim "$HOME/diary/$selected_date.md" # opens diary/2025/01/15.md
    prev_selected_date=$selected_date # alows to stay in selected date after quit editor
done

usage

Flags

Usage: pickdate [OPTIONS]

Options:
  -f, --format string     Format of date output (default "yyyy/mm/dd")
  -h, --help              Help
  -m, --monday            Monday as first day of week
      --start-at string   Pointed date on enter (default today)
  -s, --sunday            Sunday as first day of week (default true)

--format values

You can use both left and right format types

FormatGo Layout
yyyy/mm/dd2006/01/02
Y/m/d2006/01/02
yyyy-mm-dd2006-01-02
Y-m-d2006-01-02
F j, YJanuary 2, 2006
m/d/y01/02/06
M-d-yJan-02-06
lMonday
DMon
d02
j2
FJanuary
MJan
m01
n1
Y2006
y06

Set custom colors for days

You can send string to stdin to set custom colors for each day. String format: color1:day1,day2;color2:day3,day31 color - [0-15] or hex (#b16286) day - 2006/01/02

example: echo "#b16286:2025/08/10,2025/08/11;#d79920:2025/08/12" | pickdate

TODO

- [x] stable
- [ ] git version
- [x] decoupling to bubble component

Made with

It depends on datepicker bubble, which you can use in your go apps too

Bubble Tea Title Treatment