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.