ICalComponent

## ICalComponent ICalComponent |

## Synopsis

    #include <i-cal-comp-iter>
    #include <i-cal-duration-type>
    #include <i-cal-property>
    #include <i-cal-timetype>
    #include <i-cal-timezone>
    #include <i-cal-time-span>

    #define             I_CAL_COMPONENT_TYPE
                        ICalComponent;
    struct              ICalComponentClass;
    ICalComponent *     i_cal_component_new_full            (icalcomponent *native,
                                                             GObject *owner);
    ICalComponent *     i_cal_component_new                 (ICalComponentKind kind);
    ICalComponent *     i_cal_component_new_clone           (ICalComponent *component);
    ICalComponent *     i_cal_component_new_from_string     (const gchar *str);
    ICalComponent *     i_cal_component_new_x               (const gchar *x_name);
    void                i_cal_component_free                (ICalComponent *component);
    gchar *             i_cal_component_as_ical_string_r    (ICalComponent *component);
    gint                i_cal_component_is_valid            (ICalComponent *component);
    ICalComponentKind   i_cal_component_isa                 (const ICalComponent *component);
    gint                i_cal_component_isa_component       (ICalComponent *component);
    void                i_cal_component_add_property        (ICalComponent *component,
                                                             ICalProperty *property);
    void                i_cal_component_remove_property     (ICalComponent *component,
                                                             ICalProperty *property);
    gint                i_cal_component_count_properties    (ICalComponent *component,
                                                             ICalPropertyKind kind);
    ICalProperty *      i_cal_component_get_current_property
                                                            (ICalComponent *component);
    ICalProperty *      i_cal_component_get_first_property  (ICalComponent *component,
                                                             ICalPropertyKind kind);
    ICalProperty *      i_cal_component_get_next_property   (ICalComponent *component,
                                                             ICalPropertyKind kind);
    ICalComponent *     i_cal_component_get_inner           (ICalComponent *comp);
    void                i_cal_component_add_component       (ICalComponent *parent,
                                                             ICalComponent *child);
    void                i_cal_component_remove_component    (ICalComponent *parent,
                                                             ICalComponent *child);
    gint                i_cal_component_count_components    (ICalComponent *component,
                                                             ICalComponentKind kind);
    void                i_cal_component_merge_component     (ICalComponent *comp,
                                                             ICalComponent *comp_to_merge);
    ICalComponent *     i_cal_component_get_current_component
                                                            (ICalComponent *component);
    ICalComponent *     i_cal_component_get_first_component (ICalComponent *component,
                                                             ICalComponentKind kind);
    ICalComponent *     i_cal_component_get_next_component  (ICalComponent *component,
                                                             ICalComponentKind kind);
    ICalCompIter *      i_cal_component_begin_component     (ICalComponent *component,
                                                             ICalComponentKind kind);
    ICalCompIter *      i_cal_component_end_component       (ICalComponent *component,
                                                             ICalComponentKind kind);
    ICalComponent *     i_cal_comp_iter_next                (ICalCompIter *i);
    ICalComponent *     i_cal_comp_iter_prior               (ICalCompIter *i);
    ICalComponent *     i_cal_comp_iter_deref               (ICalCompIter *i);
    gint                i_cal_component_check_restrictions  (ICalComponent *comp);
    gint                i_cal_component_count_errors        (ICalComponent *comp);
    void                i_cal_component_strip_errors        (ICalComponent *comp);
    void                i_cal_component_convert_errors      (ICalComponent *comp);
    gint                i_cal_component_kind_is_valid       (const ICalComponentKind kind);
    ICalComponentKind   i_cal_component_string_to_kind      (const gchar *string);
    const gchar *       i_cal_component_kind_to_string      (ICalComponentKind kind);
    ICalComponent *     i_cal_component_get_first_real_component
                                                            (ICalComponent *c);
    ICalTimeSpan *      i_cal_component_get_span            (ICalComponent *comp);
    void                i_cal_component_set_dtstart         (ICalComponent *comp,
                                                             ICalTimetype *v);
    ICalTimetype *      i_cal_component_get_dtstart         (ICalComponent *comp);
    void                i_cal_component_set_dtend           (ICalComponent *comp,
                                                             ICalTimetype *v);
    ICalTimetype *      i_cal_component_get_dtend           (ICalComponent *comp);
    void                i_cal_component_set_due             (ICalComponent *comp,
                                                             ICalTimetype *v);
    ICalTimetype *      i_cal_component_get_due             (ICalComponent *comp);
    void                i_cal_component_set_duration        (ICalComponent *comp,
                                                             ICalDurationType *v);
    ICalDurationType *  i_cal_component_get_duration        (ICalComponent *comp);
    void                i_cal_component_set_method          (ICalComponent *comp,
                                                             ICalPropertyMethod method);
    ICalPropertyMethod  i_cal_component_get_method          (ICalComponent *comp);
    void                i_cal_component_set_dtstamp         (ICalComponent *comp,
                                                             ICalTimetype *v);
    ICalTimetype *      i_cal_component_get_dtstamp         (ICalComponent *comp);
    void                i_cal_component_set_summary         (ICalComponent *comp,
                                                             const gchar *v);
    const gchar *       i_cal_component_get_summary         (ICalComponent *comp);
    void                i_cal_component_set_comment         (ICalComponent *comp,
                                                             const gchar *v);
    const gchar *       i_cal_component_get_comment         (ICalComponent *comp);
    void                i_cal_component_set_uid             (ICalComponent *comp,
                                                             const gchar *v);
    const gchar *       i_cal_component_get_uid             (ICalComponent *comp);
    void                i_cal_component_set_relcalid        (ICalComponent *comp,
                                                             const gchar *v);
    const gchar *       i_cal_component_get_relcalid        (ICalComponent *comp);
    void                i_cal_component_set_recurrenceid    (ICalComponent *comp,
                                                             ICalTimetype *v);
    ICalTimetype *      i_cal_component_get_recurrenceid    (ICalComponent *comp);
    void                i_cal_component_set_description     (ICalComponent *comp,
                                                             const gchar *v);
    const gchar *       i_cal_component_get_description     (ICalComponent *comp);
    void                i_cal_component_set_location        (ICalComponent *comp,
                                                             const gchar *v);
    const gchar *       i_cal_component_get_location        (ICalComponent *comp);
    void                i_cal_component_set_sequence        (ICalComponent *comp,
                                                             gint v);
    gint                i_cal_component_get_sequence        (ICalComponent *comp);
    void                i_cal_component_set_status          (ICalComponent *comp,
                                                             ICalPropertyStatus status);
    ICalPropertyStatus  i_cal_component_get_status          (ICalComponent *comp);
    void                i_cal_component_foreach_tzid        (ICalComponent *comp,
                                                             void (*callback) (ICalParameter *param, void *data),
                                                             void *callback_data);
    ICalTimezone *      i_cal_component_get_timezone        (ICalComponent *comp,
                                                             const gchar *tzid);
    gint                i_cal_property_recurrence_is_excluded
                                                            (ICalComponent *comp,
                                                             ICalTimetype *dtstart,
                                                             ICalTimetype *recurtime);
    ICalComponent *     i_cal_component_new_vcalendar       (void);
    ICalComponent *     i_cal_component_new_vevent          (void);
    ICalComponent *     i_cal_component_new_vtodo           (void);
    ICalComponent *     i_cal_component_new_vjournal        (void);
    ICalComponent *     i_cal_component_new_valarm          (void);
    ICalComponent *     i_cal_component_new_vfreebusy       (void);
    ICalComponent *     i_cal_component_new_vtimezone       (void);
    ICalComponent *     i_cal_component_new_xstandard       (void);
    ICalComponent *     i_cal_component_new_xdaylight       (void);
    ICalComponent *     i_cal_component_new_vagenda         (void);
    ICalComponent *     i_cal_component_new_vquery          (void);

