## ECalComponent ECalComponent — A convenience interface for interacting with events |

## Functions

gchar * | e_cal_component_gen_uid ()
ECalComponent * | e_cal_component_new ()
ECalComponent * | e_cal_component_new_from_string ()
ECalComponent * | e_cal_component_new_from_icalcomponent ()
ECalComponent * | e_cal_component_clone ()
void | e_cal_component_set_new_vtype ()
icalcomponent * | e_cal_component_get_icalcomponent ()
gboolean | e_cal_component_set_icalcomponent ()
void | e_cal_component_rescan ()
void | e_cal_component_strip_errors ()
ECalComponentVType | e_cal_component_get_vtype ()
gchar * | e_cal_component_get_as_string ()
void | e_cal_component_commit_sequence ()
void | e_cal_component_abort_sequence ()
void | e_cal_component_get_uid ()
void | e_cal_component_set_uid ()
ECalComponentId * | e_cal_component_get_id ()
void | e_cal_component_free_id ()
ECalComponentId * | e_cal_component_id_new ()
ECalComponentId * | e_cal_component_id_copy ()
guint | e_cal_component_id_hash ()
gboolean | e_cal_component_id_equal ()
void | e_cal_component_get_categories ()
void | e_cal_component_set_categories ()
void | e_cal_component_get_categories_list ()
void | e_cal_component_set_categories_list ()
void | e_cal_component_get_classification ()
void | e_cal_component_set_classification ()
void | e_cal_component_get_comment_list ()
void | e_cal_component_set_comment_list ()
void | e_cal_component_get_completed ()
void | e_cal_component_set_completed ()
void | e_cal_component_get_contact_list ()
void | e_cal_component_set_contact_list ()
void | e_cal_component_get_created ()
void | e_cal_component_set_created ()
void | e_cal_component_get_description_list ()
void | e_cal_component_set_description_list ()
void | e_cal_component_get_dtend ()
void | e_cal_component_set_dtend ()
void | e_cal_component_get_dtstamp ()
void | e_cal_component_set_dtstamp ()
void | e_cal_component_get_dtstart ()
void | e_cal_component_set_dtstart ()
void | e_cal_component_get_due ()
void | e_cal_component_set_due ()
void | e_cal_component_get_exdate_list ()
void | e_cal_component_set_exdate_list ()
gboolean | e_cal_component_has_exdates ()
void | e_cal_component_get_exrule_list ()
void | e_cal_component_get_exrule_property_list ()
void | e_cal_component_set_exrule_list ()
gboolean | e_cal_component_has_exrules ()
gboolean | e_cal_component_has_exceptions ()
void | e_cal_component_get_geo ()
void | e_cal_component_set_geo ()
void | e_cal_component_get_last_modified ()
void | e_cal_component_set_last_modified ()
void | e_cal_component_get_organizer ()
void | e_cal_component_set_organizer ()
gboolean | e_cal_component_has_organizer ()
gint | e_cal_component_get_percent_as_int ()
void | e_cal_component_set_percent_as_int ()
void | e_cal_component_get_percent ()
void | e_cal_component_set_percent ()
void | e_cal_component_get_priority ()
void | e_cal_component_set_priority ()
void | e_cal_component_get_recurid ()
gchar * | e_cal_component_get_recurid_as_string ()
void | e_cal_component_set_recurid ()
void | e_cal_component_get_rdate_list ()
void | e_cal_component_set_rdate_list ()
gboolean | e_cal_component_has_rdates ()
void | e_cal_component_get_rrule_list ()
void | e_cal_component_get_rrule_property_list ()
void | e_cal_component_set_rrule_list ()
gboolean | e_cal_component_has_rrules ()
gboolean | e_cal_component_has_recurrences ()
gboolean | e_cal_component_has_simple_recurrence ()
gboolean | e_cal_component_is_instance ()
void | e_cal_component_get_sequence ()
void | e_cal_component_set_sequence ()
void | e_cal_component_get_status ()
void | e_cal_component_set_status ()
void | e_cal_component_get_summary ()
void | e_cal_component_set_summary ()
void | e_cal_component_get_transparency ()
void | e_cal_component_set_transparency ()
void | e_cal_component_get_url ()
void | e_cal_component_set_url ()
void | e_cal_component_get_attendee_list ()
void | e_cal_component_set_attendee_list ()
gboolean | e_cal_component_has_attendees ()
void | e_cal_component_get_location ()
void | e_cal_component_set_location ()
void | e_cal_component_get_attachment_list ()
void | e_cal_component_set_attachment_list ()
gboolean | e_cal_component_has_attachments ()
gint | e_cal_component_get_num_attachments ()
gboolean | e_cal_component_event_dates_match ()
void | e_cal_component_free_categories_list ()
void | e_cal_component_free_datetime ()
void | e_cal_component_free_range ()
void | e_cal_component_free_exdate_list ()
void | e_cal_component_free_geo ()
void | e_cal_component_free_icaltimetype ()
void | e_cal_component_free_percent ()
void | e_cal_component_free_priority ()
void | e_cal_component_free_period_list ()
void | e_cal_component_free_recur_list ()
void | e_cal_component_free_sequence ()
void | e_cal_component_free_text_list ()
void | e_cal_component_free_attendee_list ()
gboolean | e_cal_component_has_alarms ()
void | e_cal_component_add_alarm ()
void | e_cal_component_remove_alarm ()
void | e_cal_component_remove_all_alarms ()
GList * | e_cal_component_get_alarm_uids ()
ECalComponentAlarm * | e_cal_component_get_alarm ()
void | e_cal_component_alarms_free ()
ECalComponentAlarm * | e_cal_component_alarm_new ()
ECalComponentAlarm * | e_cal_component_alarm_clone ()
void | e_cal_component_alarm_free ()
const gchar * | e_cal_component_alarm_get_uid ()
void | e_cal_component_alarm_get_action ()
void | e_cal_component_alarm_set_action ()
void | e_cal_component_alarm_get_attach ()
void | e_cal_component_alarm_set_attach ()
void | e_cal_component_alarm_get_description ()
void | e_cal_component_alarm_set_description ()
void | e_cal_component_alarm_get_repeat ()
void | e_cal_component_alarm_set_repeat ()
void | e_cal_component_alarm_get_trigger ()
void | e_cal_component_alarm_set_trigger ()
void | e_cal_component_alarm_get_attendee_list ()
void | e_cal_component_alarm_set_attendee_list ()
gboolean | e_cal_component_alarm_has_attendees ()
icalcomponent * | e_cal_component_alarm_get_icalcomponent ()

## Types and Values

| ECalComponentId
enum | ECalComponentVType
enum | ECalComponentField
enum | ECalComponentClassification
| ECalComponentDateTime
enum | ECalComponentPeriodType
| ECalComponentPeriod
enum | ECalComponentRangeType
| ECalComponentRange
| ECalComponentText
enum | ECalComponentTransparency
| ECalComponentAttendee
| ECalComponentOrganizer
| ECalComponentAlarmInstance
| ECalComponentAlarms
enum | ECalComponentAlarmAction
enum | ECalComponentAlarmTriggerType
| ECalComponentAlarmTrigger
| ECalComponentAlarmRepeat

## Object Hierarchy

        GBoxed
        ├── ECalComponentAlarm
        ╰── ECalComponentId
        GObject
        ╰── ECalComponent

## Includes

    #include <libebook-contacts/libebook-contacts.h>

## Description

This is the main user facing interface used for representing an event or other component in a given calendar.

## Functions

### e_cal_component_gen_uid ()

    gchar *
    e_cal_component_gen_uid (void);

Generates a unique identifier suitable for calendar components.

#### Returns

A unique identifier string. Every time this function is called a different string is returned.

