Class::DBI::Plugin::Calendar::Day - Calendar Day Support for Class::DBI


  package DB;
  use base 'Class::DBI';
  use Class::DBI::Plugin::Calendar qw(date_fieldname);

  my @weeks = DB->calendar; # current month, based on Calendar::Simple
  for my $week (@weeks) {
    for my $day (@$week) { # always 7 days, some may be placeholders
      if($day->ok) {
        printf '%03d', $day->date->mday;
      } else { # just a placeholder
        print "   ";
      print "\n";
  @events = $day->events unless $day->empty;


These are simple objects which represent days in Class::DBI::Plugin::Calendar applications.

my $real = $day->ok

This means that this day refers to a real day, and is not just a placeholder so that the week in which it resides may contain seven days. This should be called before $day->date for each object. Otherwise, you're in danger of croak()ing. Aliases are: is, good, is_good, is_ok.

my $time_piece = $day->date

This returns a Time::Piece object representing the date. You must call $day->ok before this method, since the application will croak() if this day does not represent a valid date. (It may be a simple placeholder so that weeks always have seven days, in order.

my $num = $day->num_events

This gives the number of events in the day. Aliases: num, sum, has.

my $has_none = $day->empty

The opposite of num_events.

my @events = $day->agenda

The events for that day, ordered by date_fieldname (above). Aliases: objects, events


Class::DBI, Calendar::Simple, Class::DBI::Plugin::Calendar


James Tolley, <>


Copyright (C) 2005 by James Tolley

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.6 or, at your option, any later version of Perl 5 you may have available.