# Calendar \[incr Widget\]

**URL:** <https://www.ruby-forum.com/t/calendar-incr-widget/67644>\
**Category:** Ruby\
**Created:** [September 5, 2006, 9:26pm UTC](https://www.ruby-forum.com/t/calendar-incr-widget/67644 "2006-09-05T21:26:25Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Morton\_G](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/dfb087/32.png) [@Morton\_G](https://www.ruby-forum.com/u/Morton_G)\
**Post date:** [September 5, 2006, 9:26pm UTC](https://www.ruby-forum.com/t/calendar-incr-widget/67644/1 "2006-09-05T21:26:25Z")

</div>

Makes a nice little calendar window. It opnens showing November,  
2006. Clicking on any date results in the date being printed to stdout.

`
#! /usr/bin/ruby -w
# Author: Morton G.
#
# Date: August 31, 2006
#
# Instant Calendar
require ‘tk’
require ‘tkextlib/iwidgets’
DEBUG = []
begin
root = TkRoot.new {title ‘Ruby/Tk Calendar’}
```
cal = Tk::Iwidgets::Calendar.new(root) {
   outline 'black'
   weekdaybackground 'gray90'
   weekendbackground 'white'
   command {p cal.get}
}
cal.pack('pady'=>10)
cal.show('11/1/2006')

# Set initial window geometry; i.e., size and placement.
win_w, win_h = 250, 195
# root.minsize(win_w, win_h)
win_lf = (root.winfo_screenwidth - win_w) / 2
root.geometry("#{win_w}x#{win_h}+#{win_lf}+50")

# Set resize permissions.
root.resizable(false, false)

# Make Cmnd+Q work as expected.
root.bind('Command-q') {Tk.root.destroy}

Tk.mainloop

```
ensure
puts DEBUG unless DEBUG.empty?
end
`

Regards, Morton