### e_cal_component_new ()

    ECalComponent *
    e_cal_component_new (void);

Creates a new empty calendar component object. Once created, you should set it from an existing icalcomponent structure by using `e_cal_component_set_icalcomponent()` or with a new empty component type by using `e_cal_component_set_new_vtype()`.

#### Returns

A newly-created calendar component object.

### e_cal_component_new_from_string ()

    ECalComponent *
    e_cal_component_new_from_string (const gchar *calobj);

Creates a new calendar component object from the given iCalendar string.

#### Parameters

calobj | A string representation of an iCalendar component. |

#### Returns

A calendar component representing the given iCalendar string on success, NULL if there was an error.

### e_cal_component_new_from_icalcomponent ()

    ECalComponent *
    e_cal_component_new_from_icalcomponent
                                   (icalcomponent *icalcomp);

Creates a new ECalComponent which will has set `icalcomp` as an inner icalcomponent. The newly created ECalComponent takes ownership of the `icalcomp` , and if the call to `e_cal_component_set_icalcomponent()` fails, then `icalcomp` is freed.

#### Parameters

icalcomp | An icalcomponent to use |

#### Returns

An ECalComponet with `icalcomp` assigned on success, NULL if the `icalcomp` cannot be assigned to ECalComponent.

Since: 3.4

### e_cal_component_clone ()

    ECalComponent *
    e_cal_component_clone (ECalComponent *comp);

Creates a new calendar component object by copying the information from another one.

#### Parameters

comp | A calendar component object. |

#### Returns

A newly-created calendar component with the same values as the original one.

[transfer full]

### e_cal_component_set_new_vtype ()

    void
    e_cal_component_set_new_vtype (ECalComponent *comp,
                                   ECalComponentVType type);

Clears any existing component data from a calendar component object and creates a new icalcomponent of the specified type for it. The only property that will be set in the new component will be its unique identifier.

#### Parameters

comp | A calendar component object. |
type | Type of calendar component to create. |

### e_cal_component_get_icalcomponent ()

    icalcomponent *
    e_cal_component_get_icalcomponent (ECalComponent *comp);

Queries the icalcomponent structure that a calendar component object is wrapping.

#### Parameters

comp | A calendar component object. |

#### Returns

An icalcomponent structure, or NULL if the `comp` has no icalcomponent set to it.

### e_cal_component_set_icalcomponent ()

    gboolean
    e_cal_component_set_icalcomponent (ECalComponent *comp,
                                       icalcomponent *icalcomp);

Sets the contents of a calendar component object from an icalcomponent structure. If the `comp` already had an icalcomponent set into it, it will will be freed automatically if the icalcomponent does not have a parent component itself.

Supported component types are VEVENT, VTODO, VJOURNAL, VFREEBUSY, and VTIMEZONE.

#### Parameters

comp | A calendar component object. |
icalcomp | An icalcomponent. | [type long]

#### Returns

TRUE on success, FALSE if `icalcomp` is an unsupported component type.

### e_cal_component_rescan ()

    void
    e_cal_component_rescan (ECalComponent *comp);

Rescans the icalcomponent being wrapped by the given calendar component. This would replace any value that was changed in the wrapped icalcomponent.

#### Parameters

comp | A calendar component object. |

### e_cal_component_strip_errors ()

    void
    e_cal_component_strip_errors (ECalComponent *comp);

Strips all error messages from the calendar component. Those error messages are added to the iCalendar string representation whenever an invalid is used for one of its fields.

#### Parameters

comp | A calendar component object. |

### e_cal_component_get_vtype ()

    ECalComponentVType
    e_cal_component_get_vtype (ECalComponent *comp);

Queries the type of a calendar component object.

#### Parameters

comp | A calendar component object. |

#### Returns

The type of the component, as defined by RFC 2445.

### e_cal_component_get_as_string ()

    gchar *
    e_cal_component_get_as_string (ECalComponent *comp);

Gets the iCalendar string representation of a calendar component. You should call `e_cal_component_commit_sequence()` before this function to ensure that the component's sequence number is consistent with the state of the object.

#### Parameters

comp | A calendar component. |

#### Returns

String representation of the calendar component according to RFC 2445.

### e_cal_component_commit_sequence ()

    void
    e_cal_component_commit_sequence (ECalComponent *comp);

Increments the sequence number property in a calendar component object if it needs it. This needs to be done when any of a number of properties listed in RFC 2445 change values, such as the start and end dates of a component.

This function must be called before calling `e_cal_component_get_as_string()` to ensure that the component is fully consistent.

#### Parameters

comp | A calendar component object. |

### e_cal_component_abort_sequence ()

    void
    e_cal_component_abort_sequence (ECalComponent *comp);

Aborts the sequence change needed in the given calendar component, which means it will not require a sequence commit (via `e_cal_component_commit_sequence()`) even if the changes done require a sequence increment.

#### Parameters

comp | A calendar component object. |

### e_cal_component_get_uid ()

    void
    e_cal_component_get_uid (ECalComponent *comp,
                             const gchar **uid);

Queries the unique identifier of a calendar component object.

#### Parameters

comp | A calendar component object. |
uid | Return value for the UID string. |

### e_cal_component_set_uid ()

    void
    e_cal_component_set_uid (ECalComponent *comp,
                             const gchar *uid);

Sets the unique identifier string of a calendar component object.

#### Parameters

comp | A calendar component object. |
uid | Unique identifier. |

### e_cal_component_get_id ()

    ECalComponentId *
    e_cal_component_get_id (ECalComponent *comp);

Get the ID of the component as a ECalComponentId. The return value should be freed with `e_cal_component_free_id()` when you have finished with it.

#### Parameters

comp | A calendar component object. |

#### Returns

the id of the component

### e_cal_component_free_id ()

    void
    e_cal_component_free_id (ECalComponentId *id);

Frees the `id` .

#### Parameters

id | an ECalComponentId |

### e_cal_component_id_new ()

    ECalComponentId *
    e_cal_component_id_new (const gchar *uid,
                            const gchar *rid);

Creates a new ECalComponentId from `uid` and `rid` , which should be freed with `e_cal_component_free_id()`.

#### Parameters

uid | a unique ID string |
rid | an optional recurrence ID string. | [allow-none]

#### Returns

an ECalComponentId

Since: 3.10

### e_cal_component_id_copy ()

    ECalComponentId *
    e_cal_component_id_copy (const ECalComponentId *id);

Returns a newly-allocated copy of `id` , which should be freed with `e_cal_component_free_id()`.

#### Parameters

id | an ECalComponentId |

#### Returns

a newly-allocated copy of `id`

Since: 3.10

### e_cal_component_id_hash ()

    guint
    e_cal_component_id_hash (const ECalComponentId *id);

Generates a hash value for `id` .

#### Parameters

id | an ECalComponentId |

#### Returns

a hash value for `id`

Since: 3.10

### e_cal_component_id_equal ()

    gboolean
    e_cal_component_id_equal (const ECalComponentId *id1,
                              const ECalComponentId *id2);

Compares two ECalComponentId structs for equality.

#### Parameters

id1 | the first ECalComponentId |
id2 | the second ECalComponentId |

#### Returns

`TRUE` if `id1` and `id2` are equal

Since: 3.10

### e_cal_component_get_categories ()

    void
    e_cal_component_get_categories (ECalComponent *comp,
                                    const gchar **categories);

Queries the categories of the given calendar component. The categories are returned in the `categories` argument, which, on success, will contain a comma-separated list of all categories set in the component.

#### Parameters

comp | A calendar component object. |
categories | Return holder for the categories. |

### e_cal_component_set_categories ()

    void
    e_cal_component_set_categories (ECalComponent *comp,
                                    const gchar *categories);

Sets the list of categories for a calendar component.