## Object Hierarchy

      GObject
       +----ICalObject
             +----ICalComponent

## Description

## Details

### I_CAL_COMPONENT_TYPE

    #define             I_CAL_COMPONENT_TYPE

### ICalComponent

    typedef struct _ICalComponent ICalComponent;

This is the ICalComponent instance.

### struct ICalComponentClass

    struct ICalComponentClass {
    };

This is the ICalComponent class.

### i_cal_component_new_full ()

    ICalComponent *     i_cal_component_new_full            (icalcomponent *native,
                                                             GObject *owner);

Create a new libical-glib object from the native libical object and the owner.

`native` : | The native libical object.
`owner` : | The parent.
Returns : | The newly create libical-glib object. [transfer full]

Since 1.0

### i_cal_component_new ()

    ICalComponent *     i_cal_component_new                 (ICalComponentKind kind);

Create a new ICalComponent with specific type.

`kind` : | The ICalComponentKind.
Returns : | The newly created ICalComponent. [transfer full]

Since 1.0

### i_cal_component_new_clone ()

    ICalComponent *     i_cal_component_new_clone           (ICalComponent *component);

Deeply clone a ICalComponent.

`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);

Create a new ICalComponent based on a string.

`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);

Create a new ICalComponent based on name of x property.

`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);

Free a ICalComponent.

`component` : | The ICalComponent to be freed.

Since 1.0

### i_cal_component_as_ical_string_r ()

    gchar *             i_cal_component_as_ical_string_r    (ICalComponent *component);

Convert a ICalComponent to a string.

`component` : | The ICalComponent to be converted.
Returns : | The string representation of ICalComponent. [transfer full]

Since 1.0

### i_cal_component_is_valid ()

    gint                i_cal_component_is_valid            (ICalComponent *component);

Check whether ICalComponent is valid.

`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);

