## ICalComponent ICalComponent |

## Functions

void | (*ICalComponentForeachTZIDFunc) ()
void | (*ICalComponentForeachRecurrenceFunc) ()
ICalComponent * | i_cal_component_new ()
ICalComponent * | i_cal_component_clone ()
ICalComponent * | i_cal_component_new_from_string ()
ICalComponent * | i_cal_component_new_x ()
void | i_cal_component_free ()
gchar * | i_cal_component_as_ical_string ()
gboolean | i_cal_component_is_valid ()
ICalComponentKind | i_cal_component_isa ()
gint | i_cal_component_isa_component ()
void | i_cal_component_add_property ()
void | i_cal_component_take_property ()
void | i_cal_component_remove_property ()
gint | i_cal_component_count_properties ()
ICalComponent * | i_cal_property_get_parent ()
void | i_cal_property_set_parent ()
ICalTime * | i_cal_property_get_datetime_with_component ()
ICalProperty * | i_cal_component_get_current_property ()
ICalProperty * | i_cal_component_get_first_property ()
ICalProperty * | i_cal_component_get_next_property ()
ICalComponent * | i_cal_component_get_inner ()
void | i_cal_component_add_component ()
void | i_cal_component_take_component ()
void | i_cal_component_remove_component ()
gint | i_cal_component_count_components ()
ICalComponent * | i_cal_component_get_parent ()
void | i_cal_component_set_parent ()
void | i_cal_component_merge_component ()
ICalComponent * | i_cal_component_get_current_component ()
ICalComponent * | i_cal_component_get_first_component ()
ICalComponent * | i_cal_component_get_next_component ()
ICalCompIter * | i_cal_component_begin_component ()
ICalCompIter * | i_cal_component_end_component ()
ICalComponent * | i_cal_comp_iter_next ()
ICalComponent * | i_cal_comp_iter_prior ()
ICalComponent * | i_cal_comp_iter_deref ()
gint | i_cal_component_check_restrictions ()
gint | i_cal_component_count_errors ()
void | i_cal_component_strip_errors ()
void | i_cal_component_convert_errors ()
gboolean | i_cal_component_kind_is_valid ()
ICalComponentKind | i_cal_component_kind_from_string ()
const gchar * | i_cal_component_kind_to_string ()
ICalComponent * | i_cal_component_get_first_real_component ()
ICalTimeSpan * | i_cal_component_get_span ()
void | i_cal_component_set_dtstart ()
ICalTime * | i_cal_component_get_dtstart ()
void | i_cal_component_set_dtend ()
ICalTime * | i_cal_component_get_dtend ()
void | i_cal_component_set_due ()
ICalTime * | i_cal_component_get_due ()
void | i_cal_component_set_duration ()
ICalDuration * | i_cal_component_get_duration ()
void | i_cal_component_set_method ()
ICalPropertyMethod | i_cal_component_get_method ()
void | i_cal_component_set_dtstamp ()
ICalTime * | i_cal_component_get_dtstamp ()
void | i_cal_component_set_summary ()
const gchar * | i_cal_component_get_summary ()
void | i_cal_component_set_comment ()
const gchar * | i_cal_component_get_comment ()
void | i_cal_component_set_uid ()
const gchar * | i_cal_component_get_uid ()
void | i_cal_component_set_relcalid ()
const gchar * | i_cal_component_get_relcalid ()
void | i_cal_component_set_recurrenceid ()
ICalTime * | i_cal_component_get_recurrenceid ()
void | i_cal_component_set_description ()
const gchar * | i_cal_component_get_description ()
void | i_cal_component_set_location ()
const gchar * | i_cal_component_get_location ()
void | i_cal_component_set_sequence ()
gint | i_cal_component_get_sequence ()
void | i_cal_component_set_status ()
ICalPropertyStatus | i_cal_component_get_status ()
void | i_cal_component_foreach_tzid ()
void | i_cal_component_foreach_recurrence ()
ICalTimezone * | i_cal_component_get_timezone ()
gboolean | i_cal_property_recurrence_is_excluded ()
ICalComponent * | i_cal_component_new_vcalendar ()
ICalComponent * | i_cal_component_new_vevent ()
ICalComponent * | i_cal_component_new_vtodo ()
ICalComponent * | i_cal_component_new_vjournal ()
ICalComponent * | i_cal_component_new_valarm ()
ICalComponent * | i_cal_component_new_vfreebusy ()
ICalComponent * | i_cal_component_new_vtimezone ()
ICalComponent * | i_cal_component_new_xstandard ()
ICalComponent * | i_cal_component_new_xdaylight ()
ICalComponent * | i_cal_component_new_vagenda ()
ICalComponent * | i_cal_component_new_vquery ()
ICalComponent * | i_cal_component_new_vavailability ()
ICalComponent * | i_cal_component_new_xavailable ()
ICalComponent * | i_cal_component_new_vpoll ()
ICalComponent * | i_cal_component_new_vvoter ()
ICalComponent * | i_cal_component_new_xvote ()