#### Parameters

comp | A calendar component object. |
categories | Comma-separated list of categories. |

### e_cal_component_get_categories_list ()

    void
    e_cal_component_get_categories_list (ECalComponent *comp,
                                         GSList **categ_list);

Queries the list of categories of a calendar component object. Each element in the returned categ_list is a string with the corresponding category.

#### Parameters

comp | A calendar component object. |
categ_list | Return value for the list of strings, where each string is a category. This should be freed using `e_cal_component_free_categories_list()`. | [out][transfer full][element-type utf8]

### e_cal_component_set_categories_list ()

    void
    e_cal_component_set_categories_list (ECalComponent *comp,
                                         GSList *categ_list);

Sets the list of categories of a calendar component object.

#### Parameters

comp | A calendar component object. |
categ_list | List of strings, one for each category. | [element-type utf8]

### e_cal_component_get_classification ()

    void
    e_cal_component_get_classification (ECalComponent *comp,
                                        ECalComponentClassification *classif);

Queries the classification of a calendar component object. If the classification property is not set on this component, this function returns E_CAL_COMPONENT_CLASS_NONE.

#### Parameters

comp | A calendar component object. |
classif | Return value for the classification. |

### e_cal_component_set_classification ()

    void
    e_cal_component_set_classification (ECalComponent *comp,
                                        ECalComponentClassification classif);

Sets the classification property of a calendar component object. To unset the property, specify E_CAL_COMPONENT_CLASS_NONE for `classif` .

#### Parameters

comp | A calendar component object. |
classif | Classification to use. |

### e_cal_component_get_comment_list ()

    void
    e_cal_component_get_comment_list (ECalComponent *comp,
                                      GSList **text_list);

Queries the comments of a calendar component object. The comment property can appear several times inside a calendar component, and so a list of ECalComponentText is returned.

#### Parameters

comp | A calendar component object. |
text_list | Return value for the comment properties and their parameters, as a list of ECalComponentText structures. This should be freed using the `e_cal_component_free_text_list()` function. | [out][transfer full][element-type ECalComponentText]

### e_cal_component_set_comment_list ()

    void
    e_cal_component_set_comment_list (ECalComponent *comp,
                                      GSList *text_list);

Sets the comments of a calendar component object. The comment property can appear several times inside a calendar component, and so a list of ECalComponentText structures is used.

#### Parameters

comp | A calendar component object. |
text_list | List of ECalComponentText structures. | [element-type ECalComponentText]

### e_cal_component_get_completed ()

    void
    e_cal_component_get_completed (ECalComponent *comp,
                                   struct icaltimetype **t);

Queries the date at which a calendar compoment object was completed.

#### Parameters

comp | A calendar component object. |
t | Return value for the completion date. This should be freed using the `e_cal_component_free_icaltimetype()` function. |

### e_cal_component_set_completed ()

    void
    e_cal_component_set_completed (ECalComponent *comp,
                                   struct icaltimetype *t);

Sets the date at which a calendar component object was completed.

#### Parameters

comp | A calendar component object. |
t | Value for the completion date. |

### e_cal_component_get_contact_list ()

    void
    e_cal_component_get_contact_list (ECalComponent *comp,
                                      GSList **text_list);

Queries the contact of a calendar component object. The contact property can appear several times inside a calendar component, and so a list of ECalComponentText is returned.

#### Parameters

comp | A calendar component object. |
text_list | Return value for the contact properties and their parameters, as a list of ECalComponentText structures. This should be freed using the `e_cal_component_free_text_list()` function. | [out][transfer full][element-type ECalComponentText]

### e_cal_component_set_contact_list ()

    void
    e_cal_component_set_contact_list (ECalComponent *comp,
                                      GSList *text_list);

Sets the contact of a calendar component object. The contact property can appear several times inside a calendar component, and so a list of ECalComponentText structures is used.

#### Parameters

comp | A calendar component object. |
text_list | List of ECalComponentText structures. | [element-type ECalComponentText]

### e_cal_component_get_created ()

    void
    e_cal_component_get_created (ECalComponent *comp,
                                 struct icaltimetype **t);

Queries the date in which a calendar component object was created in the calendar store.

#### Parameters

comp | A calendar component object. |
t | Return value for the creation date. This should be freed using the `e_cal_component_free_icaltimetype()` function. |

### e_cal_component_set_created ()

    void
    e_cal_component_set_created (ECalComponent *comp,
                                 struct icaltimetype *t);

Sets the date in which a calendar component object is created in the calendar store. This should only be used inside a calendar store application, i.e. not by calendar user agents.

#### Parameters

comp | A calendar component object. |
t | Value for the creation date. |

### e_cal_component_get_description_list ()

    void
    e_cal_component_get_description_list (ECalComponent *comp,
                                          GSList **text_list);

Queries the description of a calendar component object. Journal components may have more than one description, and as such this function returns a list of ECalComponentText structures. All other types of components can have at most one description.

#### Parameters

comp | A calendar component object. |
text_list | Return value for the description properties and their parameters, as a list of ECalComponentText structures. This should be freed using the `e_cal_component_free_text_list()` function. | [out][transfer full][element-type ECalComponentText]

### e_cal_component_set_description_list ()

    void
    e_cal_component_set_description_list (ECalComponent *comp,
                                          GSList *text_list);

Sets the description of a calendar component object. Journal components may have more than one description, and as such this function takes in a list of ECalComponentDescription structures. All other types of components can have at most one description.

#### Parameters

comp | A calendar component object. |
text_list | List of ECalComponentSummary structures. | [element-type ECalComponentSummary]

### e_cal_component_get_dtend ()

    void
    e_cal_component_get_dtend (ECalComponent *comp,
                               ECalComponentDateTime *dt);

Queries the date/time end of a calendar component object.

#### Parameters

comp | A calendar component object. |
dt | Return value for the date/time end. This should be freed with the `e_cal_component_free_datetime()` function. |

### e_cal_component_set_dtend ()

    void
    e_cal_component_set_dtend (ECalComponent *comp,
                               ECalComponentDateTime *dt);

Sets the date/time end property of a calendar component object.

#### Parameters

comp | A calendar component object. |
dt | End date/time. |

### e_cal_component_get_dtstamp ()

    void
    e_cal_component_get_dtstamp (ECalComponent *comp,
                                 struct icaltimetype *t);

Queries the date/timestamp property of a calendar component object, which is the last time at which the object was modified by a calendar user agent.

#### Parameters

comp | A calendar component object. |
t | A value for the date/timestamp. |

### e_cal_component_set_dtstamp ()

    void
    e_cal_component_set_dtstamp (ECalComponent *comp,
                                 struct icaltimetype *t);

Sets the date/timestamp of a calendar component object. This should be called whenever a calendar user agent makes a change to a component's properties.

#### Parameters

comp | A calendar component object. |
t | Date/timestamp value. |

### e_cal_component_get_dtstart ()

    void
    e_cal_component_get_dtstart (ECalComponent *comp,
                                 ECalComponentDateTime *dt);

Queries the date/time start of a calendar component object.

#### Parameters

comp | A calendar component object. |
dt | Return value for the date/time start. This should be freed with the `e_cal_component_free_datetime()` function. |

### e_cal_component_set_dtstart ()

    void
    e_cal_component_set_dtstart (ECalComponent *comp,
                                 ECalComponentDateTime *dt);

Sets the date/time start property of a calendar component object.

#### Parameters

comp | A calendar component object. |
dt | Start date/time. |

### e_cal_component_get_due ()

    void
    e_cal_component_get_due (ECalComponent *comp,
                             ECalComponentDateTime *dt);

Queries the due date/time of a calendar component object.

#### Parameters

comp | A calendar component object. |
dt | Return value for the due date/time. This should be freed with the `e_cal_component_free_datetime()` function. |

