Creates a new #ICalComponent with specific type.
Deeply clone a #ICalComponent.
Creates a new #ICalComponent based on a string.
Creates a new #ICalComponent based on name of x property.
Frees a #ICalComponent.
Converts a #ICalComponent to a string.
Checks whether #ICalComponent is valid.
Gets the type of #ICalComponent.
Checks whether the native part of #ICalComponent is icalcomponent.
Adds an #ICalProperty into #ICalComponent.
Adds the @property into the @component and unrefs the @property.
g_return_if_fail(I_CAL_IS_COMPONENT(component));
g_return_if_fail(I_CAL_IS_PROPERTY(property));
i_cal_component_add_property(component, property);
g_object_unref(property);
Removes #ICalProperty from #ICalComponent. Caution: The compare is based on address. So you must use the original #ICalProperty as the target.
Counts the number of #ICalProperty in #ICalComponent.
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.
Sets the parent #ICalComponent of the specified #ICalProperty.
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.
Gets the current #ICalProperty in #ICalComponent.
Gets the first #ICalProperty with specific kind in #ICalComponent.
Gets the next #ICalProperty with specific kind in #ICalComponent.
Returns the first VEVENT, VTODO or VJOURNAL sub-component of cop, or comp if it is one of those types.
Adds a #ICalComponent into another #ICalComponent as a child component.
Adds the @child into the @parent as a child component and unrefs the @child.
g_return_if_fail(I_CAL_IS_COMPONENT(parent));
g_return_if_fail(I_CAL_IS_COMPONENT(child));
i_cal_component_add_component(parent, child);
g_object_unref(child);
Removes a child #ICalComponent from another #ICalComponent.
Counts the child #ICalComponent with the target kind in the parent one.
Gets the parent component of the @component.
Sets the @parent #ICalComponent of the specified @component.
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.
Gets the current #ICalComponent in #ICalComponent.
Gets the first #ICalComponent with specific kind in #ICalComponent.
Gets the next #ICalComponent with specific kind in #ICalComponent.
Gets the #ICalCompIter pointing to the first child #ICalComponent.
ICalCompIter *iter;
g_return_val_if_fail (I_CAL_IS_COMPONENT (component), NULL);
iter = i_cal_comp_iter_new_full(icalcomponent_begin_component((icalcomponent *)i_cal_object_get_native(I_CAL_OBJECT (component)), (icalcomponent_kind) (kind)));
if (iter) {
i_cal_object_set_owner(I_CAL_OBJECT(iter), G_OBJECT(component));
i_cal_object_set_always_destroy(I_CAL_OBJECT(iter), TRUE);
}
return iter;
Gets the #ICalCompIter pointing to the end child #ICalComponent.
ICalCompIter *iter;
g_return_val_if_fail (I_CAL_IS_COMPONENT (component), NULL);
iter = i_cal_comp_iter_new_full(icalcomponent_end_component((icalcomponent *)i_cal_object_get_native(I_CAL_OBJECT (component)), (icalcomponent_kind) (kind)));
if (iter) {
i_cal_object_set_owner(I_CAL_OBJECT(iter), G_OBJECT(component));
i_cal_object_set_always_destroy(I_CAL_OBJECT(iter), TRUE);
}
return iter;
Gets the next #ICalComponent pointed by #ICalCompIter.
ICalComponent *comp;
g_return_val_if_fail (I_CAL_IS_COMP_ITER (i), NULL);
comp = i_cal_component_new_full(icalcompiter_next((struct icalcompiter *)i_cal_object_get_native(I_CAL_OBJECT (i))), NULL);
if (comp) {
GObject *owner = i_cal_object_ref_owner(I_CAL_OBJECT(i));
i_cal_object_set_owner(I_CAL_OBJECT(comp), owner);
g_clear_object(&owner);
}
return comp;
Gets the prior #ICalComponent pointed by #ICalCompIter.
ICalComponent *comp;
g_return_val_if_fail (I_CAL_IS_COMP_ITER (i), NULL);
comp = i_cal_component_new_full(icalcompiter_prior((struct icalcompiter *)i_cal_object_get_native(I_CAL_OBJECT (i))), NULL);
if (comp) {
GObject *owner = i_cal_object_ref_owner(I_CAL_OBJECT(i));
i_cal_object_set_owner(I_CAL_OBJECT(comp), owner);
g_clear_object(&owner);
}
return comp;
Gets the current #ICalComponent pointed by #ICalCompIter.
ICalComponent *comp;
g_return_val_if_fail (I_CAL_IS_COMP_ITER (i), NULL);
comp = i_cal_component_new_full(icalcompiter_deref((struct icalcompiter *)i_cal_object_get_native(I_CAL_OBJECT (i))), NULL);
if (comp) {
GObject *owner = i_cal_object_ref_owner(I_CAL_OBJECT(i));
i_cal_object_set_owner(I_CAL_OBJECT(comp), owner);
g_clear_object(&owner);
}
return comp;
Checks the number of restrictions in #ICalComponent.
Counts the number of errors in #ICalComponent.
Removes all X-LIC-ERROR properties.
Converts some X-LIC-ERROR properties into RETURN-STATUS properties.
Checks if a #ICalComponentKind is valid.
Converts a string to a #ICalComponentKind.
Converts a #ICalComponentKind to a string.
For VCOMPONENT: Returns a reference to the first VEVENT, VTODO or VJOURNAL.
For VEVENT, VTODO, VJOURNAL and VTIMEZONE: reports the start and end times of an event in UTC.
Sets the dtstart of the #ICalComponent.
Gets the dtstart of the #ICalComponent.
Sets the dtend of the #ICalComponent.
Gets the dtend of the #ICalComponent.
Sets the due of the #ICalComponent.
Gets the due of the #ICalComponent.
Sets the duration of the #ICalComponent.
Gets the duration of the #ICalComponent.
Sets the method of the #ICalComponent.
Gets the method of the #ICalComponent.
Sets the dtstamp of the #ICalComponent.
Gets the dtstamp of the #ICalComponent.
Sets the summary of the #ICalComponent.
Gets the summary of the #ICalComponent.
Sets the comment of the #ICalComponent.
Gets the comment of the #ICalComponent.
Sets the uid of the #ICalComponent.
Gets the uid of the #ICalComponent.
Sets the relcalid of the #ICalComponent.
Gets the relcalid of the #ICalComponent.
Sets the recurrenceid of the #ICalComponent.
Gets the recurrenceid of the #ICalComponent.
Sets the description of the #ICalComponent.
Gets the description of the #ICalComponent.
Sets the location of the #ICalComponent.
Gets the location of the #ICalComponent.
Sets the sequence of the #ICalComponent.
Gets the sequence of the #ICalComponent.
Sets the status of the #ICalComponent.
Gets the status of the #ICalComponent.
struct ForeachTZIDData {
void (* callback)(ICalParameter *param, void *user_data);
void *user_data;
};
static void foreach_tzid_cb(icalparameter *in_param, void *user_data)
{
ICalParameter *param;
struct ForeachTZIDData *data = user_data;
g_return_if_fail (data != NULL);
param = i_cal_parameter_new_full(in_param, NULL);
(*(data->callback))(param, data->user_data);
i_cal_object_steal_native((ICalObject *) param);
g_object_unref(param);
}
Applies the same manipulation on every tzid in #ICalComponent.
struct ForeachTZIDData data;
icalcomponent *native_comp;
g_return_if_fail (I_CAL_IS_COMPONENT (comp));
g_return_if_fail (callback != NULL);
native_comp = i_cal_object_get_native((ICalObject *) comp);
g_return_if_fail (native_comp != NULL);
data.callback = callback;
data.user_data = user_data;
icalcomponent_foreach_tzid(native_comp, foreach_tzid_cb, &data);
struct ForeachRecurrenceData {
ICalComponent *comp;
void (* callback)(ICalComponent *comp, ICalTimeSpan *span, void *user_data);
void *user_data;
};
static void foreach_recurrence_cb(icalcomponent *in_comp, struct icaltime_span *in_span, void *user_data)
{
ICalTimeSpan *span;
struct ForeachRecurrenceData *data = user_data;
g_return_if_fail (data != NULL);
g_return_if_fail (in_span != NULL);
g_warn_if_fail (i_cal_object_get_native ((ICalObject *)data->comp) == (gpointer) in_comp);
span = i_cal_time_span_new_full(*in_span);
(*(data->callback))(data->comp, span, data->user_data);
g_object_unref(span);
}
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.
struct ForeachRecurrenceData data;
icalcomponent *native_comp;
struct icaltimetype *native_start, *native_end;
g_return_if_fail (I_CAL_IS_COMPONENT (comp));
g_return_if_fail (I_CAL_IS_TIME(start));
g_return_if_fail (I_CAL_IS_TIME(end));
g_return_if_fail (callback != NULL);
native_comp = i_cal_object_get_native((ICalObject *) comp);
native_start = i_cal_object_get_native((ICalObject *) start);
native_end = i_cal_object_get_native((ICalObject *) end);
g_return_if_fail (native_comp != NULL);
g_return_if_fail (native_start != NULL);
g_return_if_fail (native_end != NULL);
data.comp = comp;
data.callback = callback;
data.user_data = user_data;
icalcomponent_foreach_recurrence(native_comp, *native_start, *native_end, foreach_recurrence_cb, &data);
Returns the icaltimezone in the component corresponding to the TZID, or NULL if it can't be found.
Decides if this recurrence is acceptable. This function decides if a specific recurrence value is excluded by EXRULE or EXDATE properties.
Creates a #ICalComponent with the type to be vcalendar.
Creates a #ICalComponent with the type to be vevent.
Creates a #ICalComponent with the type to be vtodo.
Creates a #ICalComponent with the type to be vjournal.
Creates a #ICalComponent with the type to be valarm.
Creates a #ICalComponent with the type to be vfreebusy.
Creates a #ICalComponent with the type to be vtimezone.
Creates a #ICalComponent with the type to be xstandard.
Creates a #ICalComponent with the type to be xdaylight.
Creates a #ICalComponent with the type to be vagenda.
Creates a #ICalComponent with the type to be vquery.
Creates a #ICalComponent with the type to be vavailability.
Creates a #ICalComponent with the type to be xavailable.
Creates a #ICalComponent with the type to be vpoll.
Creates a #ICalComponent with the type to be vvoter.
Creates a #ICalComponent with the type to be xvote.