## Types and Values

| ICalComponent
struct | ICalComponentClass

## Object Hierarchy

        GObject
        ╰── ICalObject
            ╰── ICalComponent

## Description

## Functions

### ICalComponentForeachTZIDFunc ()

    void
    (*ICalComponentForeachTZIDFunc) (ICalParameter *param,
                                     gpointer user_data);

### ICalComponentForeachRecurrenceFunc ()

    void
    (*ICalComponentForeachRecurrenceFunc) (ICalComponent *comp,
                                           ICalTimeSpan *span,
                                           gpointer user_data);

### i_cal_component_new ()

    ICalComponent *
    i_cal_component_new (ICalComponentKind kind);

Creates a new ICalComponent with specific type.

#### Parameters

kind | The ICalComponentKind |

#### Returns

The newly created ICalComponent.

[transfer full]

Since: 1.0

### i_cal_component_clone ()

    ICalComponent *
    i_cal_component_clone (ICalComponent *component);

Deeply clone a ICalComponent.

#### Parameters

component | The ICalComponent to be created |

#### Returns

The newly deeply cloned ICalComponent.

[transfer full]

Since: 1.0

### i_cal_component_new_from_string ()

    ICalComponent *
    i_cal_component_new_from_string (const gchar *str);

Creates a new ICalComponent based on a string.

#### Parameters

str | The string used to create ICalComponent |

#### Returns

The newly created ICalComponent based on `str` .

[transfer full]

Since: 1.0

### i_cal_component_new_x ()

    ICalComponent *
    i_cal_component_new_x (const gchar *x_name);

Creates a new ICalComponent based on name of x property.

#### Parameters

x_name | The name of x property |

#### Returns

The newly created ICalComponent.

[transfer full]

Since: 1.0

### i_cal_component_free ()

    void
    i_cal_component_free (ICalComponent *component);

Frees a ICalComponent.

[skip]

#### Parameters

component | The ICalComponent to be freed |

Since: 1.0

### i_cal_component_as_ical_string ()

    gchar *
    i_cal_component_as_ical_string (ICalComponent *component);

Converts a ICalComponent to a string.

#### Parameters

component | The ICalComponent to be converted |

#### Returns

The string representation of ICalComponent.

[transfer full]

Since: 1.0

### i_cal_component_is_valid ()

    gboolean
    i_cal_component_is_valid (ICalComponent *component);

Checks whether ICalComponent is valid.

#### Parameters

component | The ICalComponent to be checked |

#### Returns

1 if yes, 0 if not.

Since: 1.0

### i_cal_component_isa ()

    ICalComponentKind
    i_cal_component_isa (const ICalComponent *component);

Gets the type of ICalComponent.

#### Parameters

component | The ICalComponent to be checked |

#### Returns

A ICalComponentKind.

Since: 1.0

### i_cal_component_isa_component ()

    gint
    i_cal_component_isa_component (ICalComponent *component);

Checks whether the native part of ICalComponent is icalcomponent.

#### Parameters

component | The ICalComponent to be checked |

#### Returns

1 if yes, 0 if not.

Since: 1.0

### i_cal_component_add_property ()

    void
    i_cal_component_add_property (ICalComponent *component,
                                  ICalProperty *property);

Adds an ICalProperty into ICalComponent.

#### Parameters

component | A ICalComponent |
property | An ICalProperty |

Since: 1.0

### i_cal_component_take_property ()

    void
    i_cal_component_take_property (ICalComponent *component,
                                   ICalProperty *property);

Adds the `property` into the `component` and unrefs the `property` .

[skip]

#### Parameters

component | An ICalComponent |
property | An ICalProperty. | [transfer full]

Since: 1.0