### e_cal_component_set_due ()

    void
    e_cal_component_set_due (ECalComponent *comp,
                             ECalComponentDateTime *dt);

Sets the due date/time property of a calendar component object.

#### Parameters

comp | A calendar component object. |
dt | End date/time. |

### e_cal_component_get_exdate_list ()

    void
    e_cal_component_get_exdate_list (ECalComponent *comp,
                                     GSList **exdate_list);

Queries the list of exception date properties in a calendar component object.

#### Parameters

comp | A calendar component object. |
exdate_list | Return value for the list of exception dates, as a list of ECalComponentDateTime structures. This should be freed using the `e_cal_component_free_exdate_list()` function. | [out][transfer full][element-type ECalComponentDateTime]

### e_cal_component_set_exdate_list ()

    void
    e_cal_component_set_exdate_list (ECalComponent *comp,
                                     GSList *exdate_list);

Sets the list of exception dates in a calendar component object.

#### Parameters

comp | A calendar component object. |
exdate_list | List of ECalComponentDateTime structures. | [element-type ECalComponentDateTime]

### e_cal_component_has_exdates ()

    gboolean
    e_cal_component_has_exdates (ECalComponent *comp);

Queries whether a calendar component object has any exception dates defined for it.

#### Parameters

comp | A calendar component object. |

#### Returns

TRUE if the component has exception dates, FALSE otherwise.

### e_cal_component_get_exrule_list ()

    void
    e_cal_component_get_exrule_list (ECalComponent *comp,
                                     GSList **recur_list);

Queries the list of exception rule properties of a calendar component object.

#### Parameters

comp | A calendar component object. |
recur_list | List of exception rules as struct icalrecurrencetype structures. This should be freed using the `e_cal_component_free_recur_list()` function. | [out][element-type icalrecurrencetype][transfer full]

### e_cal_component_get_exrule_property_list ()

    void
    e_cal_component_get_exrule_property_list
                                   (ECalComponent *comp,
                                    GSList **recur_list);

Queries the list of exception rule properties of a calendar component object.

#### Parameters

comp | A calendar component object. |
recur_list | . | [out][transfer none][element-type icalrecurrencetype]

#### Returns

a list of exception rule properties

### e_cal_component_set_exrule_list ()

    void
    e_cal_component_set_exrule_list (ECalComponent *comp,
                                     GSList *recur_list);

Sets the list of exception rules in a calendar component object.

#### Parameters

comp | A calendar component object. |
recur_list | List of struct icalrecurrencetype structures. | [element-type icalrecurrencetype]

### e_cal_component_has_exrules ()

    gboolean
    e_cal_component_has_exrules (ECalComponent *comp);

Queries whether a calendar component object has any exception rules defined for it.

#### Parameters

comp | A calendar component object. |

#### Returns

TRUE if the component has exception rules, FALSE otherwise.

### e_cal_component_has_exceptions ()

    gboolean
    e_cal_component_has_exceptions (ECalComponent *comp);

Queries whether a calendar component object has any exception dates or exception rules.

#### Parameters

comp | A calendar component object |

#### Returns

TRUE if the component has exceptions, FALSE otherwise.

### e_cal_component_get_geo ()

    void
    e_cal_component_get_geo (ECalComponent *comp,
                             struct icalgeotype **geo);

Gets the geographic position property of a calendar component object.

#### Parameters

comp | A calendar component object. |
geo | Return value for the geographic position property. This should be freed using the `e_cal_component_free_geo()` function. |

### e_cal_component_set_geo ()

    void
    e_cal_component_set_geo (ECalComponent *comp,
                             struct icalgeotype *geo);

Sets the geographic position property on a calendar component object.

#### Parameters

comp | A calendar component object. |
geo | Value for the geographic position property. |

### e_cal_component_get_last_modified ()

    void
    e_cal_component_get_last_modified (ECalComponent *comp,
                                       struct icaltimetype **t);

Queries the time at which a calendar component object was last modified in the calendar store.

#### Parameters

comp | A calendar component object. |
t | Return value for the last modified time value. |

### e_cal_component_set_last_modified ()

    void
    e_cal_component_set_last_modified (ECalComponent *comp,
                                       struct icaltimetype *t);

Sets the time at which a calendar component object was last stored in the calendar store. This should not be called by plain calendar user agents.

#### Parameters

comp | A calendar component object. |
t | Value for the last time modified. |

### e_cal_component_get_organizer ()

    void
    e_cal_component_get_organizer (ECalComponent *comp,
                                   ECalComponentOrganizer *organizer);

Queries the organizer property of a calendar component object

#### Parameters

comp | A calendar component object |
organizer | A value for the organizer |

### e_cal_component_set_organizer ()

    void
    e_cal_component_set_organizer (ECalComponent *comp,
                                   ECalComponentOrganizer *organizer);

Sets the organizer of a calendar component object

#### Parameters

comp | A calendar component object. |
organizer | Value for the organizer property |

### e_cal_component_has_organizer ()

    gboolean
    e_cal_component_has_organizer (ECalComponent *comp);

Check whether a calendar component object has an organizer or not.

#### Parameters

comp | A calendar component object. |

#### Returns

TRUE if there is an organizer, FALSE otherwise.

### e_cal_component_get_percent_as_int ()

    gint
    e_cal_component_get_percent_as_int (ECalComponent *comp);

Get percent complete as an integer value

#### Parameters

comp | an ECalComponent |

#### Returns

percent complete as an integer value, -1 when the `comp` doesn't have the property

Since: 2.28

### e_cal_component_set_percent_as_int ()

    void
    e_cal_component_set_percent_as_int (ECalComponent *comp,
                                        gint percent);

Sets percent complete as integer. The `percent` can be between 0 and 100, inclusive. A special value -1 can be used to remove the percent complete property.

#### Parameters

comp | an ECalComponent |
percent | a percent to set, or -1 to remove the property |

Since: 2.28

### e_cal_component_get_percent ()

    void
    e_cal_component_get_percent (ECalComponent *comp,
                                 gint **percent);

Queries the percent-complete property of a calendar component object.

#### Parameters

comp | A calendar component object. |
percent | Return value for the percent-complete property. This should be freed using the `e_cal_component_free_percent()` function. |

### e_cal_component_set_percent ()

    void
    e_cal_component_set_percent (ECalComponent *comp,
                                 gint *percent);

Sets the percent-complete property of a calendar component object.

#### Parameters

comp | A calendar component object. |
percent | Value for the percent-complete property. |

### e_cal_component_get_priority ()

    void
    e_cal_component_get_priority (ECalComponent *comp,
                                  gint **priority);

Queries the priority property of a calendar component object.

#### Parameters

comp | A calendar component object. |
priority | Return value for the priority property. This should be freed using the `e_cal_component_free_priority()` function. |

### e_cal_component_set_priority ()

    void
    e_cal_component_set_priority (ECalComponent *comp,
                                  gint *priority);

Sets the priority property of a calendar component object.

#### Parameters

comp | A calendar component object. |
priority | Value for the priority property. |

### e_cal_component_get_recurid ()

    void
    e_cal_component_get_recurid (ECalComponent *comp,
                                 ECalComponentRange *recur_id);

Queries the recurrence id property of a calendar component object.

#### Parameters

comp | A calendar component object. |
recur_id | Return value for the recurrence id property |

### e_cal_component_get_recurid_as_string ()

    gchar *
    e_cal_component_get_recurid_as_string (ECalComponent *comp);

Gets the recurrence ID property as a string.

#### Parameters

comp | A calendar component object. |

#### Returns

the recurrence ID as a string.

### e_cal_component_set_recurid ()

    void
    e_cal_component_set_recurid (ECalComponent *comp,
                                 ECalComponentRange *recur_id);

