## C# 1101bytes

Just does the task, nothing more; I was hoping to add something new, but it turns out I'm awful at ASCII art, so I gave up on that. I dread to think what happens on Saturdays at 11:00 in December...

<!-- language: lang-c# -->

    using System;class P{static string G(DateTime t){Func<int,int>K=new Random().Next;int i,j,D=t.Day,H=t.Hour,W=19-H%12;var M=new char[60,19];Func<int,int,int,string,bool>T=(x,y,w,s)=>{for(i=0;i<s.Length;)if(M[(x+i%w)%60,y+i++/w]>0)return 0>1;for(;i-->0;)M[(x+i%w)%60,y+i/w]=s[i];return 1>0;};T(t.Minute,W-5,9,@"    _       /|\     / | \   /__|__\ ____|____\_______/");while(M[j=K(59-D),W]+M[j+D+1,W]>0){}M[j+D+1,W]=M[j,W]='-';for(j=60;j-->0;)T(j,W,1,"~");for(;j++<(int)t.DayOfWeek;)while(!T(K(53),K(W-3),8,"   ___   _(   ) (___)__)")){}var N=H<6|H>=18;for(j=0;j++<t.Month*(N?3:1);)while(!T(K(60-(N?1:3)),K(W-1),3,N?"*":"-.-")){}var res=" ________________________________________________________________\n|\\ ____________________________________________________________ /|\n| |";for(j=0;j<19;j++){for(i=0;i<60;i++)res+=M[i,j];res+="| |\n| |";}return res+"____________________________________________________________| |\n|/______________________________________________________________\\|";}static void Main(){for(;;){Console.Clear();Console.Write(G(DateTime.Now));System.Threading.Thread.Sleep(15000);}}}


Somewhat formatted code:

<!-- language: lang-c# -->

    using System;
    
    class P
    {
        // calendar "printer"
        static string G(DateTime t)
        {
            Func<int,int>K=new Random().Next;
            int i,j,D=t.Day,H=t.Hour,W=19-H%12;
            var M=new char[60,19];
    
            // "plot" lambda, checks if there is room for a rectangle of chars
            // and sets them if there is
            //returning whether or not it did so
            Func<int,int,int,string,bool>T=(x,y,w,s)=>
            {
                for(i=0;i<s.Length;)
                    if(M[(x+i%w)%60,y+i++/w]>0)
                        return 0>1;
                for(;i-->0;)
                    M[(x+i%w)%60,y+i/w]=s[i];
                return 1>0;
            };
    
            // boat
            T(t.Minute,W-5,9,@"    _       /|\     / | \   /__|__\ ____|____\_______/");
    
            // dashes
            while(M[j=K(59-D),W]+M[j+D+1,W]>0){}
            M[j+D+1,W]=M[j,W]='-';
            
            // waterline
            for(j=60;j-->0;)
                T(j,W,1,"~");
            
            // clouds
            for(;j++<(int)t.DayOfWeek;)
                while(!T(K(53),K(W-3),8,"   ___   _(   ) (___)__)")){}
    
            // stars or birds        
            var N=H<6|H>=18;
            for(j=0;j++<t.Month*(N?3:1);)
                while(!T(K(60-(N?1:3)),K(W-1),3,N?"*":"-.-")){}
    
            // frame and output        
            var res=@" ________________________________________________________________
    |\ ____________________________________________________________ /|
    | |";
    
            for(j=0;j<19;j++)
            {
                for(i=0;i<60;i++)
                    res+=M[i,j];
                res+="| |\n| |";
            }
            
            // I simply can't be bothered to golf these strings
            return res+@"____________________________________________________________| |
    |/______________________________________________________________\|";
        }
        
        static void Main()
        {
            // boring loop
            //  - clears the terminal
            //  - prints the current datetime
            //  - sleeps for 15seconds
            // exit with Ctrl-C
            for(;;)
            {
                Console.Clear();
                Console.Write(G(DateTime.Now));
                System.Threading.Thread.Sleep(15000);
            }
        }
    }

Example output (should read 3:17, Wednesday, 13th August):

<!-- language: none -->

     ________________________________________________________________
    |\ ____________________________________________________________ /|
    | |                     *                *               *  *  | |
    | |                     *                                      | |
    | |            *                    *                          | |
    | |                    ___                                     | |
    | |                  _(   )                         ___        | |
    | |       *     *   (___)__)                      _(   ) **    | |
    | |                                              (___)__)*     | |
    | |              ___           *         *   ___               | |
    | |     *      _(   )                      _(   )              | |
    | |           (___)__)              *     (___)__)     **      | |
    | |                                                            | |
    | |                     _                                      | |
    | |*                   /|\      *  *  *   *                    | |
    | |                   / | \                          *         | |
    | |                  /__|__\                                   | |
    | |                 ____|____                                  | |
    | |~~~~~~~~~~~~~~~~~\_______/-~~~~~~~~~~~~~-~~~~~~~~~~~~~~~~~~~| |
    | |                                                            | |
    | |                                                            | |
    | |____________________________________________________________| |
    |/______________________________________________________________\|