### i_cal_component_remove_property ()

    void
    i_cal_component_remove_property (ICalComponent *component,
                                     ICalProperty *property);

Removes ICalProperty from ICalComponent. Caution: The compare is based on address. So you must use the original ICalProperty as the target.

#### Parameters

component | A ICalComponent |
property | A ICalProperty |

Since: 1.0

### i_cal_component_count_properties ()

    gint
    i_cal_component_count_properties (ICalComponent *component,
                                      ICalPropertyKind kind);

Counts the number of ICalProperty in ICalComponent.

#### Parameters

component | The ICalComponent |
kind | A ICalPropertyKind |

#### Returns

The number of ICalProperty.

Since: 1.0

### i_cal_property_get_parent ()

    ICalComponent *
    i_cal_property_get_parent (ICalProperty *property);

Gets the parent component of the property. Use with caution. When icalproperty is deallocated, it won't deallocate its parent. However the ICalComponent object created using this method will be deallocated (if no reference in other places). So You need to make sure there is another reference except the one in ICalProperty.

#### Parameters

property | The ICalProperty |

#### Returns

The parent ICalComponent of ICalProperty.

[transfer full][nullable]

Since: 2.0

### i_cal_property_set_parent ()

    void
    i_cal_property_set_parent (ICalProperty *property,
                               ICalComponent *component);

Sets the parent ICalComponent of the specified ICalProperty.

#### Parameters

property | An ICalProperty |
component | An ICalComponent. | [nullable]

Since: 3.0

### i_cal_property_get_datetime_with_component ()

    ICalTime *
    i_cal_property_get_datetime_with_component
                                   (ICalProperty *prop,
                                    ICalComponent *comp);

If the property is a DATE-TIME with a TZID parameter and a corresponding VTIMEZONE is present in the component, the returned component will already be in the correct timezone; otherwise the caller is responsible for converting it.

The `comp` can be NULL, in which case the parent of the `prop` is used to find the corresponding time zone.

#### Parameters

prop | An ICalProperty |
comp | An ICalComponent. | [nullable]

#### Returns

Get a DATE or DATE-TIME property as an ICalTime.

[transfer full]

Since: 3.0.5

### i_cal_component_get_current_property ()

    ICalProperty *
    i_cal_component_get_current_property (ICalComponent *component);

Gets the current ICalProperty in ICalComponent.

#### Parameters

component | A ICalComponent |

#### Returns

The current ICalProperty.

[transfer full]

Since: 1.0

### i_cal_component_get_first_property ()

    ICalProperty *
    i_cal_component_get_first_property (ICalComponent *component,
                                        ICalPropertyKind kind);

Gets the first ICalProperty with specific kind in ICalComponent.

#### Parameters

component | A ICalComponent |
kind | A ICalPropertyKind |

#### Returns

The first ICalProperty.

[transfer full][nullable]

Since: 1.0

### i_cal_component_get_next_property ()

    ICalProperty *
    i_cal_component_get_next_property (ICalComponent *component,
                                       ICalPropertyKind kind);

Gets the next ICalProperty with specific kind in ICalComponent.

#### Parameters

component | A ICalComponent |
kind | A ICalPropertyKind |

#### Returns

The next ICalProperty.

[transfer full][nullable]

Since: 1.0

### i_cal_component_get_inner ()

    ICalComponent *
    i_cal_component_get_inner (ICalComponent *comp);

Returns the first VEVENT, VTODO or VJOURNAL sub-component of cop, or comp if it is one of those types.

#### Parameters

comp | A ICalComponent |

#### Returns

The first VEVENT, VTODO or VJOURNAL sub-component.

[transfer full][nullable]

Since: 1.0

### i_cal_component_add_component ()

    void
    i_cal_component_add_component (ICalComponent *parent,
                                   ICalComponent *child);

Adds a ICalComponent into another ICalComponent as a child component.

#### Parameters

parent | A ICalComponent |
child | A child ICalComponent |

Since: 1.0

### i_cal_component_take_component ()

    void
    i_cal_component_take_component (ICalComponent *parent,
                                    ICalComponent *child);

Adds the `child` into the `parent` as a child component and unrefs the `child` .

[skip]

#### Parameters

parent | A ICalComponent |
child | A child ICalComponent. | [transfer full]

Since: 1.0

### i_cal_component_remove_component ()

    void
    i_cal_component_remove_component (ICalComponent *parent,
                                      ICalComponent *child);