Sets the recurrence id property of a calendar component object.

#### Parameters

comp | A calendar component object. |
recur_id | Value for the recurrence id property. |

### e_cal_component_get_rdate_list ()

    void
    e_cal_component_get_rdate_list (ECalComponent *comp,
                                    GSList **period_list);

Queries the list of recurrence date properties in a calendar component object.

#### Parameters

comp | A calendar component object. |
period_list | Return value for the list of recurrence dates, as a list of ECalComponentPeriod structures. This should be freed using `e_cal_component_free_period_list()`. | [out][transfer full][element-type ECalComponentPeriod]

### e_cal_component_set_rdate_list ()

    void
    e_cal_component_set_rdate_list (ECalComponent *comp,
                                    GSList *period_list);

Sets the list of recurrence dates in a calendar component object.

#### Parameters

comp | A calendar component object. |
period_list | List of ECalComponentPeriod structures. | [element-type ECalComponentPeriod]

### e_cal_component_has_rdates ()

    gboolean
    e_cal_component_has_rdates (ECalComponent *comp);

Queries whether a calendar component object has any recurrence dates defined for it.

#### Parameters

comp | A calendar component object. |

#### Returns

TRUE if the component has recurrence dates, FALSE otherwise.

### e_cal_component_get_rrule_list ()

    void
    e_cal_component_get_rrule_list (ECalComponent *comp,
                                    GSList **recur_list);

Queries the list of recurrence rule properties of a calendar component object.

#### Parameters

comp | A calendar component object. |
recur_list | List of recurrence rules as struct icalrecurrencetype structures. This should be freed using `e_cal_component_free_recur_list()`. | [out][transfer full][element-type icalrecurrencetype]

### e_cal_component_get_rrule_property_list ()

    void
    e_cal_component_get_rrule_property_list
                                   (ECalComponent *comp,
                                    GSList **recur_list);

Queries a list of recurrence rule properties of a calendar component object.

#### Parameters

comp | A calendar component object. |
recur_list | Returns a list of recurrence rule properties. | [out][transfer none][element-type icalrecurrencetype]

### e_cal_component_set_rrule_list ()

    void
    e_cal_component_set_rrule_list (ECalComponent *comp,
                                    GSList *recur_list);

Sets the list of recurrence rules in a calendar component object.

#### Parameters

comp | A calendar component object. |
recur_list | List of struct icalrecurrencetype structures. | [element-type icalrecurrencetype]

### e_cal_component_has_rrules ()

    gboolean
    e_cal_component_has_rrules (ECalComponent *comp);

Queries whether a calendar component object has any recurrence rules defined for it.

#### Parameters

comp | A calendar component object. |

#### Returns

TRUE if the component has recurrence rules, FALSE otherwise.

### e_cal_component_has_recurrences ()

    gboolean
    e_cal_component_has_recurrences (ECalComponent *comp);

Queries whether a calendar component object has any recurrence dates or recurrence rules.

#### Parameters

comp | A calendar component object |

#### Returns

TRUE if the component has recurrences, FALSE otherwise.

### e_cal_component_has_simple_recurrence ()

    gboolean
    e_cal_component_has_simple_recurrence (ECalComponent *comp);

Checks whether the given calendar component object has simple recurrence rules or more complicated ones.

#### Parameters

comp | A calendar component object. |

#### Returns

TRUE if it has a simple recurrence rule, FALSE otherwise.

### e_cal_component_is_instance ()

    gboolean
    e_cal_component_is_instance (ECalComponent *comp);

Checks whether a calendar component object is an instance of a recurring event.

#### Parameters

comp | A calendar component object. |

#### Returns

TRUE if it is an instance, FALSE if not.

### e_cal_component_get_sequence ()

    void
    e_cal_component_get_sequence (ECalComponent *comp,
                                  gint **sequence);

Queries the sequence number of a calendar component object.

#### Parameters

comp | A calendar component object. |
sequence | Return value for the sequence number. This should be freed using `e_cal_component_free_sequence()`. |

### e_cal_component_set_sequence ()

    void
    e_cal_component_set_sequence (ECalComponent *comp,
                                  gint *sequence);

Sets the sequence number of a calendar component object. Normally this function should not be called, since the sequence number is incremented automatically at the proper times.

#### Parameters

comp | A calendar component object. |
sequence | Sequence number value. |

### e_cal_component_get_status ()

    void
    e_cal_component_get_status (ECalComponent *comp,
                                icalproperty_status *status);

Queries the status property of a calendar component object.

#### Parameters

comp | A calendar component object. |
status | Return value for the status value. It is set to ICAL_STATUS_NONE if the component has no status property. | [out]

### e_cal_component_set_status ()

    void
    e_cal_component_set_status (ECalComponent *comp,
                                icalproperty_status status);

Sets the status property of a calendar component object.

#### Parameters

comp | A calendar component object. |
status | Status value. You should use ICAL_STATUS_NONE if you want to unset this property. |

### e_cal_component_get_summary ()

    void
    e_cal_component_get_summary (ECalComponent *comp,
                                 ECalComponentText *summary);

Queries the summary of a calendar component object.

#### Parameters

comp | A calendar component object. |
summary | Return value for the summary property and its parameters. |

### e_cal_component_set_summary ()

    void
    e_cal_component_set_summary (ECalComponent *comp,
                                 ECalComponentText *summary);

Sets the summary of a calendar component object.

#### Parameters

comp | A calendar component object. |
summary | Summary property and its parameters. |

### e_cal_component_get_transparency ()

    void
    e_cal_component_get_transparency (ECalComponent *comp,
                                      ECalComponentTransparency *transp);

Queries the time transparency of a calendar component object.

#### Parameters

comp | A calendar component object. |
transp | Return value for the time transparency. |

### e_cal_component_set_transparency ()

    void
    e_cal_component_set_transparency (ECalComponent *comp,
                                      ECalComponentTransparency transp);

Sets the time transparency of a calendar component object.

#### Parameters

comp | A calendar component object. |
transp | Time transparency value. |

### e_cal_component_get_url ()

    void
    e_cal_component_get_url (ECalComponent *comp,
                             const gchar **url);

Queries the uniform resource locator property of a calendar component object.

#### Parameters

comp | A calendar component object. |
url | Return value for the URL. |

### e_cal_component_set_url ()

    void
    e_cal_component_set_url (ECalComponent *comp,
                             const gchar *url);

Sets the uniform resource locator property of a calendar component object.

#### Parameters

comp | A calendar component object. |
url | URL value. |

### e_cal_component_get_attendee_list ()

    void
    e_cal_component_get_attendee_list (ECalComponent *comp,
                                       GSList **attendee_list);

Queries the attendee properties of the calendar component object

#### Parameters

comp | A calendar component object. |
attendee_list | Return value for the attendee property. This should be freed using `e_cal_component_free_attendee_list()`. | [out][transfer full][element-type ECalComponentAttendee]

### e_cal_component_set_attendee_list ()

    void
    e_cal_component_set_attendee_list (ECalComponent *comp,
                                       GSList *attendee_list);

Sets the attendees of a calendar component object

#### Parameters

comp | A calendar component object. |
attendee_list | Values for attendee properties. | [element-type ECalComponentAttendee]

### e_cal_component_has_attendees ()

    gboolean
    e_cal_component_has_attendees (ECalComponent *comp);

Queries a calendar component object for the existence of attendees.

#### Parameters

comp | A calendar component object. |

#### Returns

TRUE if there are attendees, FALSE if not.

### e_cal_component_get_location ()

    void
    e_cal_component_get_location (ECalComponent *comp,
                                  const gchar **location);

Queries the location property of a calendar component object.

#### Parameters

