1. Yad Calendar

This will display a calendar showing the current Day, Month and Year.

Command
yad --calendar
yad calendar
Figure 1. Default calendar dialog

It will also show the date selected so you can parse it to something else.

You can capture the date as a variable like this and parse to to another dialog:

Code
#!/bin/sh
THEDATE=$(yad --calendar)
yad --text="You chose $THEDATE"
yad calendar thedate
Figure 2. Calendar dialogwith selected day
yad calendar thedate result
Figure 3. The result dialog

1.1. --day=DAY

Set the calendar day.

Command
yad --calendar --day=20

sets the 20th day of the current month.

yad calendar day
Figure 4. Calendar dialog with pre selected day

1.2. --month=MONTH

Set the calendar month.

Command
yad --calendar --month=2

sets the month of the current year and day.

yad calendar month
Figure 5. Calendar dialog with pre selected month
Note On some system this doesn’t work.
We need to set the year to.
Command
yad --calendar --year=2021 --month=2

1.3. --year=YEAR

Set the calendar year

Command
yad --calendar --year=2021

sets the month of the current year and day.

Note On some system this doesn’t work.
We need to set the month to.

If we use the following it works:

Command
yad --calendar --year=2021 --month=2
yad calendar year
Figure 6. Calendar dialog with pre selected year

1.4. --show-weeks

Show week numbers at the left side of calendar.

Command
yad --calendar --show-weeks
yad calendar show weeks
Figure 7. Calendar dialog with weeks numbers

1.5. --date-format=PATTERN

Set the format for the returned date.
By default it is %x. See strftime for more details.

yad --calendar will produce the following output of the current day month and year:
01/09/23

If we use following

Command
yad --calendar --date-format=%d%m%y

the output will be: 090123

1.6. --details=FILENAME

Set the filename with dates details.

Read days description from FILENAME.

File with days details must be in following format:

<date> <description>

date field is date in format, specified with --date-format option. (Default is `%x')

description is a string with date details, which may include Pango markup.

Command
yad --calendar --details=yad-calendar.txt
Content of yad-calendar.txt
01/10/2023 Remember to do something...
yad calendar details
Figure 8. Calendar dialog with details

2. strftime

Table 1. strftime
Description

%a

locale’s abbreviated weekday name (e.g., Sun)

%A

locale’s full weekday name (e.g., Sunday)

%b

locale’s abbreviated month name (e.g., Jan)

%B

locale’s full month name (e.g., January)

%c

locale’s date and time (e.g., Thu Mar 3 23:05:25 2005)

%C

century; like %Y, except omit last two digits (e.g., 20)

%d

day of month (e.g., 01)

%D

date; same as %m/%d/%y

%e

day of month, space padded; same as %_d

%F

full date; like %+4Y-%m-%d

%g

last two digits of year of ISO week number (see %G)

%G

year of ISO week number (see %V); normally useful only with %V

%h

same as %b

%H

hour (00..23)

%I

hour (01..12)

%j

day of year (001..366)

%k

hour, space padded ( 0..23); same as %_H

%l

hour, space padded ( 1..12); same as %_I

%m

month (01..12)

%M

minute (00..59)

%n

a newline

%N

nanoseconds (000000000..999999999)

%p

locale’s equivalent of either AM or PM; blank if not known

%P

like %p, but lower case

%q

quarter of year (1..4)

%r

locale’s 12-hour clock time (e.g., 11:11:04 PM)

%R

24-hour hour and minute; same as %H:%M

%s

seconds since the Epoch (1970-01-01 00:00 UTC)

%S

second (00..60)

%t

a tab

%T

time; same as %H:%M:%S

%u

day of week (1..7); 1 is Monday

%U

week number of year, with Sunday as first day of week (00..53)

%V

ISO week number, with Monday as first day of week (01..53)

%w

day of week (0..6); 0 is Sunday

%W

week number of year, with Monday as first day of week (00..53)

%x

locale’s date representation (e.g., 12/31/99)

%X

locale’s time representation (e.g., 23:13:48)

%y

last two digits of year (00..99)

%Y

year

%z

+hhmm numeric time zone (e.g., -0400)

%:z

+hh:mm numeric time zone (e.g., -04:00)

%::z

+hh:mm:ss numeric time zone (e.g., -04:00:00)

%:::z

numeric time zone with : to necessary precision (e.g., -04, +05:30)

%Z

alphabetic time zone abbreviation (e.g., EDT)

%%

a literal %

Back to YAD Guide