Removes a child ICalComponent from another ICalComponent.

#### Parameters

parent | A ICalComponent |
child | A child ICalComponent |

Since: 1.0

### i_cal_component_count_components ()

    gint
    i_cal_component_count_components (ICalComponent *component,
                                      ICalComponentKind kind);

Counts the child ICalComponent with the target kind in the parent one.

#### Parameters

component | The ICalComponent to be checked |
kind | The target ICalComponentKind |

#### Returns

The count of child ICalComponent in the parent one.

Since: 1.0

### i_cal_component_get_parent ()

    ICalComponent *
    i_cal_component_get_parent (ICalComponent *component);

Gets the parent component of the `component` .

#### Parameters

component | The ICalComponent |

#### Returns

The parent ICalComponent of the `component` .

[transfer full][nullable]

Since: 3.0

### i_cal_component_set_parent ()

    void
    i_cal_component_set_parent (ICalComponent *component,
                                ICalComponent *parent);

Sets the `parent` ICalComponent of the specified `component` .

#### Parameters

component | An ICalComponent, a child |
parent | An ICalComponent, a new parent. | [nullable]

Since: 3.0

### i_cal_component_merge_component ()

    void
    i_cal_component_merge_component (ICalComponent *comp,
                                     ICalComponent *comp_to_merge);

Takes 2 VCALENDAR components and merges the second one into the first, resolving any problems with conflicting TZIDs. comp_to_merge will no longer exist after calling this function.

#### Parameters

comp | The ICalComponent |
comp_to_merge | A ICalComponent. After merged it will not exist any more. | [in]

Since: 1.0

### i_cal_component_get_current_component ()

    ICalComponent *
    i_cal_component_get_current_component (ICalComponent *component);

Gets the current ICalComponent in ICalComponent.

#### Parameters

component | A ICalComponent |

#### Returns

The current ICalComponent.

[transfer full]

Since: 1.0

### i_cal_component_get_first_component ()

    ICalComponent *
    i_cal_component_get_first_component (ICalComponent *component,
                                         ICalComponentKind kind);

Gets the first ICalComponent with specific kind in ICalComponent.

#### Parameters

component | A ICalComponent |
kind | A ICalComponentKind |

#### Returns

The first ICalComponent.

[transfer full][nullable]

Since: 1.0

### i_cal_component_get_next_component ()

    ICalComponent *
    i_cal_component_get_next_component (ICalComponent *component,
                                        ICalComponentKind kind);

Gets the next ICalComponent with specific kind in ICalComponent.

#### Parameters

component | A ICalComponent |
kind | A ICalComponentKind |

#### Returns

The next ICalComponent.

[transfer full][nullable]

Since: 1.0

### i_cal_component_begin_component ()

    ICalCompIter *
    i_cal_component_begin_component (ICalComponent *component,
                                     ICalComponentKind kind);

Gets the ICalCompIter pointing to the first child ICalComponent.

#### Parameters

component | A ICalComponent |
kind | A ICalComponentKind |

#### Returns

A ICalCompIter.

[transfer full]

Since: 1.0

### i_cal_component_end_component ()

    ICalCompIter *
    i_cal_component_end_component (ICalComponent *component,
                                   ICalComponentKind kind);

Gets the ICalCompIter pointing to the end child ICalComponent.

#### Parameters

component | A ICalComponent |
kind | A ICalComponentKind |

#### Returns

A ICalCompIter.

[transfer full]

Since: 1.0

### i_cal_comp_iter_next ()

    ICalComponent *
    i_cal_comp_iter_next (ICalCompIter *i);

Gets the next ICalComponent pointed by ICalCompIter.

#### Parameters

i | A ICalCompIter |

#### Returns

A ICalCompIter.

[transfer full]

Since: 1.0

### i_cal_comp_iter_prior ()

    ICalComponent *
    i_cal_comp_iter_prior (ICalCompIter *i);

Gets the prior ICalComponent pointed by ICalCompIter.

#### Parameters

i | A ICalCompIter |

#### Returns

A ICalCompIter.

[transfer full]

Since: 1.0

### i_cal_comp_iter_deref ()

    ICalComponent *
    i_cal_comp_iter_deref (ICalCompIter *i);

Gets the current ICalComponent pointed by ICalCompIter.

#### Parameters

i | A ICalCompIter |

#### Returns

A ICalComponent.