Get the type of ICalComponent.

`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);

Check whether the native part of ICalComponent is icalcomponent.

`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);

Add a ICalProperty into ICalComponent.

`component` : | A ICalComponent.
`property` : | A ICalProperty.

Since 1.0

### i_cal_component_remove_property ()

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

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

`component` : | A ICalComponent.
`property` : | A ICalProperty.

Since 1.0

### i_cal_component_count_properties ()

    gint                i_cal_component_count_properties    (ICalComponent *component,
                                                             ICalPropertyKind kind);

Count the ICalProperty in ICalComponent.

`component` : | The ICalComponent.
`kind` : | A ICalPropertyKind.
Returns : | The number of ICalProperty.

Since 1.0

### i_cal_component_get_current_property ()

    ICalProperty *      i_cal_component_get_current_property
                                                            (ICalComponent *component);

Get the current ICalProperty in ICalComponent.

`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);

Get the first ICalProperty with specific kind in ICalComponent.

`component` : | A ICalComponent.
`kind` : | A ICalPropertyKind.
Returns : | The first ICalProperty. [transfer full]

Since 1.0

### i_cal_component_get_next_property ()

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

Get the next ICalProperty with specific kind in ICalComponent.

`component` : | A ICalComponent.
`kind` : | A ICalPropertyKind.
Returns : | The next ICalProperty. [transfer full]

Since 1.0

### i_cal_component_get_inner ()

    ICalComponent *     i_cal_component_get_inner           (ICalComponent *comp);

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

`comp` : | A ICalComponent.
Returns : | The first VEVENT, VTODO or VJOURNAL sub-component. [transfer full]

Since 1.0

### i_cal_component_add_component ()

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

Add a ICalComponent into another ICalComponent as a child component.

`parent` : | A ICalComponent.
`child` : | A child ICalComponent.

Since 1.0

### i_cal_component_remove_component ()

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

Remove a child ICalComponent from another ICalComponent.

`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);

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

`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_merge_component ()

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

This 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.

`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);

Get the current ICalComponent in ICalComponent.

`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);

Get the first ICalComponent with specific kind in ICalComponent.

`component` : | A ICalComponent.
`kind` : | A ICalComponentKind.
Returns : | The first ICalComponent. [transfer full]

Since 1.0

### i_cal_component_get_next_component ()

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

Get the next ICalComponent with specific kind in ICalComponent.

`component` : | A ICalComponent.
`kind` : | A ICalComponentKind.
Returns : | The next ICalComponent. [transfer full]

Since 1.0

### i_cal_component_begin_component ()

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

Get the ICalCompIter pointing to the first child ICalComponent. Use ICalCompIter when you need remove the child component from the parent. For traversing, i_cal_object_set_owner needs to be called after this API. See component.py in tests for details.

`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);