comp | A calendar component object |
location | Return value for the location. |

### e_cal_component_set_location ()

    void
    e_cal_component_set_location (ECalComponent *comp,
                                  const gchar *location);

Sets the location property of a calendar component object.

#### Parameters

comp | A calendar component object. |
location | Location value. |

### e_cal_component_get_attachment_list ()

    void
    e_cal_component_get_attachment_list (ECalComponent *comp,
                                         GSList **attachment_list);

Queries the attachment properties of the calendar component object. When done, the `attachment_list` should be freed by calling `g_slist_free()`.

#### Parameters

comp | A calendar component object |
attachment_list | Return list of URIs to attachments. | [out][transfer full][element-type utf8]

### e_cal_component_set_attachment_list ()

    void
    e_cal_component_set_attachment_list (ECalComponent *comp,
                                         GSList *attachment_list);

This currently handles only attachments that are URIs in the file system - not inline binaries.

Sets the attachments of a calendar component object

#### Parameters

comp | A calendar component object |
attachment_list | list of URIs to attachment pointers. | [element-type utf8]

### e_cal_component_has_attachments ()

    gboolean
    e_cal_component_has_attachments (ECalComponent *comp);

Queries the component to see if it has attachments.

#### Parameters

comp | A calendar component object. |

#### Returns

TRUE if there are attachments, FALSE otherwise.

### e_cal_component_get_num_attachments ()

    gint
    e_cal_component_get_num_attachments (ECalComponent *comp);

Get the number of attachments to this calendar component object.

#### Parameters

comp | A calendar component object. |

#### Returns

the number of attachments.

### e_cal_component_event_dates_match ()

    gboolean
    e_cal_component_event_dates_match (ECalComponent *comp1,
                                       ECalComponent *comp2);

Checks if the DTSTART and DTEND properties of the 2 components match. Note that the events may have different recurrence properties which are not taken into account here.

#### Parameters

comp1 | A calendar component object. |
comp2 | A calendar component object. |

#### Returns

TRUE if the DTSTART and DTEND properties of the 2 components match.

### e_cal_component_free_categories_list ()

    void
    e_cal_component_free_categories_list (GSList *categ_list);

Frees a list of category strings.

#### Parameters

categ_list | List of category strings. | [element-type utf8]

### e_cal_component_free_datetime ()

    void
    e_cal_component_free_datetime (ECalComponentDateTime *dt);

Frees a date/time structure.

#### Parameters

dt | A date/time structure. |

### e_cal_component_free_range ()

    void
    e_cal_component_free_range (ECalComponentRange *range);

Frees an ECalComponentRange structure.

#### Parameters

range | A ECalComponentRange. |

### e_cal_component_free_exdate_list ()

    void
    e_cal_component_free_exdate_list (GSList *exdate_list);

Frees a list of ECalComponentDateTime structures as returned by the `e_cal_component_get_exdate_list()` function.

#### Parameters

exdate_list | List of ECalComponentDateTime structures. | [element-type ECalComponentDateTime]

### e_cal_component_free_geo ()

    void
    e_cal_component_free_geo (struct icalgeotype *geo);

Frees a struct icalgeotype structure as returned by the calendar component functions.

#### Parameters

geo | An icalgeotype structure. |

### e_cal_component_free_icaltimetype ()

    void
    e_cal_component_free_icaltimetype (struct icaltimetype *t);

Frees a struct icaltimetype value as returned by the calendar component functions.

#### Parameters

t | An icaltimetype structure. |

### e_cal_component_free_percent ()

    void
    e_cal_component_free_percent (gint *percent);

Frees a percent value as returned by the `e_cal_component_get_percent()` function.

#### Parameters

percent | Percent value. |

### e_cal_component_free_priority ()

    void
    e_cal_component_free_priority (gint *priority);

Frees a priority value as returned by the `e_cal_component_get_priority()` function.

#### Parameters

priority | Priority value. |

### e_cal_component_free_period_list ()

    void
    e_cal_component_free_period_list (GSList *period_list);

Frees a list of ECalComponentPeriod structures.

#### Parameters

period_list | List of ECalComponentPeriod structures. | [element-type ECalComponentPeriod]

### e_cal_component_free_recur_list ()

    void
    e_cal_component_free_recur_list (GSList *recur_list);

Frees a list of struct icalrecurrencetype structures.

#### Parameters

recur_list | List of struct icalrecurrencetype structures. | [element-type icalrecurrencetype]

### e_cal_component_free_sequence ()

    void
    e_cal_component_free_sequence (gint *sequence);

Frees a sequence number value.

#### Parameters

sequence | Sequence number value. |

### e_cal_component_free_text_list ()

    void
    e_cal_component_free_text_list (GSList *text_list);

Frees a list of ECalComponentText structures. This function should only be used to free lists of text values as returned by the other getter functions of ECalComponent.

#### Parameters

text_list | List of ECalComponentText structures. | [element-type ECalComponentText]

### e_cal_component_free_attendee_list ()

    void
    e_cal_component_free_attendee_list (GSList *attendee_list);

Frees a list of ECalComponentAttendee structures.

#### Parameters

attendee_list | List of attendees. | [element-type ECalComponentAttendee]

### e_cal_component_has_alarms ()

    gboolean
    e_cal_component_has_alarms (ECalComponent *comp);

Checks whether the component has any alarms.

#### Parameters

comp | A calendar component object. |

#### Returns

TRUE if the component has any alarms.

### e_cal_component_add_alarm ()

    void
    e_cal_component_add_alarm (ECalComponent *comp,
                               ECalComponentAlarm *alarm);

Adds an alarm subcomponent to a calendar component. You should have created the `alarm` by using `e_cal_component_alarm_new()`; it is invalid to use a ECalComponentAlarm structure that came from `e_cal_component_get_alarm()`. After adding the alarm, the `alarm` structure is no longer valid because the internal structures may change and you should get rid of it by using `e_cal_component_alarm_free()`.

#### Parameters

comp | A calendar component. |
alarm | An alarm. |

### e_cal_component_remove_alarm ()

    void
    e_cal_component_remove_alarm (ECalComponent *comp,
                                  const gchar *auid);

Removes an alarm subcomponent from a calendar component. If the alarm that corresponds to the specified `auid` had been fetched with `e_cal_component_get_alarm()`, then those alarm structures will be invalid; you should get rid of them with `e_cal_component_alarm_free()` before using this function.

#### Parameters

comp | A calendar component. |
auid | UID of the alarm to remove. |

### e_cal_component_remove_all_alarms ()

    void
    e_cal_component_remove_all_alarms (ECalComponent *comp);

Remove all alarms from the calendar component

#### Parameters

comp | A calendar component |

### e_cal_component_get_alarm_uids ()

    GList *
    e_cal_component_get_alarm_uids (ECalComponent *comp);

Builds a list of the unique identifiers of the alarm subcomponents inside a calendar component.

#### Parameters

comp | A calendar component. |

#### Returns

List of unique identifiers for alarms. This should be freed using `cal_obj_uid_list_free()`.

[element-type utf8][transfer full]

### e_cal_component_get_alarm ()

    ECalComponentAlarm *
    e_cal_component_get_alarm (ECalComponent *comp,
                               const gchar *auid);

Queries a particular alarm subcomponent of a calendar component.

#### Parameters

comp | A calendar component. |
auid | Unique identifier for the sought alarm subcomponent. |

#### Returns

The alarm subcomponent that corresponds to the specified `auid` , or `NULL` if no alarm exists with that UID. This should be freed using `e_cal_component_alarm_free()`.

### e_cal_component_alarms_free ()

    void
    e_cal_component_alarms_free (ECalComponentAlarms *alarms);

Frees a ECalComponentAlarms structure.

#### Parameters

alarms | Component alarms structure. |