[transfer full]

Since: 1.0

### i_cal_component_check_restrictions ()

    gint
    i_cal_component_check_restrictions (ICalComponent *comp);

Checks the number of restrictions in ICalComponent.

#### Parameters

comp | The ICalComponent to be checked |

#### Returns

The number of restrictions in `comp`

Since: 1.0

### i_cal_component_count_errors ()

    gint
    i_cal_component_count_errors (ICalComponent *comp);

Counts the number of errors in ICalComponent.

#### Parameters

comp | A ICalComponent |

#### Returns

The count of errors.

Since: 1.0

### i_cal_component_strip_errors ()

    void
    i_cal_component_strip_errors (ICalComponent *comp);

Removes all X-LIC-ERROR properties.

#### Parameters

comp | A ICalComponent |

Since: 1.0

### i_cal_component_convert_errors ()

    void
    i_cal_component_convert_errors (ICalComponent *comp);

Converts some X-LIC-ERROR properties into RETURN-STATUS properties.

#### Parameters

comp | A ICalComponent |

Since: 1.0

### i_cal_component_kind_is_valid ()

    gboolean
    i_cal_component_kind_is_valid (const ICalComponentKind kind);

Checks if a ICalComponentKind is valid.

#### Parameters

kind | A ICalComponentKind |

#### Returns

1 if `kind` id a ICalComponent but not the I_CAL_NO_COMPONENT, 0 if not.

Since: 1.0

### i_cal_component_kind_from_string ()

    ICalComponentKind
    i_cal_component_kind_from_string (const gchar *string);

Converts a string to a ICalComponentKind.

#### Parameters

string | A string |

#### Returns

A ICalComponentKind

Since: 1.0

### i_cal_component_kind_to_string ()

    const gchar *
    i_cal_component_kind_to_string (ICalComponentKind kind);

Converts a ICalComponentKind to a string.

#### Parameters

kind | A ICalComponentKind |

#### Returns

The string representation of `kind` .

[transfer none]

Since: 1.0

### i_cal_component_get_first_real_component ()

    ICalComponent *
    i_cal_component_get_first_real_component
                                   (ICalComponent *c);

For VCOMPONENT: Returns a reference to the first VEVENT, VTODO or VJOURNAL.

#### Parameters

c | A VCOMPONENT type of ICalComponent |

#### Returns

A reference to the first VEVENT, VTODO or VJOURNAL.

[transfer full]

Since: 1.0

### i_cal_component_get_span ()

    ICalTimeSpan *
    i_cal_component_get_span (ICalComponent *comp);

For VEVENT, VTODO, VJOURNAL and VTIMEZONE: reports the start and end times of an event in UTC.

#### Parameters

comp | A ICalComponent |

#### Returns

A ICalTimeSpan.

[transfer full]

Since: 1.0

### i_cal_component_set_dtstart ()

    void
    i_cal_component_set_dtstart (ICalComponent *comp,
                                 ICalTime *v);

Sets the dtstart of the ICalComponent.

#### Parameters

comp | A ICalComponent |
v | A ICalTime |

Since: 1.0

### i_cal_component_get_dtstart ()

    ICalTime *
    i_cal_component_get_dtstart (ICalComponent *comp);

Gets the dtstart of the ICalComponent.

#### Parameters

comp | A ICalComponent |

#### Returns

A ICalTime.

[transfer full]

Since: 1.0

### i_cal_component_set_dtend ()

    void
    i_cal_component_set_dtend (ICalComponent *comp,
                               ICalTime *v);

Sets the dtend of the ICalComponent.

#### Parameters

comp | A ICalComponent |
v | A ICalTime |

Since: 1.0

### i_cal_component_get_dtend ()

    ICalTime *
    i_cal_component_get_dtend (ICalComponent *comp);

Gets the dtend of the ICalComponent.

#### Parameters

comp | A ICalComponent |

#### Returns

A ICalTime.

[transfer full]

Since: 1.0

### i_cal_component_set_due ()

    void
    i_cal_component_set_due (ICalComponent *comp,
                             ICalTime *v);

Sets the due of the ICalComponent.

#### Parameters

comp | A ICalComponent |
v | A ICalTime |

Since: 1.0

### i_cal_component_get_due ()

    ICalTime *
    i_cal_component_get_due (ICalComponent *comp);

Gets the due of the ICalComponent.

#### Parameters