Get the ICalCompIter pointing to the end child ICalComponent. Use ICalCompIter when you need remove the child component from the parent. For traversing, i_cal_object_set_owner needs to be called after this API. See component.py in tests for details.

`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);

Get the next ICalComponent pointed by ICalCompIter. Use ICalCompIter when you need remove the child component from the parent. For traversing, i_cal_object_set_owner needs to be called after this API. See component.py in tests for details.

`i` : | A ICalCompIter.
Returns : | A ICalCompIter. [transfer full]

Since 1.0

### i_cal_comp_iter_prior ()

    ICalComponent *     i_cal_comp_iter_prior               (ICalCompIter *i);

Get the prior ICalComponent pointed by ICalCompIter. Use ICalCompIter when you need remove the child component from the parent. For traversing, i_cal_object_set_owner needs to be called after this API. See component.py in tests for details.

`i` : | A ICalCompIter.
Returns : | A ICalCompIter. [transfer full]

Since 1.0

### i_cal_comp_iter_deref ()

    ICalComponent *     i_cal_comp_iter_deref               (ICalCompIter *i);

Get the current ICalComponent pointed by ICalCompIter. Use ICalCompIter when you need remove the child component from the parent. For traversing, i_cal_object_set_owner needs to be called after this API. See component.py in tests for details.

`i` : | A ICalCompIter.
Returns : | A ICalComponent. [transfer full]

Since 1.0

### i_cal_component_check_restrictions ()

    gint                i_cal_component_check_restrictions  (ICalComponent *comp);

Check the number of restrictions in ICalComponent

`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);

Count the number of errors in ICalComponent.

`comp` : | A ICalComponent
Returns : | The count of errors.

Since 1.0

### i_cal_component_strip_errors ()

    void                i_cal_component_strip_errors        (ICalComponent *comp);

Remove all X-LIC-ERROR properties.

`comp` : | A ICalComponent

Since 1.0

### i_cal_component_convert_errors ()

    void                i_cal_component_convert_errors      (ICalComponent *comp);

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

`comp` : | A ICalComponent

Since 1.0

### i_cal_component_kind_is_valid ()

    gint                i_cal_component_kind_is_valid       (const ICalComponentKind kind);

Check if a ICalComponentKind is valid.

`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_string_to_kind ()

    ICalComponentKind   i_cal_component_string_to_kind      (const gchar *string);

Convert a string to a ICalComponentKind.

`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);

Convert a ICalComponentKind to a string.

`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: Return a reference to the first VEVENT, VTODO or VJOURNAL.

`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: report the start and end times of an event in UTC

`comp` : | A ICalComponent
Returns : | A ICalTimeSpan. [transfer full]

Since 1.0

### i_cal_component_set_dtstart ()

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

Set the dtstart of the ICalComponent.

`comp` : | A ICalComponent.
`v` : | A ICalTimetype.

Since 1.0

### i_cal_component_get_dtstart ()

    ICalTimetype *      i_cal_component_get_dtstart         (ICalComponent *comp);

Get the dtstart of the ICalComponent.

`comp` : | A ICalComponent.
Returns : | A ICalTimetype. [transfer full]

Since 1.0

### i_cal_component_set_dtend ()

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

Set the dtend of the ICalComponent.

`comp` : | A ICalComponent.
`v` : | A ICalTimetype.

Since 1.0

### i_cal_component_get_dtend ()

    ICalTimetype *      i_cal_component_get_dtend           (ICalComponent *comp);

Get the dtend of the ICalComponent.

`comp` : | A ICalComponent.
Returns : | A ICalTimetype. [transfer full]

Since 1.0

### i_cal_component_set_due ()

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

Set the due of the ICalComponent.

`comp` : | A ICalComponent.
`v` : | A ICalTimetype.

Since 1.0

### i_cal_component_get_due ()

    ICalTimetype *      i_cal_component_get_due             (ICalComponent *comp);

Get the due of the ICalComponent.

`comp` : | A ICalComponent.
Returns : | A ICalTimetype. [transfer full]

Since 1.0

### i_cal_component_set_duration ()

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

Set the duration of the ICalComponent.

`comp` : | A ICalComponent.
`v` : | A ICalDurationType.

Since 1.0

### i_cal_component_get_duration ()

    ICalDurationType *  i_cal_component_get_duration        (ICalComponent *comp);

