---
name: "Data::ICal::Entry::Todo"
section: "3pm"
platform: "linux"
package: "libdata-ical-perl"
version: "0.24+dfsg-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Data::ICal::Entry::Todo"
---

# Data::ICal::Entry::Todo(3pm)

Represents a to-do entry in an iCalendar file

## NAME

Data::ICal::Entry::Todo - Represents a to-do entry in an iCalendar file

## SYNOPSIS

```
    my $vtodo = Data::ICal::Entry::Todo->new();
    $vtodo->add_properties(
        summary   => "go to sleep",
        status    => 'INCOMPLETE',
        # Dat*e*::ICal is not a typo here
        dtstart   => Date::ICal->new( epoch => time )->ical,
    );
    $calendar->add_entry($vtodo);
    $vtodo->add_entry($alarm);
```

## DESCRIPTION

A Data::ICal::Entry::Todo object represents a single to-do entry in an iCalendar file.  (Note that the iCalendar RFC refers to entries as "components".)  It is a subclass of Data::ICal::Entry and accepts all of its methods.

## METHODS

### ical\_entry\_type

Returns `"VTODO"`, its iCalendar entry name.

### mandatory\_unique\_properties

The `"uid"` property is mandatory if `"rfc_strict"` was passed to "new" in Data::ICal.

### optional\_unique\_properties

According to the iCalendar standard, the following properties may be specified at most one time for a to-do item:

```
      class  completed  created  description  dtstamp
      dtstart  geo  last-modified  location  organizer
      percent-complete  priority  recurrence-id  sequence  status
      summary  uid  url
```

In addition, `"due"` and `"duration"` may be specified at most once each, but not both in the same entry (though this restriction is not enforced).

Or if `"vcal10 => 1"`:

```
        class dcreated completed description dtstart due
        last-modified location rnum priority
        sequence status summary transp
        url uid
```

### optional\_repeatable\_properties

According to the iCalendar standard, the following properties may be specified any number of times for a to-do item:

```
      attach  attendee  categories  comment  contact
      exdate  exrule  request-status  related-to  resources
      rdate  rrule
```

Or if `"vcal10 => 1"`:

```
        aalarm  attach  attendee  categories
        dalarm  exdate  exrule  malarm  palarm  related-to
        resources  rdate  rrule
```

## AUTHOR

Best Practical Solutions, LLC \<modules@bestpractical.com\>

## LICENCE AND COPYRIGHT

Copyright (c) 2005 - 2020, Best Practical Solutions, LLC.  All rights reserved.

This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See perlartistic.