comp | A ICalComponent |

#### Returns

A ICalTime.

[transfer full]

Since: 1.0

### i_cal_component_set_duration ()

    void
    i_cal_component_set_duration (ICalComponent *comp,
                                  ICalDuration *v);

Sets the duration of the ICalComponent.

#### Parameters

comp | A ICalComponent |
v | A ICalDuration |

Since: 1.0

### i_cal_component_get_duration ()

    ICalDuration *
    i_cal_component_get_duration (ICalComponent *comp);

Gets the duration of the ICalComponent.

#### Parameters

comp | A ICalComponent |

#### Returns

An ICalDuration.

[transfer full]

Since: 1.0

### i_cal_component_set_method ()

    void
    i_cal_component_set_method (ICalComponent *comp,
                                ICalPropertyMethod method);

Sets the method of the ICalComponent.

#### Parameters

comp | A ICalComponent |
method | A ICalPropertyMethod |

Since: 1.0

### i_cal_component_get_method ()

    ICalPropertyMethod
    i_cal_component_get_method (ICalComponent *comp);

Gets the method of the ICalComponent.

#### Parameters

comp | A ICalComponent |

#### Returns

A ICalPropertyMethod.

Since: 1.0

### i_cal_component_set_dtstamp ()

    void
    i_cal_component_set_dtstamp (ICalComponent *comp,
                                 ICalTime *v);

Sets the dtstamp of the ICalComponent.

#### Parameters

comp | A ICalComponent |
v | A ICalTime |

Since: 1.0

### i_cal_component_get_dtstamp ()

    ICalTime *
    i_cal_component_get_dtstamp (ICalComponent *comp);

Gets the dtstamp of the ICalComponent.

#### Parameters

comp | A ICalComponent |

#### Returns

A ICalTime.

[transfer full]

Since: 1.0

### i_cal_component_set_summary ()

    void
    i_cal_component_set_summary (ICalComponent *comp,
                                 const gchar *v);

Sets the summary of the ICalComponent.

#### Parameters

comp | A ICalComponent |
v | A string representing summary |

Since: 1.0

### i_cal_component_get_summary ()

    const gchar *
    i_cal_component_get_summary (ICalComponent *comp);

Gets the summary of the ICalComponent.

#### Parameters

comp | A ICalComponent |

#### Returns

The summary of `comp` .

[transfer none]

Since: 1.0

### i_cal_component_set_comment ()

    void
    i_cal_component_set_comment (ICalComponent *comp,
                                 const gchar *v);

Sets the comment of the ICalComponent.

#### Parameters

comp | A ICalComponent |
v | A string representing comment |

Since: 1.0

### i_cal_component_get_comment ()

    const gchar *
    i_cal_component_get_comment (ICalComponent *comp);

Gets the comment of the ICalComponent.

#### Parameters

comp | A ICalComponent |

#### Returns

The comment of `comp` .

[transfer none]

Since: 1.0

### i_cal_component_set_uid ()

    void
    i_cal_component_set_uid (ICalComponent *comp,
                             const gchar *v);

Sets the uid of the ICalComponent.

#### Parameters

comp | A ICalComponent |
v | A string representing uid |

Since: 1.0

### i_cal_component_get_uid ()

    const gchar *
    i_cal_component_get_uid (ICalComponent *comp);

Gets the uid of the ICalComponent.

#### Parameters

comp | A ICalComponent |

#### Returns

The uid of `comp` .

[transfer none]

Since: 1.0

### i_cal_component_set_relcalid ()

    void
    i_cal_component_set_relcalid (ICalComponent *comp,
                                  const gchar *v);

Sets the relcalid of the ICalComponent.

#### Parameters

comp | A ICalComponent |
v | A string representing relcalid |

Since: 1.0

### i_cal_component_get_relcalid ()

    const gchar *
    i_cal_component_get_relcalid (ICalComponent *comp);

Gets the relcalid of the ICalComponent.

#### Parameters

comp | A ICalComponent |

#### Returns

The relcalid of `comp` .

[transfer none]

Since: 1.0

### i_cal_component_set_recurrenceid ()

    void
    i_cal_component_set_recurrenceid (ICalComponent *comp,
                                      ICalTime *v);

Sets the recurrenceid of the ICalComponent.

#### Parameters

comp | A ICalComponent |
v | A ICalTime |

Since: 1.0