Get the duration of the ICalComponent.

`comp` : | A ICalComponent.
Returns : | A ICalDurationType. [transfer full]

Since 1.0

### i_cal_component_set_method ()

    void                i_cal_component_set_method          (ICalComponent *comp,
                                                             ICalPropertyMethod method);

Set the method of the ICalComponent.

`comp` : | A ICalComponent.
`method` : | A ICalPropertyMethod.

Since 1.0

### i_cal_component_get_method ()

    ICalPropertyMethod  i_cal_component_get_method          (ICalComponent *comp);

Get the method of the ICalComponent.

`comp` : | A ICalComponent.
Returns : | A ICalPropertyMethod.

Since 1.0

### i_cal_component_set_dtstamp ()

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

Set the dtstamp of the ICalComponent.

`comp` : | A ICalComponent.
`v` : | A ICalTimetype.

Since 1.0

### i_cal_component_get_dtstamp ()

    ICalTimetype *      i_cal_component_get_dtstamp         (ICalComponent *comp);

Get the dtstamp of the ICalComponent.

`comp` : | A ICalComponent.
Returns : | A ICalTimetype. [transfer full]

Since 1.0

### i_cal_component_set_summary ()

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

Set the summary of the ICalComponent.

`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);

Get the summary of the ICalComponent.

`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);

Set the comment of the ICalComponent.

`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);

Get the comment of the ICalComponent.

`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);

Set the uid of the ICalComponent.

`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);

Get the uid of the ICalComponent.

`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);

Set the relcalid of the ICalComponent.

`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);

Get the relcalid of the ICalComponent.

`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,
                                                             ICalTimetype *v);

Set the recurrenceid of the ICalComponent.

`comp` : | A ICalComponent.
`v` : | A ICalTimetype.

Since 1.0

### i_cal_component_get_recurrenceid ()

    ICalTimetype *      i_cal_component_get_recurrenceid    (ICalComponent *comp);

Get the recurrenceid of the ICalComponent.

`comp` : | A ICalComponent.
Returns : | A ICalTimetype. [transfer full]

Since 1.0

### i_cal_component_set_description ()

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

Set the description of the ICalComponent.

`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);

Get the description of the ICalComponent.

`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);

Set the location of the ICalComponent.

`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);

Get the location of the ICalComponent.

`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);

Set the sequence of the ICalComponent.

`comp` : | A ICalComponent.
`v` : | The sequence number.

Since 1.0

### i_cal_component_get_sequence ()

    gint                i_cal_component_get_sequence        (ICalComponent *comp);

Get the sequence of the ICalComponent.

`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);

Set the status of the ICalComponent.

`comp` : | A ICalComponent.
`status` : | A ICalPropertyStatus.

Since 1.0

### i_cal_component_get_status ()

    ICalPropertyStatus  i_cal_component_get_status          (ICalComponent *comp);

Get the status of the ICalComponent.

`comp` : | A ICalComponent.
Returns : | A ICalPropertyStatus.

Since 1.0

### i_cal_component_foreach_tzid ()

    void                i_cal_component_foreach_tzid        (ICalComponent *comp,
                                                             void (*callback) (ICalParameter *param, void *data),
                                                             void *callback_data);

Apply the same manipulation on every tzid in ICalComponent. It cannot be used by Python yet. For convenience, a python version of this API is defined in tests/component.py.

`comp` : | The ICalComponent to be queried.
`callback` : | The callback function.
`callback_data` : | The data for callback function. [allow-none]

Since 1.0

### 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.

`comp` : | A ICalComponent.
`tzid` : | A string representing timezone.
Returns : | A ICalTimezone. [transfer full][allow-none]

Since 1.0

### i_cal_property_recurrence_is_excluded ()

    gint                i_cal_property_recurrence_is_excluded
                                                            (ICalComponent *comp,
                                                             ICalTimetype *dtstart,
                                                             ICalTimetype *recurtime);

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

`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);

Create 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);

Create 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);

Create 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);

Create 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);

Create 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);

Create 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);

Create 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);

Create 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);

Create 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);

Create 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);

Create a ICalComponent with the type to be vquery

Returns : | The newly created ICalComponent. [transfer full]

Since 1.0