このページのJavaScriptです。
左のカレンダーの日付を選択したり、次の月に動かすとログが出力されます。
タイトルには、YUI Drag and Dropを使用してドラッグ可能にしてあります。
<script type="text/javascript">
YAHOO.namespace("cal");

function init() {
    YAHOO.cal.x1 = new YAHOO.widget.Calendar("cal1", "yui-calendar");

    // タイトルの定義。ドラッグできるようにdivタグを書いておく
    YAHOO.cal.x1.cfg.setProperty("title", "<div id='handle'>カスタムイベントサンプル</div>");

    YAHOO.cal.x1.cfg.setProperty("MULTI_SELECT", true);
    YAHOO.cal.x1.cfg.setProperty("close", true);
    YAHOO.cal.x1.cfg.setProperty("START_WEEKDAY", 1);

    // ローカライズ
    YAHOO.cal.x1.cfg.setProperty("MDY_YEAR_POSITION", 1);
    YAHOO.cal.x1.cfg.setProperty("MDY_MONTH_POSITION", 2);
    YAHOO.cal.x1.cfg.setProperty("MDY_DAY_POSITION", 3);

    YAHOO.cal.x1.cfg.setProperty("MY_YEAR_POSITION", 1);
    YAHOO.cal.x1.cfg.setProperty("MY_MONTH_POSITION", 2);

    YAHOO.cal.x1.cfg.setProperty("WEEKDAYS_SHORT", [
        "<font color='red'>日</font>",
        "月",
        "火",
        "水",
        "木",
        "金",
        "<font color='blue'>土</font>"
    ]);

    YAHOO.cal.x1.cfg.setProperty("MONTHS_LONG", [
        "1月",
        "2月",
        "3月",
        "4月",
        "5月",
        "6月",
        "7月",
        "8月",
        "9月",
        "10月",
        "11月",
        "12月"
    ]);

    var beforeRenderHandler = function(type, args, obj) {
        var elm = document.getElementById('output');
        var html = type + ':カレンダーの描画を始めます<br/>';
        elm.innerHTML = html + elm.innerHTML;
    };

    var renderHandler = function(type, args, obj) {
        var elm = document.getElementById('output');
        var html = type + ':カレンダーの描画が終わりました<br/>';
        elm.innerHTML = html + elm.innerHTML;
    };

    var beforeSelectHandler = function(type, args, obj) {
        var elm = document.getElementById('output');
        var html = type + ':selectEventを開始します<br/>';
        elm.innerHTML = html + elm.innerHTML;
    };

    // args から選択した日付が取得できる。
    var selectHandler = function(type, args, obj) {
        var elm = document.getElementById('output');
        var html = type + ':' + args + 'を選択しました<br/>';
        elm.innerHTML = html + elm.innerHTML;
    };

    var beforeDeselectHandler = function(type, args, obj) {
        var elm = document.getElementById('output');
        var html = type + ':deselectEventを開始します<br/>';
        elm.innerHTML = html + elm.innerHTML;
    };

    // args から選択をはずした日付が取得できる。
    var deselectHandler = function(type, args, obj) {
        var elm = document.getElementById('output');
        var html = type + ':' + args + 'が選択からはずされました<br/>';
        elm.innerHTML = html + elm.innerHTML;
    };

    var changePageHandler = function(type, args, obj) {
        var elm = document.getElementById('output');
        var pagedate = this.cfg.getProperty("pagedate");
        var yyyy = pagedate.getYear();
        if ( yyyy < 1900 ) yyyy+=1900;
        var  mm  = pagedate.getMonth() + 1;
        var html = type + ':' + yyyy + ',' + mm + 'に移りました<br/>';
        elm.innerHTML = html + elm.innerHTML;
    };

    var clearHandler = function(type, args, obj) {
        var elm = document.getElementById('output');
        var html = type + ':clear が呼ばれました<br/>';
        elm.innerHTML = html + elm.innerHTML;
    };

    var resetHandler = function(type, args, obj) {
        var elm = document.getElementById('output');
        var html = type + ':reset が呼ばれました<br/>';
        elm.innerHTML = html + elm.innerHTML;
    };

    // カスタムイベントに登録
    YAHOO.cal.x1.beforeRenderEvent.subscribe(beforeRenderHandler, YAHOO.cal.x1, true);
    YAHOO.cal.x1.renderEvent.subscribe(renderHandler, YAHOO.cal.x1, true);
    YAHOO.cal.x1.beforeSelectEvent.subscribe(beforeSelectHandler, YAHOO.cal.x1, true);
    YAHOO.cal.x1.selectEvent.subscribe(selectHandler, YAHOO.cal.x1, true);
    YAHOO.cal.x1.beforeDeselectEvent.subscribe(beforeDeselectHandler, YAHOO.cal.x1, true);
    YAHOO.cal.x1.deselectEvent.subscribe(deselectHandler, YAHOO.cal.x1, true);
    YAHOO.cal.x1.changePageEvent.subscribe(changePageHandler, YAHOO.cal.x1, true);
    YAHOO.cal.x1.clearEvent.subscribe(clearHandler, YAHOO.cal.x1, true);
    YAHOO.cal.x1.resetEvent.subscribe(resetHandler, YAHOO.cal.x1, true);

    YAHOO.cal.x1.render();

    // 出力画面をドラッグできるように。
    var dd1 = new YAHOO.util.DD("output", "myGroup");
    // タイトルをつかんだらドラッグできるように。
    var dd2 = new YAHOO.util.DD("yui-calendar", "myGroup");
    dd2.setHandleElId("handle");

    // celarボタンを押下したら、YAHOO.widget.Calendar#clear を実行
    YAHOO.util.Event.addListener("clear", "click", YAHOO.cal.x1.clear, YAHOO.cal.x1, true);

    // resetボタンを押下したら、YAHOO.widget.Calendar#reset を実行
    YAHOO.util.Event.addListener("reset", "click", YAHOO.cal.x1.reset, YAHOO.cal.x1, true);
}

YAHOO.util.Event.addListener(window, "load", init);
</script>