### i_cal_component_get_recurrenceid ()

    ICalTime *
    i_cal_component_get_recurrenceid (ICalComponent *comp);

Gets the recurrenceid of the ICalComponent.

#### Parameters

comp | A ICalComponent |

#### Returns

A ICalTime.

[transfer full]

Since: 1.0

### i_cal_component_set_description ()

    void
    i_cal_component_set_description (ICalComponent *comp,
                                     const gchar *v);

Sets the description of the ICalComponent.

#### Parameters

comp | A ICalComponent |
v | A string representing description |

Since: 1.0

### i_cal_component_get_description ()

    const gchar *
    i_cal_component_get_description (ICalComponent *comp);

Gets the description of the ICalComponent.

#### Parameters

comp | A ICalComponent |

#### Returns

The description of `comp` .

[transfer none]

Since: 1.0

### i_cal_component_set_location ()

    void
    i_cal_component_set_location (ICalComponent *comp,
                                  const gchar *v);

Sets the location of the ICalComponent.

#### Parameters

comp | A ICalComponent |
v | A string representing location |

Since: 1.0

### i_cal_component_get_location ()

    const gchar *
    i_cal_component_get_location (ICalComponent *comp);

Gets the location of the ICalComponent.

#### Parameters

comp | A ICalComponent |

#### Returns

The location of `comp` .

[transfer none]

Since: 1.0

### i_cal_component_set_sequence ()

    void
    i_cal_component_set_sequence (ICalComponent *comp,
                                  gint v);

Sets the sequence of the ICalComponent.

#### Parameters

comp | A ICalComponent |
v | The sequence number |

Since: 1.0

### i_cal_component_get_sequence ()

    gint
    i_cal_component_get_sequence (ICalComponent *comp);

Gets the sequence of the ICalComponent.

#### Parameters

comp | A ICalComponent |

#### Returns

The sequence of `comp` .

Since: 1.0

### i_cal_component_set_status ()

    void
    i_cal_component_set_status (ICalComponent *comp,
                                ICalPropertyStatus status);

Sets the status of the ICalComponent.

#### Parameters

comp | A ICalComponent |
status | A ICalPropertyStatus |

Since: 1.0

### i_cal_component_get_status ()

    ICalPropertyStatus
    i_cal_component_get_status (ICalComponent *comp);

Gets the status of the ICalComponent.

#### Parameters

comp | A ICalComponent |

#### Returns

A ICalPropertyStatus.

Since: 1.0

### i_cal_component_foreach_tzid ()

    void
    i_cal_component_foreach_tzid (ICalComponent *comp,
                                  ICalComponentForeachTZIDFunc callback,
                                  gpointer user_data);

Applies the same manipulation on every tzid in ICalComponent.

#### Parameters

comp | The ICalComponent to be queried |
callback | The callback function. | [scope call]
user_data | The data for callback function. | [nullable][closure callback]

Since: 3.0.5

### i_cal_component_foreach_recurrence ()

    void
    i_cal_component_foreach_recurrence (ICalComponent *comp,
                                        ICalTime *start,
                                        ICalTime *end,
                                        ICalComponentForeachRecurrenceFunc callback,
                                        gpointer user_data);

Cycles through all recurrences of an event. This function will call the specified callback function for once for the base value of DTSTART, and foreach recurring date/time value. It will filter out events that are specified as an EXDATE or an EXRULE.

#### Parameters

comp | The ICalComponent to be queried |
start | Ignore timespans before this |
end | Ignore timespans after this |
callback | Function called for each timespan within the range. | [scope call]
user_data | The user data for callback function. | [nullable][closure callback]

Since: 3.0.5

### i_cal_component_get_timezone ()

    ICalTimezone *
    i_cal_component_get_timezone (ICalComponent *comp,
                                  const gchar *tzid);

Returns the icaltimezone in the component corresponding to the TZID, or NULL if it can't be found.

#### Parameters

comp | A ICalComponent |
tzid | A string representing timezone |

#### Returns

A ICalTimezone.

[transfer full][nullable]

Since: 1.0

### i_cal_property_recurrence_is_excluded ()

    gboolean
    i_cal_property_recurrence_is_excluded (ICalComponent *comp,
                                           ICalTime *dtstart,
                                           ICalTime *recurtime);

Decides if this recurrence is acceptable. This function decides if a specific recurrence value is excluded by EXRULE or EXDATE properties.