### e_cal_component_alarm_new ()

    ECalComponentAlarm *
    e_cal_component_alarm_new (void);

Create a new alarm object.

#### Returns

a new alarm component

### e_cal_component_alarm_clone ()

    ECalComponentAlarm *
    e_cal_component_alarm_clone (ECalComponentAlarm *alarm);

Creates a new alarm subcomponent by copying the information from another one.

#### Parameters

alarm | An alarm subcomponent. |

#### Returns

A newly-created alarm subcomponent with the same values as the original one. Should be freed with `e_cal_component_alarm_free()`.

### e_cal_component_alarm_free ()

    void
    e_cal_component_alarm_free (ECalComponentAlarm *alarm);

Frees an alarm structure.

#### Parameters

alarm | A calendar alarm. |

### e_cal_component_alarm_get_uid ()

    const gchar *
    e_cal_component_alarm_get_uid (ECalComponentAlarm *alarm);

Queries the unique identifier of an alarm subcomponent.

#### Parameters

alarm | An alarm subcomponent. |

#### Returns

UID of the alarm.

### e_cal_component_alarm_get_action ()

    void
    e_cal_component_alarm_get_action (ECalComponentAlarm *alarm,
                                      ECalComponentAlarmAction *action);

Queries the action type of an alarm.

#### Parameters

alarm | An alarm. |
action | Return value for the alarm's action type. |

### e_cal_component_alarm_set_action ()

    void
    e_cal_component_alarm_set_action (ECalComponentAlarm *alarm,
                                      ECalComponentAlarmAction action);

Sets the action type for an alarm.

#### Parameters

alarm | An alarm. |
action | Action type. |

### e_cal_component_alarm_get_attach ()

    void
    e_cal_component_alarm_get_attach (ECalComponentAlarm *alarm,
                                      icalattach **attach);

Queries the attachment property of an alarm.

#### Parameters

alarm | An alarm. |
attach | Return value for the attachment; should be freed using `icalattach_unref()`. |

### e_cal_component_alarm_set_attach ()

    void
    e_cal_component_alarm_set_attach (ECalComponentAlarm *alarm,
                                      icalattach *attach);

Sets the attachment property of an alarm.

#### Parameters

alarm | An alarm. |
attach | Attachment property or NULL to remove an existing property. |

### e_cal_component_alarm_get_description ()

    void
    e_cal_component_alarm_get_description (ECalComponentAlarm *alarm,
                                           ECalComponentText *description);

Queries the description property of an alarm.

#### Parameters

alarm | An alarm. |
description | Return value for the description property and its parameters. |

### e_cal_component_alarm_set_description ()

    void
    e_cal_component_alarm_set_description (ECalComponentAlarm *alarm,
                                           ECalComponentText *description);

Sets the description property of an alarm.

#### Parameters

alarm | An alarm. |
description | Description property and its parameters, or NULL for no description. |

### e_cal_component_alarm_get_repeat ()

    void
    e_cal_component_alarm_get_repeat (ECalComponentAlarm *alarm,
                                      ECalComponentAlarmRepeat *repeat);

Queries the repeat/duration properties of an alarm.

#### Parameters

alarm | An alarm. |
repeat | Return value for the repeat/duration properties. |

### e_cal_component_alarm_set_repeat ()

    void
    e_cal_component_alarm_set_repeat (ECalComponentAlarm *alarm,
                                      ECalComponentAlarmRepeat repeat);

Sets the repeat/duration values for an alarm.

#### Parameters

alarm | An alarm. |
repeat | Repeat/duration values. To remove any repetitions from the alarm, set the `repeat.repetitions` to 0. |

### e_cal_component_alarm_get_trigger ()

    void
    e_cal_component_alarm_get_trigger (ECalComponentAlarm *alarm,
                                       ECalComponentAlarmTrigger *trigger);

Queries the trigger time for an alarm.

#### Parameters

alarm | An alarm. |
trigger | Return value for the trigger time. |

### e_cal_component_alarm_set_trigger ()

    void
    e_cal_component_alarm_set_trigger (ECalComponentAlarm *alarm,
                                       ECalComponentAlarmTrigger trigger);

Sets the trigger time of an alarm.

#### Parameters

alarm | An alarm. |
trigger | Trigger time structure. |

### e_cal_component_alarm_get_attendee_list ()

    void
    e_cal_component_alarm_get_attendee_list
                                   (ECalComponentAlarm *alarm,
                                    GSList **attendee_list);

Gets the list of attendees associated with an alarm.

#### Parameters

alarm | An alarm. |
attendee_list | Return value for the list of attendees. | [out][transfer full][element-type ECalComponentAttendee]

### e_cal_component_alarm_set_attendee_list ()

    void
    e_cal_component_alarm_set_attendee_list
                                   (ECalComponentAlarm *alarm,
                                    GSList *attendee_list);

Sets the list of attendees for an alarm.

#### Parameters

alarm | An alarm. |
attendee_list | List of attendees. | [element-type ECalComponentAttendee]

### e_cal_component_alarm_has_attendees ()

    gboolean
    e_cal_component_alarm_has_attendees (ECalComponentAlarm *alarm);

Queries an alarm to see if it has attendees associated with it.

#### Parameters

alarm | An alarm. |

#### Returns

TRUE if there are attendees in the alarm, FALSE if not.

### e_cal_component_alarm_get_icalcomponent ()

    icalcomponent *
    e_cal_component_alarm_get_icalcomponent
                                   (ECalComponentAlarm *alarm);

Get the icalcomponent associated with the given ECalComponentAlarm.

#### Parameters

alarm | An alarm. |

#### Returns

the icalcomponent.

## Types and Values

### ECalComponentId

    typedef struct {
    	gchar *uid;
    	gchar *rid;
    } ECalComponentId;

#### Members

gchar *`uid`; | UID of the component |
gchar *`rid`; | recurrence ID of the component; can be `NULL` |

### enum ECalComponentVType

Types of calendar components to be stored by a ECalComponent, as per RFC 2445. We don't put the alarm component type here since we store alarms as separate structures inside the other "real" components.

#### Members

E_CAL_COMPONENT_NO_TYPE | Unknown or unsupported component type |
E_CAL_COMPONENT_EVENT | vEvent type |
E_CAL_COMPONENT_TODO | vTodo type |
E_CAL_COMPONENT_JOURNAL | vJournal type |
E_CAL_COMPONENT_FREEBUSY | vFreeBusy type |
E_CAL_COMPONENT_TIMEZONE | vTimezone type |

### enum ECalComponentField

Field identifiers for a calendar component.

#### Members

E_CAL_COMPONENT_FIELD_CATEGORIES | Concatenation of categories |
E_CAL_COMPONENT_FIELD_CLASSIFICATION | Classification |
E_CAL_COMPONENT_FIELD_COMPLETED | Completed |
E_CAL_COMPONENT_FIELD_DTEND | Dtend |
E_CAL_COMPONENT_FIELD_DTSTART | Dtstart |
E_CAL_COMPONENT_FIELD_DUE | Due |
E_CAL_COMPONENT_FIELD_GEO | Geo |
E_CAL_COMPONENT_FIELD_PERCENT | Percent |
E_CAL_COMPONENT_FIELD_PRIORITY | Priority |
E_CAL_COMPONENT_FIELD_SUMMARY | Summary |
E_CAL_COMPONENT_FIELD_TRANSPARENCY | Transparency |
E_CAL_COMPONENT_FIELD_URL | URL |
E_CAL_COMPONENT_FIELD_HAS_ALARMS | not a real field |
E_CAL_COMPONENT_FIELD_ICON | not a real field |
E_CAL_COMPONENT_FIELD_COMPLETE | not a real field |
E_CAL_COMPONENT_FIELD_RECURRING | not a real field |
E_CAL_COMPONENT_FIELD_OVERDUE | not a real field |
E_CAL_COMPONENT_FIELD_COLOR | not a real field |
E_CAL_COMPONENT_FIELD_STATUS | Status |
E_CAL_COMPONENT_FIELD_COMPONENT | not a real field |
E_CAL_COMPONENT_FIELD_LOCATION | Location |
E_CAL_COMPONENT_FIELD_NUM_FIELDS | the last member |

