NAME

Net::Google::Calendar::Entry - entry class for Net::Google::Calendar

SYNOPSIS

my $event = Net::Google::Calendar::Entry->new();
$event->title('Party!');
$event->content('P-A-R-T-Why? Because we GOTTA!');
$event->location("My Flat, London, England");
$event->status('confirmed'); 
$event->transparency('opaque');
$event->visibility('private'); 

my $author = Net::Google::Calendar::Person->new;
$author->name('Foo Bar');
$author->email('foo@bar.com');
$entry->author($author);

DESCRIPTION

METHODS

new

Create a new Event object

id [id]

Get or set the id.

title [title]

Get or set the title.

content [content]

Get or set the content.

author [author]

Get or set the author

transparency [transparency]

Get or set the transparency. Transparency should be one of

opaque
transparent

visibility [visibility]

Get or set the visibility. Visibility should be one of

confidential
default
private
public 

status [status]

Get or set the status. Status should be one of

canceled
confirmed
tentative

is_allday

Get the allday flag.

Returns 1 of event is an All Day event, 0 if not, undef if it can't be determined.

extended_property [property]

Get or set an extended property

location [location]

Get or set the location

quick_add [bool]

Get or set whether this is a a quick add entry or not.

when [<start> <end> [allday]]

Get or set the start and end time as supplied as DateTime objects. End must be more than start.

You may optionally pass a paramter in designating if this is an all day event or not.

Returns two DateTime objects depicting the start and end and a flag noting whether it's an all day event.

reminder <method> <type> <when>

Sets a reminder on this entry.

method must be one of:

alert email sms

type must be one of

days hours minutes absoluteTime

If the type is absoluteTime then when should be either a iso formatted date string or a DateTime object.

who [Net::Google::Calendar::Person[s]]

Get or set the list of event invitees.

If no parameters are passed then it returns a list containing zero or more Net::Google::Calendar::Person objects.

If you pass in one or more Net::Google::Calendar::Person objects then they get set as the invitees.

comments [comment[s]]

Get or set Comments object.

edit_url

Return the edit url of this event.

self_url

Return the self url of this event.

html_url

Return the 'alternate' browser-friendly url of this event.

recurrence [ Data::ICal::Entry::Event ]

Get or set a recurrence for an entry - this is in the form of a Data::ICal::Entry::Event object.

Returns undef if there's no recurrence event

This will not work if Data::ICal is not installed and will return undef.

For example ...

$event->title('Pay Day');
$event->start(DateTime->now);

my $recurrence = Data::ICal::Entry::Event->new();


my $last_day_of_the_month = DateTime::Event::Recurrence->monthly( days => -1 );
$recurrence->add_properties(
           dtstart   => DateTime::Format::ICal->format_datetime(DateTime->now),
           rrule     => DateTime::Format::ICal->format_recurrence($last_day_of_the_month),
);

$entry->recurrence($recurrence);

To get the recurrence back:

print $entry->recurrence->as_string;

See

http://code.google.com/apis/gdata/common-elements.html#gdRecurrence

For more details

Adds the link $link, which must be an XML::Atom::Link object, to the entry as a new <link> tag. For example:

my $link = XML::Atom::Link->new;
$link->type('text/html');
$link->rel('alternate');
$link->href('http://www.example.com/2003/12/post.html');
$entry->add_link($link);

original_event [event]

Get or set the original event ID.

TODO

more complex content
more complex locations
recurrency
comments

See http://code.google.com/apis/gdata/common-elements.html for details

AUTHOR

Simon Wistow <simon@thegestalt.org>

COPYRIGHT

Copyright Simon Wistow, 2006

Distributed under the same terms as Perl itself.

SEE ALSO

http://code.google.com/apis/gdata/common-elements.html

Net::Google::Calendar

XML::Atom::Event