#### Parameters

comp | A ICalComponent |
dtstart | The base dtstart value for this component |
recurtime | The time to test against |

#### Returns

1 if yes, 0 if not.

Since: 1.0

### i_cal_component_new_vcalendar ()

    ICalComponent *
    i_cal_component_new_vcalendar (void);

Creates a ICalComponent with the type to be vcalendar.

#### Returns

The newly created ICalComponent.

[transfer full]

Since: 1.0

### i_cal_component_new_vevent ()

    ICalComponent *
    i_cal_component_new_vevent (void);

Creates a ICalComponent with the type to be vevent.

#### Returns

The newly created ICalComponent.

[transfer full]

Since: 1.0

### i_cal_component_new_vtodo ()

    ICalComponent *
    i_cal_component_new_vtodo (void);

Creates a ICalComponent with the type to be vtodo.

#### Returns

The newly created ICalComponent.

[transfer full]

Since: 1.0

### i_cal_component_new_vjournal ()

    ICalComponent *
    i_cal_component_new_vjournal (void);

Creates a ICalComponent with the type to be vjournal.

#### Returns

The newly created ICalComponent.

[transfer full]

Since: 1.0

### i_cal_component_new_valarm ()

    ICalComponent *
    i_cal_component_new_valarm (void);

Creates a ICalComponent with the type to be valarm.

#### Returns

The newly created ICalComponent.

[transfer full]

Since: 1.0

### i_cal_component_new_vfreebusy ()

    ICalComponent *
    i_cal_component_new_vfreebusy (void);

Creates a ICalComponent with the type to be vfreebusy.

#### Returns

The newly created ICalComponent.

[transfer full]

Since: 1.0

### i_cal_component_new_vtimezone ()

    ICalComponent *
    i_cal_component_new_vtimezone (void);

Creates a ICalComponent with the type to be vtimezone.

#### Returns

The newly created ICalComponent.

[transfer full]

Since: 1.0

### i_cal_component_new_xstandard ()

    ICalComponent *
    i_cal_component_new_xstandard (void);

Creates a ICalComponent with the type to be xstandard.

#### Returns

The newly created ICalComponent.

[transfer full]

Since: 1.0

### i_cal_component_new_xdaylight ()

    ICalComponent *
    i_cal_component_new_xdaylight (void);

Creates a ICalComponent with the type to be xdaylight.

#### Returns

The newly created ICalComponent.

[transfer full]

Since: 1.0

### i_cal_component_new_vagenda ()

    ICalComponent *
    i_cal_component_new_vagenda (void);

Creates a ICalComponent with the type to be vagenda.

#### Returns

The newly created ICalComponent.

[transfer full]

Since: 1.0

### i_cal_component_new_vquery ()

    ICalComponent *
    i_cal_component_new_vquery (void);

Creates a ICalComponent with the type to be vquery.

#### Returns

The newly created ICalComponent.

[transfer full]

Since: 1.0

### i_cal_component_new_vavailability ()

    ICalComponent *
    i_cal_component_new_vavailability (void);

Creates a ICalComponent with the type to be vavailability.

#### Returns

The newly created ICalComponent.

[transfer full]

Since: 1.0

### i_cal_component_new_xavailable ()

    ICalComponent *
    i_cal_component_new_xavailable (void);

Creates a ICalComponent with the type to be xavailable.

#### Returns

The newly created ICalComponent.

[transfer full]

Since: 1.0

### i_cal_component_new_vpoll ()

    ICalComponent *
    i_cal_component_new_vpoll (void);

Creates a ICalComponent with the type to be vpoll.

#### Returns

The newly created ICalComponent.

[transfer full]

Since: 1.0

### i_cal_component_new_vvoter ()

    ICalComponent *
    i_cal_component_new_vvoter (void);

Creates a ICalComponent with the type to be vvoter.

#### Returns

The newly created ICalComponent.

[transfer full]

Since: 1.0

### i_cal_component_new_xvote ()

    ICalComponent *
    i_cal_component_new_xvote (void);

Creates a ICalComponent with the type to be xvote.

#### Returns

The newly created ICalComponent.

[transfer full]

Since: 1.0

## Types and Values

### ICalComponent

    typedef struct _ICalComponent ICalComponent;

This is the ICalComponent instance.

### struct ICalComponentClass

    struct ICalComponentClass {
    };

This is the ICalComponent class.