### enum ECalComponentClassification

CLASSIFICATION property

#### Members

E_CAL_COMPONENT_CLASS_NONE | None |
E_CAL_COMPONENT_CLASS_PUBLIC | Public |
E_CAL_COMPONENT_CLASS_PRIVATE | Private |
E_CAL_COMPONENT_CLASS_CONFIDENTIAL | Confidential |
E_CAL_COMPONENT_CLASS_UNKNOWN | Unknown |

### ECalComponentDateTime

    typedef struct {
    	/* Actual date/time value */
    	struct icaltimetype *value;

    	/* Timezone ID */
    	const gchar *tzid;
    } ECalComponentDateTime;

Time with timezone property

#### Members

struct icaltimetype *`value`; | an icaltimetype value |
const gchar *`tzid`; | a timezone ID for the `value` |

### enum ECalComponentPeriodType

Way in which a period of time is specified

#### Members

E_CAL_COMPONENT_PERIOD_DATETIME | Date and time |
E_CAL_COMPONENT_PERIOD_DURATION | Duration |

### ECalComponentPeriod

    typedef struct {
    	ECalComponentPeriodType type;

    	struct icaltimetype start;

    	union {
    		struct icaltimetype end;
    		struct icaldurationtype duration;
    	} u;
    } ECalComponentPeriod;

Period of time, can have explicit start/end times or start/duration instead

#### Members

ECalComponentPeriodType `type`; | An ECalComponentPeriodType |
struct icaltimetype `start`; | When the period starts |

### enum ECalComponentRangeType

The type of range

#### Members

E_CAL_COMPONENT_RANGE_SINGLE | Single |
E_CAL_COMPONENT_RANGE_THISPRIOR | This and prior |
E_CAL_COMPONENT_RANGE_THISFUTURE | This and future |

### ECalComponentRange

    typedef struct {
    	ECalComponentRangeType type;

    	ECalComponentDateTime datetime;
    } ECalComponentRange;

Describes a range

#### Members

ECalComponentRangeType `type`; | an ECalComponentRangeType |
ECalComponentDateTime `datetime`; | an ECalComponentDateTime of the range |

### ECalComponentText

    typedef struct {
    	/* Description string */
    	const gchar *value;

    	/* Alternate representation URI */
    	const gchar *altrep;
    } ECalComponentText;

For the text properties

#### Members

const gchar *`value`; | Description string |
const gchar *`altrep`; | Alternate representation URI |

### enum ECalComponentTransparency

Time transparency

#### Members

E_CAL_COMPONENT_TRANSP_NONE | None |
E_CAL_COMPONENT_TRANSP_TRANSPARENT | Transparent |
E_CAL_COMPONENT_TRANSP_OPAQUE | Opaque |
E_CAL_COMPONENT_TRANSP_UNKNOWN | Unknown |

### ECalComponentAttendee

    typedef struct {
    	const gchar *value;

    	const gchar *member;
    	icalparameter_cutype cutype;
    	icalparameter_role role;
    	icalparameter_partstat status;
    	gboolean rsvp;

    	const gchar *delto;
    	const gchar *delfrom;
    	const gchar *sentby;
    	const gchar *cn;
    	const gchar *language;
    } ECalComponentAttendee;

Describes an attendee

#### Members

const gchar *`value`; | usually a "mailto:email" of the attendee |
const gchar *`member`; | Member |
icalparameter_cutype `cutype`; | Type of the attendee |
icalparameter_role `role`; | Role of the attendee |
icalparameter_partstat `status`; | Current status of the attendee |
gboolean `rsvp`; | Whether requires RSVP |
const gchar *`delto`; | Delegated to |
const gchar *`delfrom`; | Delegated from |
const gchar *`sentby`; | Sent by |
const gchar *`cn`; | Common name |
const gchar *`language`; | Language |

### ECalComponentOrganizer

    typedef struct {
    	const gchar *value;
    	const gchar *sentby;
    	const gchar *cn;
    	const gchar *language;
    } ECalComponentOrganizer;

Describes an organizer

#### Members

const gchar *`value`; | usually a "mailto:email" of the organizer |
const gchar *`sentby`; | Sent by |
const gchar *`cn`; | Common name |
const gchar *`language`; | Language |

### ECalComponentAlarmInstance

    typedef struct {
    	/* UID of the alarm that triggered */
    	gchar *auid;

    	/* Trigger time, i.e. "5 minutes before the appointment" */
    	time_t trigger;

    	/* Actual event occurrence to which this trigger corresponds */
    	time_t occur_start;
    	time_t occur_end;
    } ECalComponentAlarmInstance;

An alarm occurrence, i.e. a trigger instance

#### Members

gchar *`auid`; | UID of the alarm |
time_t `trigger`; | Trigger time, i.e. "5 minutes before the appointment" |
time_t `occur_start`; | Actual event occurrence start to which this trigger corresponds |
time_t `occur_end`; | Actual event occurrence end to which this trigger corresponds |

### ECalComponentAlarms

    typedef struct {
    	/* The actual component */
    	ECalComponent *comp;

    	/* List of ECalComponentAlarmInstance structures */
    	GSList *alarms;
    } ECalComponentAlarms;

Alarm trigger instances for a particular component

#### Members

ECalComponent *`comp`; | The actual alarm component |
GSList *`alarms`; | List of ECalComponentAlarmInstance structures. | [element-type ECalComponentAlarmInstance]

### enum ECalComponentAlarmAction

Alarm types

#### Members

E_CAL_COMPONENT_ALARM_NONE | None |
E_CAL_COMPONENT_ALARM_AUDIO | Audio |
E_CAL_COMPONENT_ALARM_DISPLAY | Display message |
E_CAL_COMPONENT_ALARM_EMAIL | Email |
E_CAL_COMPONENT_ALARM_PROCEDURE | Procedure |
E_CAL_COMPONENT_ALARM_UNKNOWN | Unknown |

### enum ECalComponentAlarmTriggerType

Whether a trigger is relative to the start or end of an event occurrence, or whether it is specified to occur at an absolute time.

#### Members

E_CAL_COMPONENT_ALARM_TRIGGER_NONE | None |
E_CAL_COMPONENT_ALARM_TRIGGER_RELATIVE_START | Relative to the start |
E_CAL_COMPONENT_ALARM_TRIGGER_RELATIVE_END | Relative to the end |
E_CAL_COMPONENT_ALARM_TRIGGER_ABSOLUTE | Absolute |

### ECalComponentAlarmTrigger

    typedef struct {
    	ECalComponentAlarmTriggerType type;

    	union {
    		struct icaldurationtype rel_duration;
    		struct icaltimetype abs_time;
    	} u;
    } ECalComponentAlarmTrigger;

When the alarm is supposed to be triggered

#### Members

ECalComponentAlarmTriggerType `type`; | An ECalComponentAlarmTriggerType |

### ECalComponentAlarmRepeat

    typedef struct {
    	/* Number of extra repetitions, zero for none */
    	gint repetitions;

    	/* Interval between repetitions */
    	struct icaldurationtype duration;
    } ECalComponentAlarmRepeat;

Whether and how the alarm repeats.

#### Members

gint `repetitions`; | Number of extra repetitions, zero for none |
struct icaldurationtype `duration`; | Interval between repetitions |