<?xml version="1.0"?>
<!-- This file was automatically generated from C sources - DO NOT EDIT!
To affect the contents of this file, edit the original C definitions,
and/or use gtk-doc annotations.  -->
<repository version="1.2"
            xmlns="http://www.gtk.org/introspection/core/1.0"
            xmlns:c="http://www.gtk.org/introspection/c/1.0"
            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
  <include name="EDataServer" version="1.2"/>
  <include name="GLib" version="2.0"/>
  <include name="GObject" version="2.0"/>
  <include name="Gio" version="2.0"/>
  <include name="libxml2" version="2.0"/>
  <package name="libecal-1.2"/>
  <c:include name="libecal/libecal.h"/>
  <namespace name="ECalendar"
             version="1.2"
             shared-library="libecal-1.2.so.14.0,libedataserver-1.2.so.17.0,libcamel-1.2.so.34.0"
             c:identifier-prefixes="E"
             c:symbol-prefixes="e">
    <class name="Cal"
           c:symbol-prefix="cal"
           c:type="ECal"
           parent="GObject.Object"
           glib:type-name="ECal"
           glib:get-type="e_cal_get_type"
           glib:type-struct="CalClass">
      <constructor name="new"
                   c:identifier="e_cal_new"
                   deprecated="Use e_cal_client_new() instead."
                   deprecated-version="3.2">
        <doc xml:whitespace="preserve">Creates a new calendar client. This does not open the calendar itself,
for that, e_cal_open() or e_cal_open_async() needs to be called.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">A newly-created calendar client, or NULL if the client could not be constructed because it could not contact the calendar server.</doc>
          <type name="Cal" c:type="ECal*"/>
        </return-value>
        <parameters>
          <parameter name="source" transfer-ownership="none">
            <doc xml:whitespace="preserve">An #ESource to be used for the client.</doc>
            <type name="EDataServer.Source" c:type="ESource*"/>
          </parameter>
          <parameter name="type" transfer-ownership="none">
            <doc xml:whitespace="preserve">Type of the client.</doc>
            <type name="CalSourceType" c:type="ECalSourceType"/>
          </parameter>
        </parameters>
      </constructor>
      <function name="check_timezones"
                c:identifier="e_cal_check_timezones"
                version="2.24"
                introspectable="0"
                deprecated="Use e_cal_client_check_timezones() instead."
                deprecated-version="3.2"
                throws="1">
        <doc xml:whitespace="preserve">This function cleans up VEVENT, VJOURNAL, VTODO and VTIMEZONE
items which are to be imported into Evolution.

Using VTIMEZONE definitions is problematic because they cannot be
updated properly when timezone definitions change. They are also
incomplete (for compatibility reason only one set of rules for
summer saving changes can be included, even if different rules
apply in different years). This function looks for matches of the
used TZIDs against system timezones and replaces such TZIDs with
the corresponding system timezone. This works for TZIDs containing
a location (found via a fuzzy string search) and for Outlook TZIDs
(via a hard-coded lookup table).

Some programs generate broken meeting invitations with TZID, but
without including the corresponding VTIMEZONE. Importing such
invitations unchanged causes problems later on (meeting displayed
incorrectly, e_cal_get_component_as_string() fails). The situation
where this occurred in the past (found by a SyncEvolution user) is
now handled via the location based mapping.

If this mapping fails, this function also deals with VTIMEZONE
conflicts: such conflicts occur when the calendar already contains
an old VTIMEZONE definition with the same TZID, but different
summer saving rules. Replacing the VTIMEZONE potentially breaks
displaying of old events, whereas not replacing it breaks the new
events (the behavior in Evolution &lt;= 2.22.1).

The way this problem is resolved is by renaming the new VTIMEZONE
definition until the TZID is unique. A running count is appended to
the TZID. All items referencing the renamed TZID are adapted
accordingly.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if successful, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="comp" transfer-ownership="none">
            <doc xml:whitespace="preserve">a VCALENDAR containing a list of VTIMEZONE and arbitrary other components, in arbitrary order: these other components are modified by this call</doc>
            <type c:type="icalcomponent*"/>
          </parameter>
          <parameter name="comps" transfer-ownership="none" allow-none="1">
            <doc xml:whitespace="preserve">a list of #icalcomponent instances which also have to be patched; may be %NULL</doc>
            <type name="GLib.List" c:type="GList*">
              <type c:type="icalcomponent"/>
            </type>
          </parameter>
          <parameter name="tzlookup" transfer-ownership="none" allow-none="1">
            <doc xml:whitespace="preserve">a callback function which is called to retrieve a calendar's VTIMEZONE definition; the returned definition is *not* freed by e_cal_check_timezones() (to be compatible with e_cal_get_timezone()); %NULL indicates that no such timezone exists or an error occurred</doc>
            <type name="gpointer" c:type="gpointer*"/>
          </parameter>
          <parameter name="custom" transfer-ownership="none">
            <doc xml:whitespace="preserve">an arbitrary pointer which is passed through to the tzlookup function</doc>
            <type name="gpointer" c:type="gconstpointer"/>
          </parameter>
        </parameters>
      </function>
      <function name="free_alarms"
                c:identifier="e_cal_free_alarms"
                introspectable="0"
                deprecated="This function has been dropped completely."
                deprecated-version="3.2">
        <doc xml:whitespace="preserve">Frees a list of #ECalComponentAlarms structures as returned by
e_cal_get_alarms_in_range().</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="comp_alarms" transfer-ownership="none">
            <doc xml:whitespace="preserve">A list of #ECalComponentAlarms structures.</doc>
            <type name="GLib.SList" c:type="GSList*">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </function>
      <function name="free_change_list"
                c:identifier="e_cal_free_change_list"
                introspectable="0"
                deprecated="Use () instead."
                deprecated-version="3.2">
        <doc xml:whitespace="preserve">Free a list of changes as returned by e_cal_get_changes().</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="list" transfer-ownership="none">
            <doc xml:whitespace="preserve">List of changes to be freed.</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </function>
      <function name="free_object_list"
                c:identifier="e_cal_free_object_list"
                introspectable="0"
                deprecated="Use e_cal_client_free_icalcomp_slist() instead."
                deprecated-version="3.2">
        <doc xml:whitespace="preserve">Frees a list of objects as returned by e_cal_get_object_list().</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="objects" transfer-ownership="none">
            <doc xml:whitespace="preserve">List of objects to be freed.</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </function>
      <function name="get_error_message"
                c:identifier="e_cal_get_error_message"
                deprecated="Use e_cal_client_error_to_string() instead."
                deprecated-version="3.2">
        <doc xml:whitespace="preserve">Gets an error message for the given status code.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the error message.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <parameter name="status" transfer-ownership="none">
            <doc xml:whitespace="preserve">A status code.</doc>
            <type name="CalendarStatus" c:type="ECalendarStatus"/>
          </parameter>
        </parameters>
      </function>
      <function name="marshal_VOID__ENUM_ENUM"
                c:identifier="e_cal_marshal_VOID__ENUM_ENUM">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="closure" transfer-ownership="none">
            <type name="GObject.Closure" c:type="GClosure*"/>
          </parameter>
          <parameter name="return_value" transfer-ownership="none">
            <type name="GObject.Value" c:type="GValue*"/>
          </parameter>
          <parameter name="n_param_values" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="param_values" transfer-ownership="none">
            <type name="GObject.Value" c:type="const GValue*"/>
          </parameter>
          <parameter name="invocation_hint" transfer-ownership="none">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="marshal_data" transfer-ownership="none">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </function>
      <function name="marshal_VOID__STRING_UINT"
                c:identifier="e_cal_marshal_VOID__STRING_UINT">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="closure" transfer-ownership="none">
            <type name="GObject.Closure" c:type="GClosure*"/>
          </parameter>
          <parameter name="return_value" transfer-ownership="none">
            <type name="GObject.Value" c:type="GValue*"/>
          </parameter>
          <parameter name="n_param_values" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="param_values" transfer-ownership="none">
            <type name="GObject.Value" c:type="const GValue*"/>
          </parameter>
          <parameter name="invocation_hint" transfer-ownership="none">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="marshal_data" transfer-ownership="none">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </function>
      <function name="marshal_VOID__UINT_STRING"
                c:identifier="e_cal_marshal_VOID__UINT_STRING">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="closure" transfer-ownership="none">
            <type name="GObject.Closure" c:type="GClosure*"/>
          </parameter>
          <parameter name="return_value" transfer-ownership="none">
            <type name="GObject.Value" c:type="GValue*"/>
          </parameter>
          <parameter name="n_param_values" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="param_values" transfer-ownership="none">
            <type name="GObject.Value" c:type="const GValue*"/>
          </parameter>
          <parameter name="invocation_hint" transfer-ownership="none">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="marshal_data" transfer-ownership="none">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </function>
      <function name="match_tzid"
                c:identifier="e_cal_match_tzid"
                version="2.24">
        <doc xml:whitespace="preserve">Matches @tzid against the system timezone definitions
and returns the matching TZID, or %NULL if none found</doc>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <parameter name="tzid" transfer-ownership="none">
            <doc xml:whitespace="preserve">a timezone ID</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </function>
      <function name="recur_ensure_end_dates"
                c:identifier="e_cal_recur_ensure_end_dates"
                version="2.32"
                introspectable="0">
        <doc xml:whitespace="preserve">This recalculates the end dates for recurrence &amp; exception rules which use
the COUNT property. If @refresh is %TRUE it will recalculate all enddates
for rules which use COUNT. If @refresh is %FALSE, it will only calculate
the enddate if it hasn't already been set. It returns %TRUE if the component
was changed, i.e. if the component should be saved at some point.
We store the enddate in the "X-EVOLUTION-ENDDATE" parameter of the RRULE
or EXRULE.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if the component was changed, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="comp" transfer-ownership="none">
            <doc xml:whitespace="preserve">an #ECalComponent</doc>
            <type name="CalComponent" c:type="ECalComponent*"/>
          </parameter>
          <parameter name="refresh" transfer-ownership="none">
            <doc xml:whitespace="preserve">%TRUE to recalculate all end dates</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="tz_cb"
                     transfer-ownership="none"
                     scope="call"
                     closure="3">
            <doc xml:whitespace="preserve">function to call to resolve timezones</doc>
            <type name="CalRecurResolveTimezoneFn"
                  c:type="ECalRecurResolveTimezoneFn"/>
          </parameter>
          <parameter name="tz_cb_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">data to pass to @tz_cb</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </function>
      <function name="recur_generate_instances"
                c:identifier="e_cal_recur_generate_instances"
                introspectable="0">
        <doc xml:whitespace="preserve">Calls the given callback function for each occurrence of the event that
intersects the range between the given @start and @end times (the end time is
not included). Note that the occurrences may start before the given start
time.

If the callback routine returns FALSE the occurrence generation stops.

Both start and end can be -1, in which case we start at the events first
instance and continue until it ends, or forever if it has no enddate.

The tz_cb is used to resolve references to timezones. It is passed a TZID
and should return the icaltimezone* corresponding to that TZID. We need to
do this as we access timezones in different ways on the client &amp; server.

The default_timezone argument is used for DTSTART or DTEND properties that
are DATE values or do not have a TZID (i.e. floating times).</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="comp" transfer-ownership="none">
            <doc xml:whitespace="preserve">A calendar component object</doc>
            <type name="CalComponent" c:type="ECalComponent*"/>
          </parameter>
          <parameter name="start" transfer-ownership="none">
            <doc xml:whitespace="preserve">Range start time</doc>
            <type name="glong" c:type="time_t"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:whitespace="preserve">Range end time</doc>
            <type name="glong" c:type="time_t"/>
          </parameter>
          <parameter name="cb"
                     transfer-ownership="none"
                     scope="call"
                     closure="4">
            <doc xml:whitespace="preserve">Callback function</doc>
            <type name="CalRecurInstanceFn" c:type="ECalRecurInstanceFn"/>
          </parameter>
          <parameter name="cb_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">Closure data for the callback function</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="tz_cb"
                     transfer-ownership="none"
                     scope="call"
                     closure="6">
            <doc xml:whitespace="preserve">Callback for retrieving timezones</doc>
            <type name="CalRecurResolveTimezoneFn"
                  c:type="ECalRecurResolveTimezoneFn"/>
          </parameter>
          <parameter name="tz_cb_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">Closure data for the timezone callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="default_timezone" transfer-ownership="none">
            <doc xml:whitespace="preserve">Default timezone to use when a timezone cannot be found</doc>
            <type c:type="icaltimezone*"/>
          </parameter>
        </parameters>
      </function>
      <function name="recur_obtain_enddate"
                c:identifier="e_cal_recur_obtain_enddate"
                introspectable="0">
        <return-value transfer-ownership="none">
          <type name="glong" c:type="time_t"/>
        </return-value>
        <parameters>
          <parameter name="ir" transfer-ownership="none">
            <type name="gpointer" c:type="icalrecurrencetype*"/>
          </parameter>
          <parameter name="prop" transfer-ownership="none">
            <type c:type="icalproperty*"/>
          </parameter>
          <parameter name="zone" transfer-ownership="none">
            <type c:type="icaltimezone*"/>
          </parameter>
          <parameter name="convert_end_date" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </function>
      <function name="resolve_tzid_cb"
                c:identifier="e_cal_resolve_tzid_cb"
                introspectable="0"
                deprecated="Use e_cal_client_resolve_tzid_cb() instead."
                deprecated-version="3.2">
        <doc xml:whitespace="preserve">Resolves TZIDs for the recurrence generator.</doc>
        <return-value>
          <doc xml:whitespace="preserve">The timezone identified by the @tzid argument, or %NULL if it could not be found.</doc>
          <type c:type="icaltimezone*"/>
        </return-value>
        <parameters>
          <parameter name="tzid" transfer-ownership="none">
            <doc xml:whitespace="preserve">ID of the timezone to resolve.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="data" transfer-ownership="none">
            <doc xml:whitespace="preserve">Closure data for the callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </function>
      <function name="system_timezone_get_location"
                c:identifier="e_cal_system_timezone_get_location"
                version="2.28">
        <doc xml:whitespace="preserve">Returns system timezone location string, NULL on an error.
Returned pointer should be freed with g_free().

Note: Since 3.4 the returned timezone location is either NULL or
an equivalent within known libical timezones.</doc>
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </function>
      <function name="tzlookup_ecal"
                c:identifier="e_cal_tzlookup_ecal"
                version="2.24"
                introspectable="0"
                deprecated="Use e_cal_client_tzlookup() instead."
                deprecated-version="3.2"
                throws="1">
        <doc xml:whitespace="preserve">An implementation of the tzlookup callback which clients
can use. Calls e_cal_get_timezone().</doc>
        <return-value>
          <type c:type="icaltimezone*"/>
        </return-value>
        <parameters>
          <parameter name="tzid" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="custom" transfer-ownership="none">
            <doc xml:whitespace="preserve">must be a valid ECal pointer</doc>
            <type name="gpointer" c:type="gconstpointer"/>
          </parameter>
        </parameters>
      </function>
      <function name="tzlookup_icomp"
                c:identifier="e_cal_tzlookup_icomp"
                version="2.24"
                introspectable="0"
                deprecated="Use e_cal_client_tzlookup_icomp() instead."
                deprecated-version="3.2"
                throws="1">
        <doc xml:whitespace="preserve">An implementation of the tzlookup callback which backends
like the file backend can use. Searches for the timezone
in the component list.</doc>
        <return-value>
          <type c:type="icaltimezone*"/>
        </return-value>
        <parameters>
          <parameter name="tzid" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="custom" transfer-ownership="none">
            <doc xml:whitespace="preserve">must be a icalcomponent pointer which contains either a VCALENDAR with VTIMEZONEs or VTIMEZONES directly</doc>
            <type name="gpointer" c:type="gconstpointer"/>
          </parameter>
        </parameters>
      </function>
      <function name="util_add_timezones_from_component"
                c:identifier="e_cal_util_add_timezones_from_component"
                introspectable="0">
        <doc xml:whitespace="preserve">Adds VTIMEZONE components to a VCALENDAR for all tzid's
in the given @icalcomp.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="vcal_comp" transfer-ownership="none">
            <doc xml:whitespace="preserve">A VCALENDAR component.</doc>
            <type c:type="icalcomponent*"/>
          </parameter>
          <parameter name="icalcomp" transfer-ownership="none">
            <doc xml:whitespace="preserve">An iCalendar component, of any type.</doc>
            <type c:type="icalcomponent*"/>
          </parameter>
        </parameters>
      </function>
      <function name="util_component_has_alarms"
                c:identifier="e_cal_util_component_has_alarms"
                introspectable="0">
        <doc xml:whitespace="preserve">Checks whether an #icalcomponent has any alarm.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if it has alarms, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="icalcomp" transfer-ownership="none">
            <doc xml:whitespace="preserve">An #icalcomponent.</doc>
            <type c:type="icalcomponent*"/>
          </parameter>
        </parameters>
      </function>
      <function name="util_component_has_attendee"
                c:identifier="e_cal_util_component_has_attendee"
                introspectable="0">
        <doc xml:whitespace="preserve">Checks if an #icalcomponent has any attendees.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if there are attendees, FALSE if not.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="icalcomp" transfer-ownership="none">
            <doc xml:whitespace="preserve">An #icalcomponent.</doc>
            <type c:type="icalcomponent*"/>
          </parameter>
        </parameters>
      </function>
      <function name="util_component_has_organizer"
                c:identifier="e_cal_util_component_has_organizer"
                introspectable="0">
        <doc xml:whitespace="preserve">Checks whether an #icalcomponent has an organizer or not.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if there is an organizer, FALSE if not.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="icalcomp" transfer-ownership="none">
            <doc xml:whitespace="preserve">An #icalcomponent.</doc>
            <type c:type="icalcomponent*"/>
          </parameter>
        </parameters>
      </function>
      <function name="util_component_has_rdates"
                c:identifier="e_cal_util_component_has_rdates"
                introspectable="0">
        <doc xml:whitespace="preserve">Checks if an #icalcomponent has recurrence dates.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if there are recurrence dates, FALSE if not.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="icalcomp" transfer-ownership="none">
            <doc xml:whitespace="preserve">An #icalcomponent.</doc>
            <type c:type="icalcomponent*"/>
          </parameter>
        </parameters>
      </function>
      <function name="util_component_has_recurrences"
                c:identifier="e_cal_util_component_has_recurrences"
                introspectable="0">
        <doc xml:whitespace="preserve">Checks if an #icalcomponent has recurrence dates or rules.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if there are recurrence dates/rules, FALSE if not.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="icalcomp" transfer-ownership="none">
            <doc xml:whitespace="preserve">An #icalcomponent.</doc>
            <type c:type="icalcomponent*"/>
          </parameter>
        </parameters>
      </function>
      <function name="util_component_has_rrules"
                c:identifier="e_cal_util_component_has_rrules"
                introspectable="0">
        <doc xml:whitespace="preserve">Checks if an #icalcomponent has recurrence rules.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if there are recurrence rules, FALSE if not.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="icalcomp" transfer-ownership="none">
            <doc xml:whitespace="preserve">An #icalcomponent.</doc>
            <type c:type="icalcomponent*"/>
          </parameter>
        </parameters>
      </function>
      <function name="util_component_is_instance"
                c:identifier="e_cal_util_component_is_instance"
                introspectable="0">
        <doc xml:whitespace="preserve">Checks whether an #icalcomponent is an instance of a recurring appointment or not.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if it is an instance, FALSE if not.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="icalcomp" transfer-ownership="none">
            <doc xml:whitespace="preserve">An #icalcomponent.</doc>
            <type c:type="icalcomponent*"/>
          </parameter>
        </parameters>
      </function>
      <function name="util_construct_instance"
                c:identifier="e_cal_util_construct_instance"
                introspectable="0">
        <doc xml:whitespace="preserve">This checks that @rid indicates a valid recurrence of @icalcomp, and
if so, generates a copy of @comp containing a RECURRENCE-ID of @rid.</doc>
        <return-value>
          <doc xml:whitespace="preserve">the instance, or %NULL.</doc>
          <type c:type="icalcomponent*"/>
        </return-value>
        <parameters>
          <parameter name="icalcomp" transfer-ownership="none">
            <doc xml:whitespace="preserve">A recurring #icalcomponent</doc>
            <type c:type="icalcomponent*"/>
          </parameter>
          <parameter name="rid" transfer-ownership="none">
            <doc xml:whitespace="preserve">The RECURRENCE-ID to construct a component for</doc>
            <type name="gpointer" c:type="icaltimetype"/>
          </parameter>
        </parameters>
      </function>
      <function name="util_event_dates_match"
                c:identifier="e_cal_util_event_dates_match"
                introspectable="0">
        <doc xml:whitespace="preserve">Compare the dates of two #icalcomponent's to check if they match.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the dates of both components match, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="icalcomp1" transfer-ownership="none">
            <doc xml:whitespace="preserve">An #icalcomponent.</doc>
            <type c:type="icalcomponent*"/>
          </parameter>
          <parameter name="icalcomp2" transfer-ownership="none">
            <doc xml:whitespace="preserve">An #icalcomponent.</doc>
            <type c:type="icalcomponent*"/>
          </parameter>
        </parameters>
      </function>
      <function name="util_generate_alarms_for_comp"
                c:identifier="e_cal_util_generate_alarms_for_comp"
                introspectable="0">
        <doc xml:whitespace="preserve">Generates alarm instances for a calendar component.  Returns the instances
structure, or %NULL if no alarm instances occurred in the specified time
range.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a list of all the alarms found for the given component in the given time range. The list of alarms should be freed by using e_cal_component_free_alarm_list().</doc>
          <type name="CalComponentAlarms" c:type="ECalComponentAlarms*"/>
        </return-value>
        <parameters>
          <parameter name="comp" transfer-ownership="none">
            <doc xml:whitespace="preserve">The #ECalComponent to generate alarms from</doc>
            <type name="CalComponent" c:type="ECalComponent*"/>
          </parameter>
          <parameter name="start" transfer-ownership="none">
            <doc xml:whitespace="preserve">Start time</doc>
            <type name="glong" c:type="time_t"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:whitespace="preserve">End time</doc>
            <type name="glong" c:type="time_t"/>
          </parameter>
          <parameter name="omit" transfer-ownership="none">
            <doc xml:whitespace="preserve">Alarm types to omit</doc>
            <type name="CalComponentAlarmAction"
                  c:type="ECalComponentAlarmAction*"/>
          </parameter>
          <parameter name="resolve_tzid"
                     transfer-ownership="none"
                     scope="call"
                     closure="5">
            <doc xml:whitespace="preserve">Callback for resolving timezones</doc>
            <type name="CalRecurResolveTimezoneFn"
                  c:type="ECalRecurResolveTimezoneFn"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">Data to be passed to the resolve_tzid callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="default_timezone" transfer-ownership="none">
            <doc xml:whitespace="preserve">The timezone used to resolve DATE and floating DATE-TIME values.</doc>
            <type c:type="icaltimezone*"/>
          </parameter>
        </parameters>
      </function>
      <function name="util_generate_alarms_for_list"
                c:identifier="e_cal_util_generate_alarms_for_list"
                introspectable="0">
        <doc xml:whitespace="preserve">Iterates through all the components in the @comps list and generates alarm
instances for them; putting them in the @comp_alarms list.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the number of elements it added to the list</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <parameter name="comps" transfer-ownership="none">
            <doc xml:whitespace="preserve">List of #ECalComponent&lt;!-- --&gt;s</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="CalComponent"/>
            </type>
          </parameter>
          <parameter name="start" transfer-ownership="none">
            <doc xml:whitespace="preserve">Start time</doc>
            <type name="glong" c:type="time_t"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:whitespace="preserve">End time</doc>
            <type name="glong" c:type="time_t"/>
          </parameter>
          <parameter name="omit" transfer-ownership="none">
            <doc xml:whitespace="preserve">Alarm types to omit</doc>
            <type name="CalComponentAlarmAction"
                  c:type="ECalComponentAlarmAction*"/>
          </parameter>
          <parameter name="comp_alarms"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">List to be returned</doc>
            <type name="GLib.SList" c:type="GSList**">
              <type name="CalComponentAlarms"/>
            </type>
          </parameter>
          <parameter name="resolve_tzid"
                     transfer-ownership="none"
                     scope="call"
                     closure="6">
            <doc xml:whitespace="preserve">Callback for resolving timezones</doc>
            <type name="CalRecurResolveTimezoneFn"
                  c:type="ECalRecurResolveTimezoneFn"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">Data to be passed to the resolve_tzid callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="default_timezone" transfer-ownership="none">
            <doc xml:whitespace="preserve">The timezone used to resolve DATE and floating DATE-TIME values.</doc>
            <type c:type="icaltimezone*"/>
          </parameter>
        </parameters>
      </function>
      <function name="util_get_component_occur_times"
                c:identifier="e_cal_util_get_component_occur_times"
                version="2.32"
                introspectable="0">
        <doc xml:whitespace="preserve">Find out when the component starts and stops, being careful about
recurrences.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="comp" transfer-ownership="none">
            <doc xml:whitespace="preserve">an #ECalComponent</doc>
            <type name="CalComponent" c:type="ECalComponent*"/>
          </parameter>
          <parameter name="start"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <type name="glong" c:type="time_t*"/>
          </parameter>
          <parameter name="end"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <type name="glong" c:type="time_t*"/>
          </parameter>
          <parameter name="tz_cb"
                     transfer-ownership="none"
                     scope="call"
                     closure="4">
            <type name="CalRecurResolveTimezoneFn"
                  c:type="ECalRecurResolveTimezoneFn"/>
          </parameter>
          <parameter name="tz_cb_data" transfer-ownership="none">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="default_timezone" transfer-ownership="none">
            <type c:type="const icaltimezone*"/>
          </parameter>
          <parameter name="kind" transfer-ownership="none">
            <type c:type="icalcomponent_kind"/>
          </parameter>
        </parameters>
      </function>
      <function name="util_get_system_timezone"
                c:identifier="e_cal_util_get_system_timezone"
                version="2.28"
                introspectable="0">
        <doc xml:whitespace="preserve">Returns icaltimezone object of the system timezone. NULL on an error.
Returned pointer is part of the built-in timezones, thus do not free it.</doc>
        <return-value>
          <type c:type="icaltimezone*"/>
        </return-value>
      </function>
      <function name="util_get_system_timezone_location"
                c:identifier="e_cal_util_get_system_timezone_location"
                version="2.28">
        <doc xml:whitespace="preserve">Returns system timezone location string, NULL on an error.
Returned pointer should be freed with g_free().</doc>
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </function>
      <function name="util_new_component"
                c:identifier="e_cal_util_new_component"
                introspectable="0">
        <doc xml:whitespace="preserve">Creates a new #icalcomponent of the specified kind.</doc>
        <return-value>
          <doc xml:whitespace="preserve">the newly created component.</doc>
          <type c:type="icalcomponent*"/>
        </return-value>
        <parameters>
          <parameter name="kind" transfer-ownership="none">
            <doc xml:whitespace="preserve">Kind of the component to create.</doc>
            <type c:type="icalcomponent_kind"/>
          </parameter>
        </parameters>
      </function>
      <function name="util_new_top_level"
                c:identifier="e_cal_util_new_top_level"
                introspectable="0">
        <doc xml:whitespace="preserve">Creates a new VCALENDAR component.</doc>
        <return-value>
          <doc xml:whitespace="preserve">the newly created top level component.</doc>
          <type c:type="icalcomponent*"/>
        </return-value>
      </function>
      <function name="util_parse_ics_file"
                c:identifier="e_cal_util_parse_ics_file"
                introspectable="0">
        <doc xml:whitespace="preserve">Parses the given file, and, if it contains a valid iCalendar object,
parse it and return a new #icalcomponent.</doc>
        <return-value>
          <doc xml:whitespace="preserve">a newly created #icalcomponent or NULL if the file doesn't contain a valid iCalendar object.</doc>
          <type c:type="icalcomponent*"/>
        </return-value>
        <parameters>
          <parameter name="filename" transfer-ownership="none">
            <doc xml:whitespace="preserve">Name of the file to be parsed.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </function>
      <function name="util_parse_ics_string"
                c:identifier="e_cal_util_parse_ics_string"
                introspectable="0">
        <doc xml:whitespace="preserve">Parses an iCalendar string and returns a new #icalcomponent representing
that string. Note that this function deals with multiple VCALENDAR's in the
string, something that Mozilla used to do and which libical does not
support.</doc>
        <return-value>
          <doc xml:whitespace="preserve">a newly created #icalcomponent or NULL if the string isn't a valid iCalendar string.</doc>
          <type c:type="icalcomponent*"/>
        </return-value>
        <parameters>
          <parameter name="string" transfer-ownership="none">
            <doc xml:whitespace="preserve">iCalendar string to be parsed.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </function>
      <function name="util_priority_from_string"
                c:identifier="e_cal_util_priority_from_string">
        <doc xml:whitespace="preserve">Converts a translated priority string to an iCalendar priority value.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the priority (0-9) or -1 if the priority string is not valid.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <parameter name="string" transfer-ownership="none">
            <doc xml:whitespace="preserve">A string representing the PRIORITY value.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </function>
      <function name="util_priority_to_string"
                c:identifier="e_cal_util_priority_to_string">
        <doc xml:whitespace="preserve">Converts an iCalendar PRIORITY value to a translated string. Any unknown
priority value (i.e. not 0-9) will be returned as "" (undefined).</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">a string representing the PRIORITY value. This value is a constant, so it should never be freed.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <parameter name="priority" transfer-ownership="none">
            <doc xml:whitespace="preserve">Priority value.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </function>
      <function name="util_remove_instances"
                c:identifier="e_cal_util_remove_instances"
                introspectable="0">
        <doc xml:whitespace="preserve">Removes one or more instances from @comp according to @rid and @mod.

FIXME: should probably have a return value indicating whether or not
@icalcomp still has any instances</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="icalcomp" transfer-ownership="none">
            <doc xml:whitespace="preserve">A (recurring) #icalcomponent</doc>
            <type c:type="icalcomponent*"/>
          </parameter>
          <parameter name="rid" transfer-ownership="none">
            <doc xml:whitespace="preserve">The base RECURRENCE-ID to remove</doc>
            <type name="gpointer" c:type="icaltimetype"/>
          </parameter>
          <parameter name="mod" transfer-ownership="none">
            <doc xml:whitespace="preserve">How to interpret @rid</doc>
            <type c:type="CalObjModType"/>
          </parameter>
        </parameters>
      </function>
      <virtual-method name="backend_died">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="backend_error">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="message" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="cal_opened">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="status" transfer-ownership="none">
            <type name="CalendarStatus" c:type="ECalendarStatus"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="cal_opened_ex">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="error" transfer-ownership="none">
            <type name="GLib.Error" c:type="const GError*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="cal_set_mode" introspectable="0">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="status" transfer-ownership="none">
            <type name="CalSetModeStatus" c:type="ECalSetModeStatus"/>
          </parameter>
          <parameter name="mode" transfer-ownership="none">
            <type c:type="CalMode"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="add_timezone"
              c:identifier="e_cal_add_timezone"
              introspectable="0"
              deprecated="Use e_cal_client_add_timezone_sync() instead."
              deprecated-version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Add a VTIMEZONE object to the given calendar.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if successful, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="izone" transfer-ownership="none">
            <doc xml:whitespace="preserve">The timezone to add.</doc>
            <type c:type="icaltimezone*"/>
          </parameter>
        </parameters>
      </method>
      <method name="create_object"
              c:identifier="e_cal_create_object"
              introspectable="0"
              deprecated="Use e_cal_client_create_object_sync() instead."
              deprecated-version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Requests the calendar backend to create the object specified by the @icalcomp
argument. Some backends would assign a specific UID to the newly created object,
in those cases that UID would be returned in the @uid argument.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the operation was successful, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="icalcomp" transfer-ownership="none">
            <doc xml:whitespace="preserve">The component to create.</doc>
            <type c:type="icalcomponent*"/>
          </parameter>
          <parameter name="uid" transfer-ownership="none">
            <doc xml:whitespace="preserve">Return value for the UID assigned to the new component by the calendar backend.</doc>
            <type name="utf8" c:type="gchar**"/>
          </parameter>
        </parameters>
      </method>
      <method name="discard_alarm"
              c:identifier="e_cal_discard_alarm"
              deprecated="Use e_cal_client_discard_alarm_sync() instead."
              deprecated-version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Tells the calendar backend to get rid of the alarm identified by the
@auid argument in @comp. Some backends might remove the alarm or
update internal information about the alarm be discarded, or, like
the file backend does, ignore the operation.

CALOBJ_MOD_ONLY_THIS is not supported in this call.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the operation was successful, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="comp" transfer-ownership="none">
            <doc xml:whitespace="preserve">The component to discard the alarm from.</doc>
            <type name="CalComponent" c:type="ECalComponent*"/>
          </parameter>
          <parameter name="auid" transfer-ownership="none">
            <doc xml:whitespace="preserve">Unique identifier of the alarm to be discarded.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="generate_instances"
              c:identifier="e_cal_generate_instances"
              introspectable="0"
              deprecated="Use e_cal_client_generate_instances() instead."
              deprecated-version="3.2">
        <doc xml:whitespace="preserve">Does a combination of e_cal_get_object_list() and
e_cal_recur_generate_instances().

The callback function should do a g_object_ref() of the calendar component
it gets passed if it intends to keep it around, since it will be unref'ed
as soon as the callback returns.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="start" transfer-ownership="none">
            <doc xml:whitespace="preserve">Start time for query.</doc>
            <type name="glong" c:type="time_t"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:whitespace="preserve">End time for query.</doc>
            <type name="glong" c:type="time_t"/>
          </parameter>
          <parameter name="cb" transfer-ownership="none" closure="3">
            <doc xml:whitespace="preserve">Callback for each generated instance.</doc>
            <type name="CalRecurInstanceFn" c:type="ECalRecurInstanceFn"/>
          </parameter>
          <parameter name="cb_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">Closure data for the callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="generate_instances_for_object"
              c:identifier="e_cal_generate_instances_for_object"
              introspectable="0"
              deprecated="Use e_cal_client_generate_instances_for_object() instead."
              deprecated-version="3.2">
        <doc xml:whitespace="preserve">Does a combination of e_cal_get_object_list() and
e_cal_recur_generate_instances(), like e_cal_generate_instances(), but
for a single object.

The callback function should do a g_object_ref() of the calendar component
it gets passed if it intends to keep it around, since it will be unref'ed
as soon as the callback returns.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="icalcomp" transfer-ownership="none">
            <doc xml:whitespace="preserve">Object to generate instances from.</doc>
            <type c:type="icalcomponent*"/>
          </parameter>
          <parameter name="start" transfer-ownership="none">
            <doc xml:whitespace="preserve">Start time for query.</doc>
            <type name="glong" c:type="time_t"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:whitespace="preserve">End time for query.</doc>
            <type name="glong" c:type="time_t"/>
          </parameter>
          <parameter name="cb" transfer-ownership="none" closure="4">
            <doc xml:whitespace="preserve">Callback for each generated instance.</doc>
            <type name="CalRecurInstanceFn" c:type="ECalRecurInstanceFn"/>
          </parameter>
          <parameter name="cb_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">Closure data for the callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_alarm_email_address"
              c:identifier="e_cal_get_alarm_email_address"
              deprecated="Use e_client_get_backend_property_sync() with #CAL_BACKEND_PROPERTY_ALARM_EMAIL_ADDRESS instead."
              deprecated-version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Queries the address to be used for alarms in a calendar client.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the operation was successful, FALSE if there was an error while contacting the backend.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="alarm_address" transfer-ownership="none">
            <doc xml:whitespace="preserve">Return value for alarm address.</doc>
            <type name="utf8" c:type="gchar**"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_alarms_for_object"
              c:identifier="e_cal_get_alarms_for_object"
              deprecated="This function has been dropped completely."
              deprecated-version="3.2">
        <doc xml:whitespace="preserve">Queries a calendar for the alarms of a particular object that trigger in the
specified range of time.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE on success, FALSE if the object was not found.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="id" transfer-ownership="none">
            <doc xml:whitespace="preserve">Unique identifier for a calendar component.</doc>
            <type name="CalComponentId" c:type="const ECalComponentId*"/>
          </parameter>
          <parameter name="start" transfer-ownership="none">
            <doc xml:whitespace="preserve">Start time for query.</doc>
            <type name="glong" c:type="time_t"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:whitespace="preserve">End time for query.</doc>
            <type name="glong" c:type="time_t"/>
          </parameter>
          <parameter name="alarms" transfer-ownership="none">
            <doc xml:whitespace="preserve">Return value for the component's alarm instances.  Will return NULL if no instances occur within the specified time range.  This should be freed using the e_cal_component_alarms_free() function.</doc>
            <type name="CalComponentAlarms" c:type="ECalComponentAlarms**"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_alarms_in_range"
              c:identifier="e_cal_get_alarms_in_range"
              introspectable="0"
              deprecated="This function has been dropped completely."
              deprecated-version="3.2">
        <doc xml:whitespace="preserve">Queries a calendar for the alarms that trigger in the specified range of
time.</doc>
        <return-value>
          <doc xml:whitespace="preserve">A list of #ECalComponentAlarms structures.  This should be freed using the e_cal_free_alarms() function, or by freeing each element separately with e_cal_component_alarms_free() and then freeing the list with g_slist_free().</doc>
          <type name="GLib.SList" c:type="GSList*">
            <type name="gpointer" c:type="gpointer"/>
          </type>
        </return-value>
        <parameters>
          <parameter name="start" transfer-ownership="none">
            <doc xml:whitespace="preserve">Start time for query.</doc>
            <type name="glong" c:type="time_t"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:whitespace="preserve">End time for query.</doc>
            <type name="glong" c:type="time_t"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_attachments_for_comp"
              c:identifier="e_cal_get_attachments_for_comp"
              introspectable="0"
              deprecated="Use e_cal_client_get_attachment_uris_sync() instead."
              deprecated-version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Queries a calendar for a calendar component object based on its unique
identifier and gets the attachments for the component.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the call was successful, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="uid" transfer-ownership="none">
            <doc xml:whitespace="preserve">Unique identifier for a calendar component.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="rid" transfer-ownership="none">
            <doc xml:whitespace="preserve">Recurrence identifier.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="list" transfer-ownership="none">
            <doc xml:whitespace="preserve">Return the list of attachment uris.</doc>
            <type name="GLib.SList" c:type="GSList**">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="get_cal_address"
              c:identifier="e_cal_get_cal_address"
              deprecated="Use e_client_get_backend_property_sync() with #CAL_BACKEND_PROPERTY_CAL_EMAIL_ADDRESS instead."
              deprecated-version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Queries the calendar address associated with a calendar client.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the operation was successful, FALSE if there was an error.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="cal_address" transfer-ownership="none">
            <doc xml:whitespace="preserve">Return value for address information.</doc>
            <type name="utf8" c:type="gchar**"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_changes"
              c:identifier="e_cal_get_changes"
              introspectable="0"
              deprecated="This function has been dropped completely."
              deprecated-version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Returns a list of changes made to the calendar since a specific time. That time
is identified by the @change_id argument, which is used by the backend to
compute the changes done.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if the call was successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="change_id" transfer-ownership="none">
            <doc xml:whitespace="preserve">ID to use for comparing changes.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="changes" transfer-ownership="none">
            <doc xml:whitespace="preserve">Return value for the list of changes.</doc>
            <type name="GLib.List" c:type="GList**">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="get_component_as_string"
              c:identifier="e_cal_get_component_as_string"
              introspectable="0"
              deprecated="Use e_cal_client_get_component_as_string() instead."
              deprecated-version="3.2">
        <doc xml:whitespace="preserve">Gets a calendar component as an iCalendar string, with a toplevel
VCALENDAR component and all VTIMEZONEs needed for the component.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">the component as a complete iCalendar string, or NULL on failure. The string should be freed after use.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <parameter name="icalcomp" transfer-ownership="none">
            <doc xml:whitespace="preserve">A calendar component object.</doc>
            <type c:type="icalcomponent*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_default_object"
              c:identifier="e_cal_get_default_object"
              introspectable="0"
              deprecated="Use e_cal_client_get_default_object_sync() instead."
              deprecated-version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Retrives an #icalcomponent from the backend that contains the default
values for properties needed.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the call was successful, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="icalcomp" transfer-ownership="none">
            <doc xml:whitespace="preserve">Return value for the default object.</doc>
            <type c:type="icalcomponent**"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_free_busy"
              c:identifier="e_cal_get_free_busy"
              introspectable="0"
              deprecated="Use e_cal_client_get_free_busy_sync() instead."
              deprecated-version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Gets free/busy information from the calendar server.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the operation was successful, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="users" transfer-ownership="none">
            <doc xml:whitespace="preserve">List of users to retrieve free/busy information for.</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
          <parameter name="start" transfer-ownership="none">
            <doc xml:whitespace="preserve">Start time for query.</doc>
            <type name="glong" c:type="time_t"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:whitespace="preserve">End time for query.</doc>
            <type name="glong" c:type="time_t"/>
          </parameter>
          <parameter name="freebusy" transfer-ownership="none">
            <doc xml:whitespace="preserve">Return value for VFREEBUSY objects.</doc>
            <type name="GLib.List" c:type="GList**">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="get_ldap_attribute"
              c:identifier="e_cal_get_ldap_attribute"
              deprecated="This function has been dropped completely."
              deprecated-version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Queries the LDAP attribute for a calendar client.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the call was successful, FALSE if there was an error contacting the backend.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="ldap_attribute" transfer-ownership="none">
            <doc xml:whitespace="preserve">Return value for the LDAP attribute.</doc>
            <type name="utf8" c:type="gchar**"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_load_state"
              c:identifier="e_cal_get_load_state"
              deprecated="Use e_client_is_opened() on an #ECalClient instead."
              deprecated-version="3.2">
        <doc xml:whitespace="preserve">Queries the state of loading of a calendar client.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">A #ECalLoadState value indicating whether the client has not been loaded with e_cal_open() yet, whether it is being loaded, or whether it is already loaded.</doc>
          <type name="CalLoadState" c:type="ECalLoadState"/>
        </return-value>
      </method>
      <method name="get_local_attachment_store"
              c:identifier="e_cal_get_local_attachment_store"
              deprecated="Use e_cal_client_get_local_attachment_store() instead."
              deprecated-version="3.2">
        <doc xml:whitespace="preserve">Queries the URL where the calendar attachments are
serialized in the local filesystem. This enable clients
to operate with the reference to attachments rather than the data itself
unless it specifically uses the attachments for open/sending
operations.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The URL where the attachments are serialized in the local filesystem.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
      </method>
      <method name="get_object"
              c:identifier="e_cal_get_object"
              introspectable="0"
              deprecated="Use e_cal_client_get_object_sync() instead."
              deprecated-version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Queries a calendar for a calendar component object based on its unique
identifier.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the call was successful, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="uid" transfer-ownership="none">
            <doc xml:whitespace="preserve">Unique identifier for a calendar component.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="rid" transfer-ownership="none">
            <doc xml:whitespace="preserve">Recurrence identifier.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="icalcomp" transfer-ownership="none">
            <doc xml:whitespace="preserve">Return value for the calendar component object.</doc>
            <type c:type="icalcomponent**"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_object_list"
              c:identifier="e_cal_get_object_list"
              deprecated="Use e_cal_client_get_object_list_sync() instead."
              deprecated-version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Gets a list of objects from the calendar that match the query specified
by the @query argument. The objects will be returned in the @objects
argument, which is a list of #icalcomponent. When done, this list
should be freed by using the e_cal_free_object_list() function.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the operation was successful, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="query" transfer-ownership="none">
            <doc xml:whitespace="preserve">Query string.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="objects"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">Return value for list of objects.</doc>
            <type name="GLib.List" c:type="GList**">
              <type name="glong"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="get_object_list_as_comp"
              c:identifier="e_cal_get_object_list_as_comp"
              introspectable="0"
              deprecated="Use e_cal_client_get_object_list_as_comps_sync() instead."
              deprecated-version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Gets a list of objects from the calendar that match the query specified
by the @query argument. The objects will be returned in the @objects
argument, which is a list of #ECalComponent.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the operation was successful, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="query" transfer-ownership="none">
            <doc xml:whitespace="preserve">Query string.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="objects" transfer-ownership="none">
            <doc xml:whitespace="preserve">Return value for list of objects.</doc>
            <type name="GLib.List" c:type="GList**">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="get_objects_for_uid"
              c:identifier="e_cal_get_objects_for_uid"
              introspectable="0"
              deprecated="Use e_cal_client_get_objects_for_uid_sync() instead."
              deprecated-version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Queries a calendar for all calendar components with the given unique
ID. This will return any recurring event and all its detached recurrences.
For non-recurring events, it will just return the object with that ID.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the call was successful, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="uid" transfer-ownership="none">
            <doc xml:whitespace="preserve">Unique identifier for a calendar component.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="objects" transfer-ownership="none">
            <doc xml:whitespace="preserve">Return value for the list of objects obtained from the backend.</doc>
            <type name="GLib.List" c:type="GList**">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="get_one_alarm_only"
              c:identifier="e_cal_get_one_alarm_only"
              deprecated="Use e_cal_client_check_one_alarm_only() instead."
              deprecated-version="3.2">
        <doc xml:whitespace="preserve">Checks if a calendar supports only one alarm per component.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the calendar allows only one alarm, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="get_organizer_must_accept"
              c:identifier="e_cal_get_organizer_must_accept"
              deprecated="Use e_cal_client_check_organizer_must_accept() instead."
              deprecated-version="3.2">
        <doc xml:whitespace="preserve">Checks whether a calendar requires organizer to accept their attendance to
meetings.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the calendar requires organizers to accept, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="get_organizer_must_attend"
              c:identifier="e_cal_get_organizer_must_attend"
              deprecated="Use e_cal_client_check_organizer_must_attend() instead."
              deprecated-version="3.2">
        <doc xml:whitespace="preserve">Checks if a calendar forces organizers of meetings to be also attendees.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the calendar forces organizers to attend meetings, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="get_query"
              c:identifier="e_cal_get_query"
              deprecated="Use e_cal_client_get_view_sync() instead."
              deprecated-version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Creates a live query object from a loaded calendar.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">A query object that will emit notification signals as calendar components are added and removed from the query in the server.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="sexp" transfer-ownership="none">
            <doc xml:whitespace="preserve">S-expression representing the query.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="query"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">Return value for the new query.</doc>
            <type name="CalView" c:type="ECalView**"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_recurrences_no_master"
              c:identifier="e_cal_get_recurrences_no_master"
              deprecated="Use e_cal_client_check_recurrences_no_master() instead."
              deprecated-version="3.2">
        <doc xml:whitespace="preserve">Checks if the calendar has a master object for recurrences.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the calendar has a master object for recurrences, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="get_refresh_supported"
              c:identifier="e_cal_get_refresh_supported"
              version="2.30"
              deprecated="Use e_client_check_refresh_supported() instead."
              deprecated-version="3.2">
        <doc xml:whitespace="preserve">Checks whether a calendar supports explicit refreshing (see @e_cal_refresh).</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the calendar supports refreshing, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="get_save_schedules"
              c:identifier="e_cal_get_save_schedules"
              deprecated="Use e_cal_client_check_save_schedules() instead."
              deprecated-version="3.2">
        <doc xml:whitespace="preserve">Checks whether the calendar saves schedules.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if it saves schedules, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="get_source"
              c:identifier="e_cal_get_source"
              introspectable="0"
              deprecated="Use e_client_get_source() on an #ECalClient object instead."
              deprecated-version="3.2">
        <doc xml:whitespace="preserve">Queries the source that is open in a calendar client.</doc>
        <return-value>
          <doc xml:whitespace="preserve">The source of the calendar that is already loaded or is being loaded, or NULL if the ecal has not started a load request yet.</doc>
          <type name="EDataServer.Source" c:type="ESource*"/>
        </return-value>
      </method>
      <method name="get_source_type"
              c:identifier="e_cal_get_source_type"
              deprecated="Use e_cal_client_get_source_type() instead."
              deprecated-version="3.2">
        <doc xml:whitespace="preserve">Gets the type of the calendar client.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">an #ECalSourceType value corresponding to the type of the calendar client.</doc>
          <type name="CalSourceType" c:type="ECalSourceType"/>
        </return-value>
      </method>
      <method name="get_static_capability"
              c:identifier="e_cal_get_static_capability"
              deprecated="Use e_client_check_capability() on an #ECalClient object instead."
              deprecated-version="3.2">
        <doc xml:whitespace="preserve">Queries the calendar for static capabilities.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the capability is supported, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="cap" transfer-ownership="none">
            <doc xml:whitespace="preserve">Name of the static capability to check.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_timezone"
              c:identifier="e_cal_get_timezone"
              introspectable="0"
              deprecated="Use e_cal_client_get_timezone_sync() instead."
              deprecated-version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Retrieves a timezone object from the calendar backend.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the operation was successful, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="tzid" transfer-ownership="none">
            <doc xml:whitespace="preserve">ID of the timezone to retrieve.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="zone" transfer-ownership="none">
            <doc xml:whitespace="preserve">Return value for the timezone.</doc>
            <type c:type="icaltimezone**"/>
          </parameter>
        </parameters>
      </method>
      <method name="is_read_only"
              c:identifier="e_cal_is_read_only"
              deprecated="Use e_cal_client_is_readonly() on an #ECalClient object instead."
              deprecated-version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Queries whether the calendar client can perform modifications
on the calendar or not. Whether the backend is read only or not
is specified, on exit, in the @read_only argument.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the call was successful, FALSE if there was an error.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="read_only" transfer-ownership="none">
            <doc xml:whitespace="preserve">Return value for read only status.</doc>
            <type name="gboolean" c:type="gboolean*"/>
          </parameter>
        </parameters>
      </method>
      <method name="modify_object"
              c:identifier="e_cal_modify_object"
              introspectable="0"
              deprecated="Use e_cal_client_modify_object_sync() instead."
              deprecated-version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Requests the calendar backend to modify an existing object. If the object
does not exist on the calendar, an error will be returned.

For recurrent appointments, the @mod argument specifies what to modify,
if all instances (CALOBJ_MOD_ALL), a single instance (CALOBJ_MOD_THIS),
or a specific set of instances (CALOBJ_MOD_THISNADPRIOR and
CALOBJ_MOD_THISANDFUTURE).</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the operation was successful, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="icalcomp" transfer-ownership="none">
            <doc xml:whitespace="preserve">Component to modify.</doc>
            <type c:type="icalcomponent*"/>
          </parameter>
          <parameter name="mod" transfer-ownership="none">
            <doc xml:whitespace="preserve">Type of modification.</doc>
            <type c:type="CalObjModType"/>
          </parameter>
        </parameters>
      </method>
      <method name="open"
              c:identifier="e_cal_open"
              deprecated="Use e_client_open_sync() on an #ECalClient object instead."
              deprecated-version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Makes a calendar client initiate a request to open a calendar.  The calendar
client will emit the "cal_opened" signal when the response from the server is
received. Since 3.0 is emitted also "cal_opened_ex" signal, which contains
a GError pointer from the open operation (NULL when no error occurred).
New signal deprecates the old "cal_opened" signal.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE on success, FALSE on failure to issue the open request.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="only_if_exists" transfer-ownership="none">
            <doc xml:whitespace="preserve">FALSE if the calendar should be opened even if there was no storage for it, i.e. to create a new calendar or load an existing one if it already exists.  TRUE if it should only try to load calendars that already exist.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="open_async"
              c:identifier="e_cal_open_async"
              deprecated="Use e_client_open()/e_client_open_finish() on an #ECalClient object instead."
              deprecated-version="3.2">
        <doc xml:whitespace="preserve">Open the calendar asynchronously.  The calendar will emit the
"cal_opened" signal when the operation has completed.
Since 3.0 is emitted also "cal_opened_ex" signal, which contains
a GError pointer from the open operation (NULL when no error occurred).
New signal deprecates the old "cal_opened" signal.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="only_if_exists" transfer-ownership="none">
            <doc xml:whitespace="preserve">If TRUE, then only open the calendar if it already exists.  If FALSE, then create a new calendar if it doesn't already exist.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="receive_objects"
              c:identifier="e_cal_receive_objects"
              introspectable="0"
              deprecated="Use e_cal_client_receive_objects_sync() instead."
              deprecated-version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Makes the backend receive the set of iCalendar objects specified in the
@icalcomp argument. This is used for iTIP confirmation/cancellation
messages for scheduled meetings.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="icalcomp" transfer-ownership="none">
            <doc xml:whitespace="preserve">An icalcomponent.</doc>
            <type c:type="icalcomponent*"/>
          </parameter>
        </parameters>
      </method>
      <method name="refresh"
              c:identifier="e_cal_refresh"
              version="2.30"
              deprecated="Use e_cal_client_refresh_sync() instead."
              deprecated-version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Invokes refresh on a calendar. See @e_cal_get_refresh_supported.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if calendar supports refresh and it was invoked, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="remove"
              c:identifier="e_cal_remove"
              deprecated="Use e_client_remove_sync() on an #ECalClient object instead."
              deprecated-version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Removes a calendar.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the calendar was removed, FALSE if there was an error.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="remove_object"
              c:identifier="e_cal_remove_object"
              deprecated="Use e_cal_client_remove_object_sync() instead, with rid set to NULL and mod set to CALOBJ_MOD_ALL."
              deprecated-version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Asks a calendar to remove all components with the given UID.
If more control of the removal is desired, then use e_cal_remove_object_with_mod().
If the server is able to remove the component(s), all clients will
be notified and they will emit the "obj_removed" signal.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="uid" transfer-ownership="none">
            <doc xml:whitespace="preserve">Unique identifier of the calendar component to remove.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_object_with_mod"
              c:identifier="e_cal_remove_object_with_mod"
              introspectable="0"
              deprecated="Use e_cal_client_remove_object_sync() instead."
              deprecated-version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">This function allows the removal of instances of a recurrent
appointment. If what you want is to remove all instances, use
e_cal_remove_object instead.

By using a combination of the @uid, @rid and @mod arguments, you
can remove specific instances. @uid is mandatory.  Empty or NULL
@rid selects the parent appointment (the one with the recurrence
rule). A non-empty @rid selects the recurrence at the time specified
in @rid, using the same time zone as the parent appointment's start
time.

The exact semantic then depends on @mod. CALOBJ_MOD_THIS,
CALOBJ_MOD_THISANDPRIOR, CALOBJ_MOD_THISANDFUTURE and
CALOBJ_MOD_ALL ensure that the event does not recur at the selected
instance(s). This is done by removing any detached recurrence
matching the selection criteria and modifying the parent
appointment (adding EXDATE, adjusting recurrence rules, etc.).  It
is not an error if @uid+@rid do not match an existing instance.

If not all instances are removed, the client will get a
"obj_modified" signal for the parent appointment, while it will get
an "obj_removed" signal when all instances are removed.

CALOBJ_MOD_ONLY_THIS changes the semantic of CALOBJ_MOD_THIS: @uid
and @rid must select an existing instance. That instance is
removed without modifying the parent appointment. In other words,
e_cal_remove_object_with_mod(CALOBJ_MOD_ONLY_THIS) is the inverse
operation for adding a detached recurrence. The client is
always sent an "obj_removed" signal.

Note that not all backends support CALOBJ_MOD_ONLY_THIS. Check for
the CAL_STATIC_CAPABILITY_REMOVE_ONLY_THIS capability before using
it. Previous releases did not check consistently for unknown
@mod values, using it with them may have had unexpected results.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the operation was successful, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="uid" transfer-ownership="none">
            <doc xml:whitespace="preserve">UID of the object to remove.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="rid" transfer-ownership="none">
            <doc xml:whitespace="preserve">Recurrence ID of the specific recurrence to remove.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="mod" transfer-ownership="none">
            <doc xml:whitespace="preserve">Type of removal.</doc>
            <type c:type="CalObjModType"/>
          </parameter>
        </parameters>
      </method>
      <method name="send_objects"
              c:identifier="e_cal_send_objects"
              introspectable="0"
              deprecated="Use e_cal_client_send_objects_sync() instead."
              deprecated-version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Requests a calendar backend to send meeting information to the specified list
of users.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the operation was successful, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="icalcomp" transfer-ownership="none">
            <doc xml:whitespace="preserve">An icalcomponent.</doc>
            <type c:type="icalcomponent*"/>
          </parameter>
          <parameter name="users" transfer-ownership="none">
            <doc xml:whitespace="preserve">List of users to send the objects to.</doc>
            <type name="GLib.List" c:type="GList**">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
          <parameter name="modified_icalcomp" transfer-ownership="none">
            <doc xml:whitespace="preserve">Return value for the icalcomponent after all the operations performed.</doc>
            <type c:type="icalcomponent**"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_default_timezone"
              c:identifier="e_cal_set_default_timezone"
              introspectable="0"
              deprecated="Use e_cal_client_set_default_timezone() instead."
              deprecated-version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Sets the default timezone on the calendar. This should be called before opening
the calendar.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the operation was successful, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="zone" transfer-ownership="none">
            <doc xml:whitespace="preserve">A timezone object.</doc>
            <type c:type="icaltimezone*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_mode"
              c:identifier="e_cal_set_mode"
              introspectable="0"
              deprecated="This function has been dropped completely."
              deprecated-version="3.2">
        <doc xml:whitespace="preserve">Switches online/offline mode on the calendar.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the switch was successful, FALSE if there was an error.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="mode" transfer-ownership="none">
            <doc xml:whitespace="preserve">Mode to switch to.</doc>
            <type c:type="CalMode"/>
          </parameter>
        </parameters>
      </method>
      <method name="uri_list"
              c:identifier="e_cal_uri_list"
              introspectable="0"
              deprecated="This function has been dropped completely."
              deprecated-version="3.2">
        <doc xml:whitespace="preserve">Retrieves a list of all calendar clients for the given mode.</doc>
        <return-value>
          <doc xml:whitespace="preserve">list of uris.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="gpointer" c:type="gpointer"/>
          </type>
        </return-value>
        <parameters>
          <parameter name="mode" transfer-ownership="none">
            <doc xml:whitespace="preserve">Mode of the URIs to get.</doc>
            <type c:type="CalMode"/>
          </parameter>
        </parameters>
      </method>
      <field name="object">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="CalPrivate" c:type="ECalPrivate*"/>
      </field>
      <glib:signal name="backend-died" when="first">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
      <glib:signal name="backend-error" when="first">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="utf8"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="cal-opened" when="first">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="gint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="cal-opened-ex" when="first">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="error" transfer-ownership="none">
            <type name="glong"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="cal-set-mode" when="first" introspectable="0">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="CalSetModeStatusEnum"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="CalChange" c:type="ECalChange" version="3.6">
      <doc xml:whitespace="preserve">FIXME Document me!</doc>
      <field name="comp" writable="1">
        <type name="CalComponent" c:type="ECalComponent*"/>
      </field>
      <field name="type" writable="1">
        <type name="CalChangeType" c:type="ECalChangeType"/>
      </field>
    </record>
    <bitfield name="CalChangeType"
              glib:type-name="ECalChangeType"
              glib:get-type="e_cal_change_type_get_type"
              c:type="ECalChangeType">
      <member name="added"
              value="1"
              c:identifier="E_CAL_CHANGE_ADDED"
              glib:nick="added"/>
      <member name="modified"
              value="2"
              c:identifier="E_CAL_CHANGE_MODIFIED"
              glib:nick="modified"/>
      <member name="deleted"
              value="4"
              c:identifier="E_CAL_CHANGE_DELETED"
              glib:nick="deleted"/>
    </bitfield>
    <record name="CalClass" c:type="ECalClass" glib:is-gtype-struct-for="Cal">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="cal_opened">
        <callback name="cal_opened">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="ecal" transfer-ownership="none">
              <type name="Cal" c:type="ECal*"/>
            </parameter>
            <parameter name="status" transfer-ownership="none">
              <type name="CalendarStatus" c:type="ECalendarStatus"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="cal_opened_ex">
        <callback name="cal_opened_ex">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="ecal" transfer-ownership="none">
              <type name="Cal" c:type="ECal*"/>
            </parameter>
            <parameter name="error" transfer-ownership="none">
              <type name="GLib.Error" c:type="const GError*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="cal_set_mode" introspectable="0">
        <callback name="cal_set_mode" introspectable="0">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="ecal" transfer-ownership="none">
              <type name="Cal" c:type="ECal*"/>
            </parameter>
            <parameter name="status" transfer-ownership="none">
              <type name="CalSetModeStatus" c:type="ECalSetModeStatus"/>
            </parameter>
            <parameter name="mode" transfer-ownership="none">
              <type c:type="CalMode"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="backend_error">
        <callback name="backend_error">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="ecal" transfer-ownership="none">
              <type name="Cal" c:type="ECal*"/>
            </parameter>
            <parameter name="message" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="backend_died">
        <callback name="backend_died">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="ecal" transfer-ownership="none">
              <type name="Cal" c:type="ECal*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <class name="CalClient"
           c:symbol-prefix="cal_client"
           c:type="ECalClient"
           version="3.2"
           parent="EDataServer.Client"
           glib:type-name="ECalClient"
           glib:get-type="e_cal_client_get_type"
           glib:type-struct="CalClientClass">
      <doc xml:whitespace="preserve">Contains only private data that should be read and manipulated using the
functions below.</doc>
      <constructor name="new"
                   c:identifier="e_cal_client_new"
                   version="3.2"
                   throws="1">
        <doc xml:whitespace="preserve">Creates a new #ECalClient corresponding to the given source.  There are
only two operations that are valid on this calendar at this point:
e_client_open(), and e_client_remove().</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a new but unopened #ECalClient.</doc>
          <type name="CalClient" c:type="ECalClient*"/>
        </return-value>
        <parameters>
          <parameter name="source" transfer-ownership="none">
            <doc xml:whitespace="preserve">An #ESource pointer</doc>
            <type name="EDataServer.Source" c:type="ESource*"/>
          </parameter>
          <parameter name="source_type" transfer-ownership="none">
            <doc xml:whitespace="preserve">source type of the calendar</doc>
            <type name="CalClientSourceType" c:type="ECalClientSourceType"/>
          </parameter>
        </parameters>
      </constructor>
      <function name="check_timezones"
                c:identifier="e_cal_client_check_timezones"
                version="3.2"
                introspectable="0"
                throws="1">
        <doc xml:whitespace="preserve">This function cleans up VEVENT, VJOURNAL, VTODO and VTIMEZONE
items which are to be imported into Evolution.

Using VTIMEZONE definitions is problematic because they cannot be
updated properly when timezone definitions change. They are also
incomplete (for compatibility reason only one set of rules for
summer saving changes can be included, even if different rules
apply in different years). This function looks for matches of the
used TZIDs against system timezones and replaces such TZIDs with
the corresponding system timezone. This works for TZIDs containing
a location (found via a fuzzy string search) and for Outlook TZIDs
(via a hard-coded lookup table).

Some programs generate broken meeting invitations with TZID, but
without including the corresponding VTIMEZONE. Importing such
invitations unchanged causes problems later on (meeting displayed
incorrectly, e_cal_get_component_as_string() fails). The situation
where this occurred in the past (found by a SyncEvolution user) is
now handled via the location based mapping.

If this mapping fails, this function also deals with VTIMEZONE
conflicts: such conflicts occur when the calendar already contains
an old VTIMEZONE definition with the same TZID, but different
summer saving rules. Replacing the VTIMEZONE potentially breaks
displaying of old events, whereas not replacing it breaks the new
events (the behavior in Evolution &lt;= 2.22.1).

The way this problem is resolved is by renaming the new VTIMEZONE
definition until the TZID is unique. A running count is appended to
the TZID. All items referencing the renamed TZID are adapted
accordingly.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="comp" transfer-ownership="none">
            <doc xml:whitespace="preserve">a VCALENDAR containing a list of VTIMEZONE and arbitrary other components, in arbitrary order: these other components are modified by this call</doc>
            <type c:type="icalcomponent*"/>
          </parameter>
          <parameter name="comps" transfer-ownership="none" allow-none="1">
            <doc xml:whitespace="preserve">a list of #icalcomponent instances which also have to be patched; may be %NULL</doc>
            <type name="GLib.List" c:type="GList*">
              <type c:type="icalcomponent"/>
            </type>
          </parameter>
          <parameter name="tzlookup" transfer-ownership="none">
            <doc xml:whitespace="preserve">a callback function which is called to retrieve a calendar's VTIMEZONE definition; the returned definition is *not* freed by e_cal_client_check_timezones() (to be compatible with e_cal_get_timezone()); NULL indicates that no such timezone exists or an error occurred</doc>
            <type name="gpointer" c:type="gpointer*"/>
          </parameter>
          <parameter name="ecalclient" transfer-ownership="none">
            <doc xml:whitespace="preserve">an arbitrary pointer which is passed through to the @tzlookup function</doc>
            <type name="gpointer" c:type="gconstpointer"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable to use in @tzlookup function</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </function>
      <function name="error_create"
                c:identifier="e_cal_client_error_create"
                version="3.2">
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a new #GError containing an E_CAL_CLIENT_ERROR of the given @code. If the @custom_msg is NULL, then the error message is the one returned from e_cal_client_error_to_string() for the @code, otherwise the given message is used.  Returned pointer should be freed with g_error_free().</doc>
          <type name="GLib.Error" c:type="GError*"/>
        </return-value>
        <parameters>
          <parameter name="code" transfer-ownership="none">
            <doc xml:whitespace="preserve">an #ECalClientError code to create</doc>
            <type name="CalClientError" c:type="ECalClientError"/>
          </parameter>
          <parameter name="custom_msg" transfer-ownership="none">
            <doc xml:whitespace="preserve">custom message to use for the error; can be %NULL</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </function>
      <function name="error_quark" c:identifier="e_cal_client_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
      <function name="error_to_string"
                c:identifier="e_cal_client_error_to_string"
                version="3.2">
        <doc xml:whitespace="preserve">FIXME: Document me.</doc>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <parameter name="code" transfer-ownership="none">
            <type name="CalClientError" c:type="ECalClientError"/>
          </parameter>
        </parameters>
      </function>
      <function name="free_ecalcomp_slist"
                c:identifier="e_cal_client_free_ecalcomp_slist"
                version="3.2">
        <doc xml:whitespace="preserve">Frees each element of the @ecalcomps list and the list itself.
Each element is an object of type #ECalComponent.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="ecalcomps" transfer-ownership="none">
            <doc xml:whitespace="preserve">list of #ECalComponent objects</doc>
            <type name="GLib.SList" c:type="GSList*">
              <type name="CalComponent"/>
            </type>
          </parameter>
        </parameters>
      </function>
      <function name="free_icalcomp_slist"
                c:identifier="e_cal_client_free_icalcomp_slist"
                version="3.2"
                introspectable="0">
        <doc xml:whitespace="preserve">Frees each element of the @icalcomps list and the list itself.
Each element is an object of type #icalcomponent.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="icalcomps" transfer-ownership="none">
            <doc xml:whitespace="preserve">list of icalcomponent objects</doc>
            <type name="GLib.SList" c:type="GSList*">
              <type c:type="icalcomponent"/>
            </type>
          </parameter>
        </parameters>
      </function>
      <function name="resolve_tzid_cb"
                c:identifier="e_cal_client_resolve_tzid_cb"
                version="3.2"
                introspectable="0">
        <doc xml:whitespace="preserve">Resolves TZIDs for the recurrence generator.</doc>
        <return-value>
          <doc xml:whitespace="preserve">The timezone identified by the @tzid argument, or %NULL if it could not be found.</doc>
          <type c:type="icaltimezone*"/>
        </return-value>
        <parameters>
          <parameter name="tzid" transfer-ownership="none">
            <doc xml:whitespace="preserve">ID of the timezone to resolve.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="data" transfer-ownership="none">
            <doc xml:whitespace="preserve">Closure data for the callback, in this case #ECalClient.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </function>
      <function name="tzlookup"
                c:identifier="e_cal_client_tzlookup"
                version="3.2"
                introspectable="0"
                throws="1">
        <doc xml:whitespace="preserve">An implementation of the tzlookup callback which clients
can use. Calls e_cal_client_get_timezone_sync().</doc>
        <return-value>
          <type c:type="icaltimezone*"/>
        </return-value>
        <parameters>
          <parameter name="tzid" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="ecalclient" transfer-ownership="none">
            <doc xml:whitespace="preserve">must be a valid ECalCleint pointer</doc>
            <type name="gpointer" c:type="gconstpointer"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </function>
      <function name="tzlookup_icomp"
                c:identifier="e_cal_client_tzlookup_icomp"
                version="3.2"
                introspectable="0"
                throws="1">
        <doc xml:whitespace="preserve">An implementation of the tzlookup callback which backends
like the file backend can use. Searches for the timezone
in the component list.</doc>
        <return-value>
          <type c:type="icaltimezone*"/>
        </return-value>
        <parameters>
          <parameter name="tzid" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="custom" transfer-ownership="none">
            <doc xml:whitespace="preserve">must be a icalcomponent pointer which contains either a VCALENDAR with VTIMEZONEs or VTIMEZONES directly</doc>
            <type name="gpointer" c:type="gconstpointer"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </function>
      <virtual-method name="free_busy_data" introspectable="0">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="free_busy_ecalcomps" transfer-ownership="none">
            <type name="GLib.SList" c:type="const GSList*">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="add_timezone"
              c:identifier="e_cal_client_add_timezone"
              version="3.2"
              introspectable="0">
        <doc xml:whitespace="preserve">Add a VTIMEZONE object to the given calendar client.
The call is finished by e_cal_client_add_timezone_finish() from
the @callback.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="zone" transfer-ownership="none">
            <doc xml:whitespace="preserve">The timezone to add</doc>
            <type c:type="icaltimezone*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <doc xml:whitespace="preserve">callback to call when a result is ready</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">user data for the @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_timezone_finish"
              c:identifier="e_cal_client_add_timezone_finish"
              version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Finishes previous call of e_cal_client_add_timezone().</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="result" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_timezone_sync"
              c:identifier="e_cal_client_add_timezone_sync"
              version="3.2"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Add a VTIMEZONE object to the given calendar client.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="zone" transfer-ownership="none">
            <doc xml:whitespace="preserve">The timezone to add</doc>
            <type c:type="icaltimezone*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="check_one_alarm_only"
              c:identifier="e_cal_client_check_one_alarm_only"
              version="3.2">
        <doc xml:whitespace="preserve">Checks if a calendar supports only one alarm per component.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the calendar allows only one alarm, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="check_organizer_must_accept"
              c:identifier="e_cal_client_check_organizer_must_accept"
              version="3.2">
        <doc xml:whitespace="preserve">Checks whether a calendar requires organizer to accept their attendance to
meetings.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the calendar requires organizers to accept, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="check_organizer_must_attend"
              c:identifier="e_cal_client_check_organizer_must_attend"
              version="3.2">
        <doc xml:whitespace="preserve">Checks if a calendar forces organizers of meetings to be also attendees.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the calendar forces organizers to attend meetings, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="check_recurrences_no_master"
              c:identifier="e_cal_client_check_recurrences_no_master"
              version="3.2">
        <doc xml:whitespace="preserve">Checks if the calendar has a master object for recurrences.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the calendar has a master object for recurrences, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="check_save_schedules"
              c:identifier="e_cal_client_check_save_schedules"
              version="3.2">
        <doc xml:whitespace="preserve">Checks whether the calendar saves schedules.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if it saves schedules, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="create_object"
              c:identifier="e_cal_client_create_object"
              version="3.2"
              introspectable="0">
        <doc xml:whitespace="preserve">Requests the calendar backend to create the object specified by the @icalcomp
argument. Some backends would assign a specific UID to the newly created object,
but this function does not modify the original @icalcomp if its UID changes.
The call is finished by e_cal_client_create_object_finish() from
the @callback.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="icalcomp" transfer-ownership="none">
            <doc xml:whitespace="preserve">The component to create</doc>
            <type c:type="icalcomponent*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <doc xml:whitespace="preserve">callback to call when a result is ready</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">user data for the @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="create_object_finish"
              c:identifier="e_cal_client_create_object_finish"
              version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Finishes previous call of e_cal_client_create_object() and
sets @uid to newly assigned UID for the created object.
This @uid should be freed with g_free().</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="result" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
          <parameter name="uid"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">Return value for the UID assigned to the new component by the calendar backend</doc>
            <type name="utf8" c:type="gchar**"/>
          </parameter>
        </parameters>
      </method>
      <method name="create_object_sync"
              c:identifier="e_cal_client_create_object_sync"
              version="3.2"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Requests the calendar backend to create the object specified by the @icalcomp
argument. Some backends would assign a specific UID to the newly created object,
in those cases that UID would be returned in the @uid argument. This function
does not modify the original @icalcomp if its UID changes.
Returned @uid should be freed with g_free().</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="icalcomp" transfer-ownership="none">
            <doc xml:whitespace="preserve">The component to create</doc>
            <type c:type="icalcomponent*"/>
          </parameter>
          <parameter name="uid"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">Return value for the UID assigned to the new component by the calendar backend</doc>
            <type name="utf8" c:type="gchar**"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="create_objects"
              c:identifier="e_cal_client_create_objects"
              version="3.6"
              introspectable="0">
        <doc xml:whitespace="preserve">Requests the calendar backend to create the objects specified by the @icalcomps
argument. Some backends would assign a specific UID to the newly created object,
but this function does not modify the original @icalcomps if their UID changes.
The call is finished by e_cal_client_create_objects_finish() from
the @callback.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="icalcomps" transfer-ownership="none">
            <doc xml:whitespace="preserve">The components to create</doc>
            <type name="GLib.SList" c:type="GSList*">
              <type c:type="icalcomponent"/>
            </type>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <doc xml:whitespace="preserve">callback to call when a result is ready</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">user data for the @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="create_objects_finish"
              c:identifier="e_cal_client_create_objects_finish"
              version="3.6"
              throws="1">
        <doc xml:whitespace="preserve">Finishes previous call of e_cal_client_create_objects() and
sets @uids to newly assigned UIDs for the created objects.
This @uids should be freed with e_client_util_free_string_slist().</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="result" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
          <parameter name="uids"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">Return value for the UIDs assigned to the new components by the calendar backend</doc>
            <type name="GLib.SList" c:type="GSList**">
              <type name="utf8"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="create_objects_sync"
              c:identifier="e_cal_client_create_objects_sync"
              version="3.6"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Requests the calendar backend to create the objects specified by the @icalcomps
argument. Some backends would assign a specific UID to the newly created objects,
in those cases these UIDs would be returned in the @uids argument. This function
does not modify the original @icalcomps if their UID changes.
Returned @uid should be freed with e_client_util_free_string_slist().</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="icalcomps" transfer-ownership="none">
            <doc xml:whitespace="preserve">The components to create</doc>
            <type name="GLib.SList" c:type="GSList*">
              <type c:type="icalcomponent"/>
            </type>
          </parameter>
          <parameter name="uids"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">Return value for the UIDs assigned to the new components by the calendar backend</doc>
            <type name="GLib.SList" c:type="GSList**">
              <type name="utf8"/>
            </type>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="discard_alarm"
              c:identifier="e_cal_client_discard_alarm"
              version="3.2">
        <doc xml:whitespace="preserve">Removes alarm @auid from a given component identified by @uid and @rid.
The call is finished by e_cal_client_discard_alarm_finish() from
the @callback.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="uid" transfer-ownership="none">
            <doc xml:whitespace="preserve">Unique identifier for a calendar component</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="rid" transfer-ownership="none">
            <doc xml:whitespace="preserve">Recurrence identifier</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="auid" transfer-ownership="none">
            <doc xml:whitespace="preserve">Alarm identifier to remove</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="5">
            <doc xml:whitespace="preserve">callback to call when a result is ready</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">user data for the @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="discard_alarm_finish"
              c:identifier="e_cal_client_discard_alarm_finish"
              version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Finishes previous call of e_cal_client_discard_alarm().</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="result" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="discard_alarm_sync"
              c:identifier="e_cal_client_discard_alarm_sync"
              version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Removes alarm @auid from a given component identified by @uid and @rid.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="uid" transfer-ownership="none">
            <doc xml:whitespace="preserve">Unique identifier for a calendar component</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="rid" transfer-ownership="none">
            <doc xml:whitespace="preserve">Recurrence identifier</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="auid" transfer-ownership="none">
            <doc xml:whitespace="preserve">Alarm identifier to remove</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="generate_instances"
              c:identifier="e_cal_client_generate_instances"
              version="3.2">
        <doc xml:whitespace="preserve">Does a combination of e_cal_client_get_object_list () and
e_cal_client_recur_generate_instances(). Unlike e_cal_client_generate_instances_sync (),
this returns immediately and the @cb callback is called asynchronously.

The callback function should do a g_object_ref() of the calendar component
it gets passed if it intends to keep it around, since it will be unref'ed
as soon as the callback returns.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="start" transfer-ownership="none">
            <doc xml:whitespace="preserve">Start time for query.</doc>
            <type name="glong" c:type="time_t"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:whitespace="preserve">End time for query.</doc>
            <type name="glong" c:type="time_t"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="cb"
                     transfer-ownership="none"
                     scope="notified"
                     closure="4"
                     destroy="5">
            <doc xml:whitespace="preserve">Callback for each generated instance.</doc>
            <type name="CalRecurInstanceFn" c:type="ECalRecurInstanceFn"/>
          </parameter>
          <parameter name="cb_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">Closure data for the callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="destroy_cb_data"
                     transfer-ownership="none"
                     scope="async">
            <doc xml:whitespace="preserve">Function to call when the processing is done, to free @cb_data; can be %NULL.</doc>
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
        </parameters>
      </method>
      <method name="generate_instances_for_object"
              c:identifier="e_cal_client_generate_instances_for_object"
              version="3.2"
              introspectable="0">
        <doc xml:whitespace="preserve">Does a combination of e_cal_client_get_object_list() and
e_cal_client_recur_generate_instances(), like e_cal_client_generate_instances(), but
for a single object. Unlike e_cal_client_generate_instances_for_object_sync (),
this returns immediately and the @cb callback is called asynchronously.

The callback function should do a g_object_ref() of the calendar component
it gets passed if it intends to keep it around, since it will be unref'ed
as soon as the callback returns.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="icalcomp" transfer-ownership="none">
            <doc xml:whitespace="preserve">Object to generate instances from.</doc>
            <type c:type="icalcomponent*"/>
          </parameter>
          <parameter name="start" transfer-ownership="none">
            <doc xml:whitespace="preserve">Start time for query.</doc>
            <type name="glong" c:type="time_t"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:whitespace="preserve">End time for query.</doc>
            <type name="glong" c:type="time_t"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="cb"
                     transfer-ownership="none"
                     scope="notified"
                     closure="5"
                     destroy="6">
            <doc xml:whitespace="preserve">Callback for each generated instance.</doc>
            <type name="CalRecurInstanceFn" c:type="ECalRecurInstanceFn"/>
          </parameter>
          <parameter name="cb_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">Closure data for the callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="destroy_cb_data"
                     transfer-ownership="none"
                     scope="async">
            <doc xml:whitespace="preserve">Function to call when the processing is done, to free @cb_data; can be %NULL.</doc>
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
        </parameters>
      </method>
      <method name="generate_instances_for_object_sync"
              c:identifier="e_cal_client_generate_instances_for_object_sync"
              version="3.2"
              introspectable="0">
        <doc xml:whitespace="preserve">Does a combination of e_cal_client_get_object_list() and
e_cal_client_recur_generate_instances(), like e_cal_client_generate_instances_sync(), but
for a single object.

The callback function should do a g_object_ref() of the calendar component
it gets passed if it intends to keep it around, since it will be unref'ed
as soon as the callback returns.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="icalcomp" transfer-ownership="none">
            <doc xml:whitespace="preserve">Object to generate instances from</doc>
            <type c:type="icalcomponent*"/>
          </parameter>
          <parameter name="start" transfer-ownership="none">
            <doc xml:whitespace="preserve">Start time for query</doc>
            <type name="glong" c:type="time_t"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:whitespace="preserve">End time for query</doc>
            <type name="glong" c:type="time_t"/>
          </parameter>
          <parameter name="cb"
                     transfer-ownership="none"
                     scope="call"
                     closure="4">
            <doc xml:whitespace="preserve">Callback for each generated instance</doc>
            <type name="CalRecurInstanceFn" c:type="ECalRecurInstanceFn"/>
          </parameter>
          <parameter name="cb_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">Closure data for the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="generate_instances_sync"
              c:identifier="e_cal_client_generate_instances_sync"
              version="3.2">
        <doc xml:whitespace="preserve">Does a combination of e_cal_client_get_object_list() and
e_cal_client_recur_generate_instances().

The callback function should do a g_object_ref() of the calendar component
it gets passed if it intends to keep it around, since it will be unreffed
as soon as the callback returns.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="start" transfer-ownership="none">
            <doc xml:whitespace="preserve">Start time for query</doc>
            <type name="glong" c:type="time_t"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:whitespace="preserve">End time for query</doc>
            <type name="glong" c:type="time_t"/>
          </parameter>
          <parameter name="cb"
                     transfer-ownership="none"
                     scope="call"
                     closure="3">
            <doc xml:whitespace="preserve">Callback for each generated instance</doc>
            <type name="CalRecurInstanceFn" c:type="ECalRecurInstanceFn"/>
          </parameter>
          <parameter name="cb_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">Closure data for the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_attachment_uris"
              c:identifier="e_cal_client_get_attachment_uris"
              version="3.2">
        <doc xml:whitespace="preserve">Queries a calendar for a specified component's object attachment uris.
The call is finished by e_cal_client_get_attachment_uris_finish() from
the @callback.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="uid" transfer-ownership="none">
            <doc xml:whitespace="preserve">Unique identifier for a calendar component</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="rid" transfer-ownership="none">
            <doc xml:whitespace="preserve">Recurrence identifier</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="4">
            <doc xml:whitespace="preserve">callback to call when a result is ready</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">user data for the @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_attachment_uris_finish"
              c:identifier="e_cal_client_get_attachment_uris_finish"
              version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Finishes previous call of e_cal_client_get_attachment_uris() and
sets @attachment_uris to uris for component's attachments.
The list should be freed with e_client_util_free_string_slist().</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="result" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
          <parameter name="attachment_uris"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">Return the list of attachment URIs</doc>
            <type name="GLib.SList" c:type="GSList**">
              <type name="utf8"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="get_attachment_uris_sync"
              c:identifier="e_cal_client_get_attachment_uris_sync"
              version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Queries a calendar for a specified component's object attachment URIs.
The list should be freed with e_client_util_free_string_slist().</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="uid" transfer-ownership="none">
            <doc xml:whitespace="preserve">Unique identifier for a calendar component</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="rid" transfer-ownership="none">
            <doc xml:whitespace="preserve">Recurrence identifier</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="attachment_uris"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">Return the list of attachment URIs</doc>
            <type name="GLib.SList" c:type="GSList**">
              <type name="utf8"/>
            </type>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_component_as_string"
              c:identifier="e_cal_client_get_component_as_string"
              version="3.2"
              introspectable="0">
        <doc xml:whitespace="preserve">Gets a calendar component as an iCalendar string, with a toplevel
VCALENDAR component and all VTIMEZONEs needed for the component.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">the component as a complete iCalendar string, or NULL on failure. The string should be freed with g_free().</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <parameter name="icalcomp" transfer-ownership="none">
            <doc xml:whitespace="preserve">A calendar component object.</doc>
            <type c:type="icalcomponent*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_default_object"
              c:identifier="e_cal_client_get_default_object"
              version="3.2">
        <doc xml:whitespace="preserve">Retrives an #icalcomponent from the backend that contains the default
values for properties needed. The call is finished
by e_cal_client_get_default_object_finish() from the @callback.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="2">
            <doc xml:whitespace="preserve">callback to call when a result is ready</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">user data for the @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_default_object_finish"
              c:identifier="e_cal_client_get_default_object_finish"
              version="3.2"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Finishes previous call of e_cal_client_get_default_object() and
sets @icalcomp to an #icalcomponent from the backend that contains
the default values for properties needed. This @icalcomp should be
freed with icalcomponent_free().</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="result" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
          <parameter name="icalcomp"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">Return value for the default calendar object.</doc>
            <type c:type="icalcomponent**"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_default_object_sync"
              c:identifier="e_cal_client_get_default_object_sync"
              version="3.2"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Retrives an #icalcomponent from the backend that contains the default
values for properties needed. This @icalcomp should be freed with
icalcomponent_free().</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="icalcomp"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">Return value for the default calendar object.</doc>
            <type c:type="icalcomponent**"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_default_timezone"
              c:identifier="e_cal_client_get_default_timezone"
              version="3.2"
              introspectable="0">
        <return-value>
          <doc xml:whitespace="preserve">Default timezone previously set with e_cal_client_set_default_timezone(). Returned pointer is owned by the @client and should not be freed.</doc>
          <type c:type="icaltimezone*"/>
        </return-value>
      </method>
      <method name="get_free_busy"
              c:identifier="e_cal_client_get_free_busy"
              version="3.2">
        <doc xml:whitespace="preserve">Begins retrieval of free/busy information from the calendar server
as a list of #ECalComponent-s. Connect to "free-busy-data" signal
to receive chunks of free/busy components.
The call is finished by e_cal_client_get_free_busy_finish() from
the @callback.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="start" transfer-ownership="none">
            <doc xml:whitespace="preserve">Start time for query</doc>
            <type name="glong" c:type="time_t"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:whitespace="preserve">End time for query</doc>
            <type name="glong" c:type="time_t"/>
          </parameter>
          <parameter name="users" transfer-ownership="none">
            <doc xml:whitespace="preserve">List of users to retrieve free/busy information for</doc>
            <type name="GLib.SList" c:type="const GSList*">
              <type name="utf8"/>
            </type>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="5">
            <doc xml:whitespace="preserve">callback to call when a result is ready</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">user data for the @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_free_busy_finish"
              c:identifier="e_cal_client_get_free_busy_finish"
              version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Finishes previous call of e_cal_client_get_free_busy().
All VFREEBUSY #ECalComponent-s were received by "free-busy-data" signal.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="result" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_free_busy_sync"
              c:identifier="e_cal_client_get_free_busy_sync"
              version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Gets free/busy information from the calendar server.
All VFREEBUSY #ECalComponent-s were received by "free-busy-data" signal.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="start" transfer-ownership="none">
            <doc xml:whitespace="preserve">Start time for query</doc>
            <type name="glong" c:type="time_t"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:whitespace="preserve">End time for query</doc>
            <type name="glong" c:type="time_t"/>
          </parameter>
          <parameter name="users" transfer-ownership="none">
            <doc xml:whitespace="preserve">List of users to retrieve free/busy information for</doc>
            <type name="GLib.SList" c:type="const GSList*">
              <type name="utf8"/>
            </type>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_local_attachment_store"
              c:identifier="e_cal_client_get_local_attachment_store"
              version="3.2">
        <doc xml:whitespace="preserve">Queries the URL where the calendar attachments are
serialized in the local filesystem. This enable clients
to operate with the reference to attachments rather than the data itself
unless it specifically uses the attachments for open/sending
operations.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The URL where the attachments are serialized in the local filesystem.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
      </method>
      <method name="get_object"
              c:identifier="e_cal_client_get_object"
              version="3.2">
        <doc xml:whitespace="preserve">Queries a calendar for a calendar component object based on its unique
identifier. The call is finished by e_cal_client_get_object_finish()
from the @callback.

Use e_cal_client_get_objects_for_uid() to get list of all
objects for the given uid, which includes master object and
all detached instances.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="uid" transfer-ownership="none">
            <doc xml:whitespace="preserve">Unique identifier for a calendar component.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="rid" transfer-ownership="none">
            <doc xml:whitespace="preserve">Recurrence identifier.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="4">
            <doc xml:whitespace="preserve">callback to call when a result is ready</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">user data for the @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_object_finish"
              c:identifier="e_cal_client_get_object_finish"
              version="3.2"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Finishes previous call of e_cal_client_get_object() and
sets @icalcomp to queried component. This function always returns
master object for a case of @rid being NULL or an empty string.
This component should be freed with icalcomponent_free().

Use e_cal_client_get_objects_for_uid() to get list of all
objects for the given uid, which includes master object and
all detached instances.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="result" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
          <parameter name="icalcomp"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">Return value for the calendar component object.</doc>
            <type c:type="icalcomponent**"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_object_list"
              c:identifier="e_cal_client_get_object_list"
              version="3.2">
        <doc xml:whitespace="preserve">Gets a list of objects from the calendar that match the query specified
by the @sexp argument, returning matching objects as a list of #icalcomponent-s.
The call is finished by e_cal_client_get_object_list_finish() from
the @callback.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="sexp" transfer-ownership="none">
            <doc xml:whitespace="preserve">an S-expression representing the query</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <doc xml:whitespace="preserve">callback to call when a result is ready</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">user data for the @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_object_list_as_comps"
              c:identifier="e_cal_client_get_object_list_as_comps"
              version="3.2">
        <doc xml:whitespace="preserve">Gets a list of objects from the calendar that match the query specified
by the @sexp argument, returning matching objects as a list of #ECalComponent-s.
The call is finished by e_cal_client_get_object_list_as_comps_finish() from
the @callback.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="sexp" transfer-ownership="none">
            <doc xml:whitespace="preserve">an S-expression representing the query</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <doc xml:whitespace="preserve">callback to call when a result is ready</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">user data for the @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_object_list_as_comps_finish"
              c:identifier="e_cal_client_get_object_list_as_comps_finish"
              version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Finishes previous call of e_cal_client_get_object_list_as_comps() and
sets @ecalcomps to a matching list of #ECalComponent-s.
This list should be freed with e_cal_client_free_ecalcomp_slist().</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="result" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
          <parameter name="ecalcomps"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">list of matching #ECalComponent&lt;!-- --&gt;s</doc>
            <type name="GLib.SList" c:type="GSList**">
              <type name="CalComponent"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="get_object_list_as_comps_sync"
              c:identifier="e_cal_client_get_object_list_as_comps_sync"
              version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Gets a list of objects from the calendar that match the query specified
by the @sexp argument. The objects will be returned in the @ecalcomps
argument, which is a list of #ECalComponent.
This list should be freed with e_cal_client_free_ecalcomp_slist().</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="sexp" transfer-ownership="none">
            <doc xml:whitespace="preserve">an S-expression representing the query</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="ecalcomps"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">list of matching #ECalComponent&lt;!-- --&gt;s</doc>
            <type name="GLib.SList" c:type="GSList**">
              <type name="CalComponent"/>
            </type>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_object_list_finish"
              c:identifier="e_cal_client_get_object_list_finish"
              version="3.2"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Finishes previous call of e_cal_client_get_object_list() and
sets @icalcomps to a matching list of #icalcomponent-s.
This list should be freed with e_cal_client_free_icalcomp_slist().</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="result" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
          <parameter name="icalcomps"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">list of matching #icalcomponent&lt;!-- --&gt;s</doc>
            <type name="GLib.SList" c:type="GSList**">
              <type c:type="icalcomponent"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="get_object_list_sync"
              c:identifier="e_cal_client_get_object_list_sync"
              version="3.2"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Gets a list of objects from the calendar that match the query specified
by the @sexp argument. The objects will be returned in the @icalcomps
argument, which is a list of #icalcomponent.
This list should be freed with e_cal_client_free_icalcomp_slist().</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="sexp" transfer-ownership="none">
            <doc xml:whitespace="preserve">an S-expression representing the query</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="icalcomps"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">list of matching #icalcomponent&lt;!-- --&gt;s</doc>
            <type name="GLib.SList" c:type="GSList**">
              <type c:type="icalcomponent"/>
            </type>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_object_sync"
              c:identifier="e_cal_client_get_object_sync"
              version="3.2"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Queries a calendar for a calendar component object based
on its unique identifier. This function always returns
master object for a case of @rid being NULL or an empty string.
This component should be freed with icalcomponent_free().

Use e_cal_client_get_objects_for_uid_sync() to get list of all
objects for the given uid, which includes master object and
all detached instances.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="uid" transfer-ownership="none">
            <doc xml:whitespace="preserve">Unique identifier for a calendar component.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="rid" transfer-ownership="none">
            <doc xml:whitespace="preserve">Recurrence identifier.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="icalcomp"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">Return value for the calendar component object.</doc>
            <type c:type="icalcomponent**"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_objects_for_uid"
              c:identifier="e_cal_client_get_objects_for_uid"
              version="3.2">
        <doc xml:whitespace="preserve">Queries a calendar for all calendar components with the given unique
ID. This will return any recurring event and all its detached recurrences.
For non-recurring events, it will just return the object with that ID.
The call is finished by e_cal_client_get_objects_for_uid_finish() from
the @callback.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="uid" transfer-ownership="none">
            <doc xml:whitespace="preserve">Unique identifier for a calendar component</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <doc xml:whitespace="preserve">callback to call when a result is ready</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">user data for the @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_objects_for_uid_finish"
              c:identifier="e_cal_client_get_objects_for_uid_finish"
              version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Finishes previous call of e_cal_client_get_objects_for_uid() and
sets @ecalcomps to a list of #ECalComponent&lt;!-- --&gt;s corresponding to
found components for a given uid of the same type as this client.
This list should be freed with e_cal_client_free_ecalcomp_slist().</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="result" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
          <parameter name="ecalcomps"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">Return value for the list of objects obtained from the backend</doc>
            <type name="GLib.SList" c:type="GSList**">
              <type name="CalComponent"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="get_objects_for_uid_sync"
              c:identifier="e_cal_client_get_objects_for_uid_sync"
              version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Queries a calendar for all calendar components with the given unique
ID. This will return any recurring event and all its detached recurrences.
For non-recurring events, it will just return the object with that ID.
This list should be freed with e_cal_client_free_ecalcomp_slist().</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="uid" transfer-ownership="none">
            <doc xml:whitespace="preserve">Unique identifier for a calendar component</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="ecalcomps"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">Return value for the list of objects obtained from the backend</doc>
            <type name="GLib.SList" c:type="GSList**">
              <type name="CalComponent"/>
            </type>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_source_type"
              c:identifier="e_cal_client_get_source_type"
              version="3.2">
        <doc xml:whitespace="preserve">Gets the source type of the calendar client.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">an #ECalClientSourceType value corresponding to the source type of the calendar client.</doc>
          <type name="CalClientSourceType" c:type="ECalClientSourceType"/>
        </return-value>
      </method>
      <method name="get_timezone"
              c:identifier="e_cal_client_get_timezone"
              version="3.2">
        <doc xml:whitespace="preserve">Retrieves a timezone object from the calendar backend.
The call is finished by e_cal_client_get_timezone_finish() from
the @callback.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="tzid" transfer-ownership="none">
            <doc xml:whitespace="preserve">ID of the timezone to retrieve</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <doc xml:whitespace="preserve">callback to call when a result is ready</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">user data for the @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_timezone_finish"
              c:identifier="e_cal_client_get_timezone_finish"
              version="3.2"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Finishes previous call of e_cal_client_get_timezone() and
sets @zone to a retrieved timezone object from the calendar backend.
This object is owned by the @client, thus do not free it.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="result" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
          <parameter name="zone"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">Return value for the timezone</doc>
            <type c:type="icaltimezone**"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_timezone_sync"
              c:identifier="e_cal_client_get_timezone_sync"
              version="3.2"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Retrieves a timezone object from the calendar backend.
This object is owned by the @client, thus do not free it.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="tzid" transfer-ownership="none">
            <doc xml:whitespace="preserve">ID of the timezone to retrieve</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="zone"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">Return value for the timezone</doc>
            <type c:type="icaltimezone**"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_view"
              c:identifier="e_cal_client_get_view"
              version="3.2">
        <doc xml:whitespace="preserve">Query @client with @sexp, creating an #ECalClientView.
The call is finished by e_cal_client_get_view_finish()
from the @callback.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="sexp" transfer-ownership="none">
            <doc xml:whitespace="preserve">an S-expression representing the query.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <doc xml:whitespace="preserve">callback to call when a result is ready</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">user data for the @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_view_finish"
              c:identifier="e_cal_client_get_view_finish"
              version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Finishes previous call of e_cal_client_get_view().
If successful, then the @view is set to newly allocated #ECalClientView,
which should be freed with g_object_unref().</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="result" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
          <parameter name="view"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">an #ECalClientView</doc>
            <type name="CalClientView" c:type="ECalClientView**"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_view_sync"
              c:identifier="e_cal_client_get_view_sync"
              version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Query @client with @sexp, creating an #ECalClientView.
If successful, then the @view is set to newly allocated #ECalClientView,
which should be freed with g_object_unref().</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="sexp" transfer-ownership="none">
            <doc xml:whitespace="preserve">an S-expression representing the query.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="view"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">an #ECalClientView</doc>
            <type name="CalClientView" c:type="ECalClientView**"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="modify_object"
              c:identifier="e_cal_client_modify_object"
              version="3.2"
              introspectable="0">
        <doc xml:whitespace="preserve">Requests the calendar backend to modify an existing object. If the object
does not exist on the calendar, an error will be returned.

For recurrent appointments, the @mod argument specifies what to modify,
if all instances (CALOBJ_MOD_ALL), a single instance (CALOBJ_MOD_THIS),
or a specific set of instances (CALOBJ_MOD_THISNADPRIOR and
CALOBJ_MOD_THISANDFUTURE).

The call is finished by e_cal_client_modify_object_finish() from
the @callback.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="icalcomp" transfer-ownership="none">
            <doc xml:whitespace="preserve">Component to modify</doc>
            <type c:type="icalcomponent*"/>
          </parameter>
          <parameter name="mod" transfer-ownership="none">
            <doc xml:whitespace="preserve">Type of modification</doc>
            <type c:type="CalObjModType"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="4">
            <doc xml:whitespace="preserve">callback to call when a result is ready</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">user data for the @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="modify_object_finish"
              c:identifier="e_cal_client_modify_object_finish"
              version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Finishes previous call of e_cal_client_modify_object().</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="result" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="modify_object_sync"
              c:identifier="e_cal_client_modify_object_sync"
              version="3.2"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Requests the calendar backend to modify an existing object. If the object
does not exist on the calendar, an error will be returned.

For recurrent appointments, the @mod argument specifies what to modify,
if all instances (CALOBJ_MOD_ALL), a single instance (CALOBJ_MOD_THIS),
or a specific set of instances (CALOBJ_MOD_THISNADPRIOR and
CALOBJ_MOD_THISANDFUTURE).</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="icalcomp" transfer-ownership="none">
            <doc xml:whitespace="preserve">Component to modify</doc>
            <type c:type="icalcomponent*"/>
          </parameter>
          <parameter name="mod" transfer-ownership="none">
            <doc xml:whitespace="preserve">Type of modification</doc>
            <type c:type="CalObjModType"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="modify_objects"
              c:identifier="e_cal_client_modify_objects"
              version="3.6"
              introspectable="0">
        <doc xml:whitespace="preserve">Requests the calendar backend to modify existing objects. If an object
does not exist on the calendar, an error will be returned.

For recurrent appointments, the @mod argument specifies what to modify,
if all instances (CALOBJ_MOD_ALL), a single instance (CALOBJ_MOD_THIS),
or a specific set of instances (CALOBJ_MOD_THISNADPRIOR and
CALOBJ_MOD_THISANDFUTURE).

The call is finished by e_cal_client_modify_objects_finish() from
the @callback.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="comps" transfer-ownership="none">
            <doc xml:whitespace="preserve">Components to modify</doc>
            <type name="GLib.SList" c:type="GSList*">
              <type c:type="icalcomponent"/>
            </type>
          </parameter>
          <parameter name="mod" transfer-ownership="none">
            <doc xml:whitespace="preserve">Type of modification</doc>
            <type c:type="CalObjModType"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="4">
            <doc xml:whitespace="preserve">callback to call when a result is ready</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">user data for the @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="modify_objects_finish"
              c:identifier="e_cal_client_modify_objects_finish"
              version="3.6"
              throws="1">
        <doc xml:whitespace="preserve">Finishes previous call of e_cal_client_modify_objects().</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="result" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="modify_objects_sync"
              c:identifier="e_cal_client_modify_objects_sync"
              version="3.6"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Requests the calendar backend to modify existing objects. If an object
does not exist on the calendar, an error will be returned.

For recurrent appointments, the @mod argument specifies what to modify,
if all instances (CALOBJ_MOD_ALL), a single instance (CALOBJ_MOD_THIS),
or a specific set of instances (CALOBJ_MOD_THISNADPRIOR and
CALOBJ_MOD_THISANDFUTURE).</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="comps" transfer-ownership="none">
            <doc xml:whitespace="preserve">Components to modify</doc>
            <type name="GLib.SList" c:type="GSList*">
              <type c:type="icalcomponent"/>
            </type>
          </parameter>
          <parameter name="mod" transfer-ownership="none">
            <doc xml:whitespace="preserve">Type of modification</doc>
            <type c:type="CalObjModType"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="receive_objects"
              c:identifier="e_cal_client_receive_objects"
              version="3.2"
              introspectable="0">
        <doc xml:whitespace="preserve">Makes the backend receive the set of iCalendar objects specified in the
@icalcomp argument. This is used for iTIP confirmation/cancellation
messages for scheduled meetings.

The call is finished by e_cal_client_receive_objects_finish() from
the @callback.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="icalcomp" transfer-ownership="none">
            <doc xml:whitespace="preserve">An #icalcomponent</doc>
            <type c:type="icalcomponent*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <doc xml:whitespace="preserve">callback to call when a result is ready</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">user data for the @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="receive_objects_finish"
              c:identifier="e_cal_client_receive_objects_finish"
              version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Finishes previous call of e_cal_client_receive_objects().</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="result" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="receive_objects_sync"
              c:identifier="e_cal_client_receive_objects_sync"
              version="3.2"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Makes the backend receive the set of iCalendar objects specified in the
@icalcomp argument. This is used for iTIP confirmation/cancellation
messages for scheduled meetings.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="icalcomp" transfer-ownership="none">
            <doc xml:whitespace="preserve">An #icalcomponent</doc>
            <type c:type="icalcomponent*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_object"
              c:identifier="e_cal_client_remove_object"
              version="3.2"
              introspectable="0">
        <doc xml:whitespace="preserve">This function allows the removal of instances of a recurrent
appointment. By using a combination of the @uid, @rid and @mod
arguments, you can remove specific instances. If what you want
is to remove all instances, use #NULL @rid and CALOBJ_MOD_ALL
for the @mod.

The call is finished by e_cal_client_remove_object_finish() from
the @callback.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="uid" transfer-ownership="none">
            <doc xml:whitespace="preserve">UID of the object to remove</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="rid" transfer-ownership="none">
            <doc xml:whitespace="preserve">Recurrence ID of the specific recurrence to remove</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="mod" transfer-ownership="none">
            <doc xml:whitespace="preserve">Type of the removal</doc>
            <type c:type="CalObjModType"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="5">
            <doc xml:whitespace="preserve">callback to call when a result is ready</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">user data for the @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_object_finish"
              c:identifier="e_cal_client_remove_object_finish"
              version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Finishes previous call of e_cal_client_remove_object().</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="result" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_object_sync"
              c:identifier="e_cal_client_remove_object_sync"
              version="3.2"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">This function allows the removal of instances of a recurrent
appointment. By using a combination of the @uid, @rid and @mod
arguments, you can remove specific instances. If what you want
is to remove all instances, use #NULL @rid and CALOBJ_MODE_THIS
for the @mod.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="uid" transfer-ownership="none">
            <doc xml:whitespace="preserve">UID of the object to remove</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="rid" transfer-ownership="none">
            <doc xml:whitespace="preserve">Recurrence ID of the specific recurrence to remove</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="mod" transfer-ownership="none">
            <doc xml:whitespace="preserve">Type of the removal</doc>
            <type c:type="CalObjModType"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_objects"
              c:identifier="e_cal_client_remove_objects"
              version="3.6"
              introspectable="0">
        <doc xml:whitespace="preserve">This function allows the removal of instances of recurrent
appointments. #ECalComponentId objects can identify specific instances (if rid is not NULL).
If what you want is to remove all instances, use a #NULL rid in the #ECalComponentId and CALOBJ_MOD_ALL
for the @mod.

The call is finished by e_cal_client_remove_objects_finish() from
the @callback.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="ids" transfer-ownership="none">
            <doc xml:whitespace="preserve">A list of #ECalComponentId objects identifying the objects to remove</doc>
            <type name="GLib.SList" c:type="const GSList*">
              <type name="CalComponentId"/>
            </type>
          </parameter>
          <parameter name="mod" transfer-ownership="none">
            <doc xml:whitespace="preserve">Type of the removal</doc>
            <type c:type="CalObjModType"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="4">
            <doc xml:whitespace="preserve">callback to call when a result is ready</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">user data for the @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_objects_finish"
              c:identifier="e_cal_client_remove_objects_finish"
              version="3.6"
              throws="1">
        <doc xml:whitespace="preserve">Finishes previous call of e_cal_client_remove_objects().</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="result" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_objects_sync"
              c:identifier="e_cal_client_remove_objects_sync"
              version="3.6"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">This function allows the removal of instances of recurrent
appointments. #ECalComponentId objects can identify specific instances (if rid is not NULL).
If what you want is to remove all instances, use a #NULL rid in the #ECalComponentId and CALOBJ_MOD_ALL
for the @mod.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="ids" transfer-ownership="none">
            <doc xml:whitespace="preserve">A list of #ECalComponentId objects identifying the objects to remove</doc>
            <type name="GLib.SList" c:type="const GSList*">
              <type name="CalComponentId"/>
            </type>
          </parameter>
          <parameter name="mod" transfer-ownership="none">
            <doc xml:whitespace="preserve">Type of the removal</doc>
            <type c:type="CalObjModType"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="send_objects"
              c:identifier="e_cal_client_send_objects"
              version="3.2"
              introspectable="0">
        <doc xml:whitespace="preserve">Requests a calendar backend to send meeting information stored in @icalcomp.
The backend can modify this component and request a send to particular users.
The call is finished by e_cal_client_send_objects_finish() from
the @callback.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="icalcomp" transfer-ownership="none">
            <doc xml:whitespace="preserve">An icalcomponent to be sent</doc>
            <type c:type="icalcomponent*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <doc xml:whitespace="preserve">callback to call when a result is ready</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">user data for the @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="send_objects_finish"
              c:identifier="e_cal_client_send_objects_finish"
              version="3.2"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Finishes previous call of e_cal_client_send_objects() and
populates @users with a list of users to send @modified_icalcomp to.
The @users list should be freed with e_client_util_free_string_slist() and
the @modified_icalcomp should be freed with icalcomponent_free().</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="result" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
          <parameter name="users"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">List of users to send the @modified_icalcomp to</doc>
            <type name="GLib.SList" c:type="GSList**">
              <type name="utf8"/>
            </type>
          </parameter>
          <parameter name="modified_icalcomp"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">Return value for the icalcomponent to be sent</doc>
            <type c:type="icalcomponent**"/>
          </parameter>
        </parameters>
      </method>
      <method name="send_objects_sync"
              c:identifier="e_cal_client_send_objects_sync"
              version="3.2"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Requests a calendar backend to send meeting information stored in @icalcomp.
The backend can modify this component and request a send to users in the @users list.
The @users list should be freed with e_client_util_free_string_slist() and
the @modified_icalcomp should be freed with icalcomponent_free().</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="icalcomp" transfer-ownership="none">
            <doc xml:whitespace="preserve">An icalcomponent to be sent</doc>
            <type c:type="icalcomponent*"/>
          </parameter>
          <parameter name="users"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">List of users to send the @modified_icalcomp to</doc>
            <type name="GLib.SList" c:type="GSList**">
              <type name="utf8"/>
            </type>
          </parameter>
          <parameter name="modified_icalcomp"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">Return value for the icalcomponent to be sent</doc>
            <type c:type="icalcomponent**"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_default_timezone"
              c:identifier="e_cal_client_set_default_timezone"
              version="3.2"
              introspectable="0">
        <doc xml:whitespace="preserve">Sets the default timezone to use to resolve DATE and floating DATE-TIME
values. This will typically be from the user's timezone setting. Call this
before using any other object fetching functions.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="zone" transfer-ownership="none">
            <doc xml:whitespace="preserve">A timezone object.</doc>
            <type c:type="icaltimezone*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent">
        <type name="EDataServer.Client" c:type="EClient"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="CalClientPrivate" c:type="ECalClientPrivate*"/>
      </field>
      <glib:signal name="free-busy-data" when="first">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="gpointer"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="CalClientClass"
            c:type="ECalClientClass"
            glib:is-gtype-struct-for="CalClient">
      <field name="parent">
        <type name="EDataServer.ClientClass" c:type="EClientClass"/>
      </field>
      <field name="free_busy_data" introspectable="0">
        <callback name="free_busy_data" introspectable="0">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="client" transfer-ownership="none">
              <type name="CalClient" c:type="ECalClient*"/>
            </parameter>
            <parameter name="free_busy_ecalcomps" transfer-ownership="none">
              <type name="GLib.SList" c:type="const GSList*">
                <type name="gpointer" c:type="gpointer"/>
              </type>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <enumeration name="CalClientError" version="3.2" c:type="ECalClientError">
      <doc xml:whitespace="preserve">FIXME: Document me.</doc>
      <member name="no_such_calendar"
              value="0"
              c:identifier="E_CAL_CLIENT_ERROR_NO_SUCH_CALENDAR"/>
      <member name="object_not_found"
              value="1"
              c:identifier="E_CAL_CLIENT_ERROR_OBJECT_NOT_FOUND"/>
      <member name="invalid_object"
              value="2"
              c:identifier="E_CAL_CLIENT_ERROR_INVALID_OBJECT"/>
      <member name="unknown_user"
              value="3"
              c:identifier="E_CAL_CLIENT_ERROR_UNKNOWN_USER"/>
      <member name="object_id_already_exists"
              value="4"
              c:identifier="E_CAL_CLIENT_ERROR_OBJECT_ID_ALREADY_EXISTS"/>
      <member name="invalid_range"
              value="5"
              c:identifier="E_CAL_CLIENT_ERROR_INVALID_RANGE"/>
    </enumeration>
    <record name="CalClientPrivate" c:type="ECalClientPrivate" disguised="1">
    </record>
    <enumeration name="CalClientSourceType"
                 version="3.2"
                 c:type="ECalClientSourceType">
      <doc xml:whitespace="preserve">FIXME: Document me.</doc>
      <member name="events"
              value="0"
              c:identifier="E_CAL_CLIENT_SOURCE_TYPE_EVENTS"/>
      <member name="tasks"
              value="1"
              c:identifier="E_CAL_CLIENT_SOURCE_TYPE_TASKS"/>
      <member name="memos"
              value="2"
              c:identifier="E_CAL_CLIENT_SOURCE_TYPE_MEMOS"/>
      <member name="last"
              value="3"
              c:identifier="E_CAL_CLIENT_SOURCE_TYPE_LAST"/>
    </enumeration>
    <enumeration name="CalClientSourceTypeEnum"
                 glib:type-name="ECalClientSourceTypeEnum"
                 glib:get-type="e_cal_client_source_type_enum_get_type"
                 c:type="ECalClientSourceTypeEnum">
      <member name="Events"
              value="0"
              c:identifier="Events"
              glib:nick="Events"/>
      <member name="Tasks" value="1" c:identifier="Tasks" glib:nick="Tasks"/>
      <member name="Memos" value="2" c:identifier="Memos" glib:nick="Memos"/>
      <member name="Invalid"
              value="3"
              c:identifier="Invalid"
              glib:nick="Invalid"/>
    </enumeration>
    <class name="CalClientView"
           c:symbol-prefix="cal_client_view"
           c:type="ECalClientView"
           version="3.2"
           parent="GObject.Object"
           glib:type-name="ECalClientView"
           glib:get-type="e_cal_client_view_get_type"
           glib:type-struct="CalClientViewClass">
      <doc xml:whitespace="preserve">Contains only private data that should be read and manipulated using the
functions below.</doc>
      <virtual-method name="complete">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="error" transfer-ownership="none">
            <type name="GLib.Error" c:type="const GError*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="objects_added" introspectable="0">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="objects" transfer-ownership="none">
            <type name="GLib.SList" c:type="const GSList*">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="objects_modified" introspectable="0">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="objects" transfer-ownership="none">
            <type name="GLib.SList" c:type="const GSList*">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="objects_removed" introspectable="0">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="uids" transfer-ownership="none">
            <type name="GLib.SList" c:type="const GSList*">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="progress">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="percent" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="message" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="get_client"
              c:identifier="e_cal_client_view_get_client"
              version="3.2">
        <doc xml:whitespace="preserve">Get the #ECalClient associated with this view.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the associated client.</doc>
          <type name="gpointer" c:type="_ECalClient*"/>
        </return-value>
      </method>
      <method name="is_running"
              c:identifier="e_cal_client_view_is_running"
              version="3.2">
        <doc xml:whitespace="preserve">Retunrs: Whether view is running. Not running views are ignoring
all events sent from the server.</doc>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="set_fields_of_interest"
              c:identifier="e_cal_client_view_set_fields_of_interest"
              throws="1">
        <doc xml:whitespace="preserve">Client can instruct server to which fields it is interested in only, thus
the server can return less data over the wire. The server can still return
complete objects, this is just a hint to it that the listed fields will
be used only. The UID/RID fields are returned always. Initial views has no fields
of interest and using %NULL for @fields_of_interest will unset any previous
changes.

Some backends can use summary information of its cache to create artifical
objects, which will omit stored object parsing. If this cannot be done then
it will simply return object as is stored in the cache.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="fields_of_interest"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">List of field names in which the client is interested, or %NULL to reset the fields of interest</doc>
            <type name="GLib.SList" c:type="const GSList*">
              <type name="utf8"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="set_flags"
              c:identifier="e_cal_client_view_set_flags"
              version="3.6"
              throws="1">
        <doc xml:whitespace="preserve">Sets the @flags which control the behaviour of @view.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:whitespace="preserve">the #ECalClientViewFlags for @view.</doc>
            <type name="CalClientViewFlags" c:type="ECalClientViewFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="start"
              c:identifier="e_cal_client_view_start"
              version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Starts a live query to the calendar/tasks backend.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="stop"
              c:identifier="e_cal_client_view_stop"
              version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Stops a live query to the calendar/tasks backend.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <property name="client"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="CalClient"/>
      </property>
      <property name="view"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="gpointer"/>
      </property>
      <field name="object">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="CalClientViewPrivate" c:type="ECalClientViewPrivate*"/>
      </field>
      <glib:signal name="complete" when="first">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="GLib.Error"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="objects-added" when="first">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="objects" transfer-ownership="none">
            <type name="GLib.SList">
              <type name="glong"/>
            </type>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="objects-modified" when="first">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="objects" transfer-ownership="none">
            <type name="GLib.SList">
              <type name="glong"/>
            </type>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="objects-removed" when="first">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="objects" transfer-ownership="none">
            <type name="GLib.SList">
              <type name="CalComponentId"/>
            </type>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="progress" when="first">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="guint"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="utf8"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="CalClientViewClass"
            c:type="ECalClientViewClass"
            glib:is-gtype-struct-for="CalClientView">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="objects_added" introspectable="0">
        <callback name="objects_added" introspectable="0">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="view" transfer-ownership="none">
              <type name="CalClientView" c:type="ECalClientView*"/>
            </parameter>
            <parameter name="objects" transfer-ownership="none">
              <type name="GLib.SList" c:type="const GSList*">
                <type name="gpointer" c:type="gpointer"/>
              </type>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="objects_modified" introspectable="0">
        <callback name="objects_modified" introspectable="0">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="view" transfer-ownership="none">
              <type name="CalClientView" c:type="ECalClientView*"/>
            </parameter>
            <parameter name="objects" transfer-ownership="none">
              <type name="GLib.SList" c:type="const GSList*">
                <type name="gpointer" c:type="gpointer"/>
              </type>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="objects_removed" introspectable="0">
        <callback name="objects_removed" introspectable="0">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="view" transfer-ownership="none">
              <type name="CalClientView" c:type="ECalClientView*"/>
            </parameter>
            <parameter name="uids" transfer-ownership="none">
              <type name="GLib.SList" c:type="const GSList*">
                <type name="gpointer" c:type="gpointer"/>
              </type>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="progress">
        <callback name="progress">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="view" transfer-ownership="none">
              <type name="CalClientView" c:type="ECalClientView*"/>
            </parameter>
            <parameter name="percent" transfer-ownership="none">
              <type name="guint" c:type="guint"/>
            </parameter>
            <parameter name="message" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="complete">
        <callback name="complete">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="view" transfer-ownership="none">
              <type name="CalClientView" c:type="ECalClientView*"/>
            </parameter>
            <parameter name="error" transfer-ownership="none">
              <type name="GLib.Error" c:type="const GError*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <bitfield name="CalClientViewFlags"
              version="3.6"
              c:type="ECalClientViewFlags">
      <doc xml:whitespace="preserve">Flags that control the behaviour of an #ECalClientView.</doc>
      <member name="none"
              value="0"
              c:identifier="E_CAL_CLIENT_VIEW_FLAGS_NONE"/>
      <member name="notify_initial"
              value="1"
              c:identifier="E_CAL_CLIENT_VIEW_FLAGS_NOTIFY_INITIAL"/>
    </bitfield>
    <record name="CalClientViewPrivate"
            c:type="ECalClientViewPrivate"
            disguised="1">
    </record>
    <class name="CalComponent"
           c:symbol-prefix="cal_component"
           c:type="ECalComponent"
           parent="GObject.Object"
           glib:type-name="ECalComponent"
           glib:get-type="e_cal_component_get_type"
           glib:type-struct="CalComponentClass">
      <constructor name="new" c:identifier="e_cal_component_new">
        <doc xml:whitespace="preserve">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().</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">A newly-created calendar component object.</doc>
          <type name="CalComponent" c:type="ECalComponent*"/>
        </return-value>
      </constructor>
      <constructor name="new_from_icalcomponent"
                   c:identifier="e_cal_component_new_from_icalcomponent"
                   version="3.4"
                   introspectable="0">
        <doc xml:whitespace="preserve">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.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">An #ECalComponet with @icalcomp assigned on success, NULL if the @icalcomp cannot be assigned to #ECalComponent.</doc>
          <type name="CalComponent" c:type="ECalComponent*"/>
        </return-value>
        <parameters>
          <parameter name="icalcomp" transfer-ownership="none">
            <doc xml:whitespace="preserve">An #icalcomponent to use</doc>
            <type c:type="icalcomponent*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_from_string"
                   c:identifier="e_cal_component_new_from_string">
        <doc xml:whitespace="preserve">Creates a new calendar component object from the given iCalendar string.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">A calendar component representing the given iCalendar string on success, NULL if there was an error.</doc>
          <type name="CalComponent" c:type="ECalComponent*"/>
        </return-value>
        <parameters>
          <parameter name="calobj" transfer-ownership="none">
            <doc xml:whitespace="preserve">A string representation of an iCalendar component.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <function name="free_attendee_list"
                c:identifier="e_cal_component_free_attendee_list">
        <doc xml:whitespace="preserve">Frees a list of #ECalComponentAttendee structures.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="attendee_list" transfer-ownership="none">
            <doc xml:whitespace="preserve">List of attendees</doc>
            <type name="GLib.SList" c:type="GSList*">
              <type name="CalComponentAttendee"/>
            </type>
          </parameter>
        </parameters>
      </function>
      <function name="free_categories_list"
                c:identifier="e_cal_component_free_categories_list">
        <doc xml:whitespace="preserve">Frees a list of category strings.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="categ_list" transfer-ownership="none">
            <doc xml:whitespace="preserve">List of category strings</doc>
            <type name="GLib.SList" c:type="GSList*">
              <type name="utf8"/>
            </type>
          </parameter>
        </parameters>
      </function>
      <function name="free_datetime"
                c:identifier="e_cal_component_free_datetime">
        <doc xml:whitespace="preserve">Frees a date/time structure.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="dt" transfer-ownership="none">
            <doc xml:whitespace="preserve">A date/time structure.</doc>
            <type name="CalComponentDateTime" c:type="ECalComponentDateTime*"/>
          </parameter>
        </parameters>
      </function>
      <function name="free_exdate_list"
                c:identifier="e_cal_component_free_exdate_list">
        <doc xml:whitespace="preserve">Frees a list of #ECalComponentDateTime structures as returned by the
e_cal_component_get_exdate_list() function.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="exdate_list" transfer-ownership="none">
            <doc xml:whitespace="preserve">List of #ECalComponentDateTime structures</doc>
            <type name="GLib.SList" c:type="GSList*">
              <type name="CalComponentDateTime"/>
            </type>
          </parameter>
        </parameters>
      </function>
      <function name="free_geo" c:identifier="e_cal_component_free_geo">
        <doc xml:whitespace="preserve">Frees a struct #icalgeotype structure as returned by the calendar component
functions.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="geo" transfer-ownership="none">
            <doc xml:whitespace="preserve">An #icalgeotype structure.</doc>
            <type name="gpointer" c:type="icalgeotype*"/>
          </parameter>
        </parameters>
      </function>
      <function name="free_icaltimetype"
                c:identifier="e_cal_component_free_icaltimetype">
        <doc xml:whitespace="preserve">Frees a struct #icaltimetype value as returned by the calendar component
functions.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="t" transfer-ownership="none">
            <doc xml:whitespace="preserve">An #icaltimetype structure.</doc>
            <type name="gpointer" c:type="icaltimetype*"/>
          </parameter>
        </parameters>
      </function>
      <function name="free_id" c:identifier="e_cal_component_free_id">
        <doc xml:whitespace="preserve">Frees the id.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="id" transfer-ownership="none">
            <doc xml:whitespace="preserve">Component ID</doc>
            <type name="CalComponentId" c:type="ECalComponentId*"/>
          </parameter>
        </parameters>
      </function>
      <function name="free_percent"
                c:identifier="e_cal_component_free_percent">
        <doc xml:whitespace="preserve">Frees a percent value as returned by the e_cal_component_get_percent()
function.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="percent" transfer-ownership="none">
            <doc xml:whitespace="preserve">Percent value.</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
        </parameters>
      </function>
      <function name="free_period_list"
                c:identifier="e_cal_component_free_period_list">
        <doc xml:whitespace="preserve">Frees a list of #ECalComponentPeriod structures.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="period_list" transfer-ownership="none">
            <doc xml:whitespace="preserve">List of #ECalComponentPeriod structures</doc>
            <type name="GLib.SList" c:type="GSList*">
              <type name="CalComponentPeriod"/>
            </type>
          </parameter>
        </parameters>
      </function>
      <function name="free_priority"
                c:identifier="e_cal_component_free_priority">
        <doc xml:whitespace="preserve">Frees a priority value as returned by the e_cal_component_get_priority()
function.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="priority" transfer-ownership="none">
            <doc xml:whitespace="preserve">Priority value.</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
        </parameters>
      </function>
      <function name="free_range" c:identifier="e_cal_component_free_range">
        <doc xml:whitespace="preserve">Frees an #ECalComponentRange structure.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="range" transfer-ownership="none">
            <doc xml:whitespace="preserve">A #ECalComponentRange.</doc>
            <type name="CalComponentRange" c:type="ECalComponentRange*"/>
          </parameter>
        </parameters>
      </function>
      <function name="free_recur_list"
                c:identifier="e_cal_component_free_recur_list"
                introspectable="0">
        <doc xml:whitespace="preserve">Frees a list of struct #icalrecurrencetype structures.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="recur_list" transfer-ownership="none">
            <doc xml:whitespace="preserve">List of struct #icalrecurrencetype structures.</doc>
            <type name="GLib.SList" c:type="GSList*">
              <type c:type="icalrecurrencetype"/>
            </type>
          </parameter>
        </parameters>
      </function>
      <function name="free_sequence"
                c:identifier="e_cal_component_free_sequence">
        <doc xml:whitespace="preserve">Frees a sequence number value.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="sequence" transfer-ownership="none">
            <doc xml:whitespace="preserve">Sequence number value.</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
        </parameters>
      </function>
      <function name="free_text_list"
                c:identifier="e_cal_component_free_text_list">
        <doc xml:whitespace="preserve">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.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="text_list" transfer-ownership="none">
            <doc xml:whitespace="preserve">List of #ECalComponentText structures.</doc>
            <type name="GLib.SList" c:type="GSList*">
              <type name="CalComponentText"/>
            </type>
          </parameter>
        </parameters>
      </function>
      <function name="gen_uid" c:identifier="e_cal_component_gen_uid">
        <doc xml:whitespace="preserve">Generates a unique identifier suitable for calendar components.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">A unique identifier string.  Every time this function is called a different string is returned.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </function>
      <method name="abort_sequence"
              c:identifier="e_cal_component_abort_sequence">
        <doc xml:whitespace="preserve">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.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="add_alarm" c:identifier="e_cal_component_add_alarm">
        <doc xml:whitespace="preserve">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().</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="alarm" transfer-ownership="none">
            <doc xml:whitespace="preserve">An alarm.</doc>
            <type name="CalComponentAlarm" c:type="ECalComponentAlarm*"/>
          </parameter>
        </parameters>
      </method>
      <method name="clone" c:identifier="e_cal_component_clone">
        <doc xml:whitespace="preserve">Creates a new calendar component object by copying the information from
another one.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">A newly-created calendar component with the same values as the original one.</doc>
          <type name="CalComponent" c:type="ECalComponent*"/>
        </return-value>
      </method>
      <method name="commit_sequence"
              c:identifier="e_cal_component_commit_sequence">
        <doc xml:whitespace="preserve">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.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="event_dates_match"
              c:identifier="e_cal_component_event_dates_match">
        <doc xml:whitespace="preserve">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.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the DTSTART and DTEND properties of the 2 components match.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="comp2" transfer-ownership="none">
            <doc xml:whitespace="preserve">A calendar component object.</doc>
            <type name="CalComponent" c:type="ECalComponent*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_alarm"
              c:identifier="e_cal_component_get_alarm"
              introspectable="0">
        <doc xml:whitespace="preserve">Queries a particular alarm subcomponent of a calendar component.</doc>
        <return-value>
          <doc xml:whitespace="preserve">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().</doc>
          <type name="CalComponentAlarm" c:type="ECalComponentAlarm*"/>
        </return-value>
        <parameters>
          <parameter name="auid" transfer-ownership="none">
            <doc xml:whitespace="preserve">Unique identifier for the sought alarm subcomponent.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_alarm_uids"
              c:identifier="e_cal_component_get_alarm_uids">
        <doc xml:whitespace="preserve">Builds a list of the unique identifiers of the alarm subcomponents inside a
calendar component.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">List of unique identifiers for alarms.  This should be freed using cal_obj_uid_list_free().</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="utf8"/>
          </type>
        </return-value>
      </method>
      <method name="get_as_string"
              c:identifier="e_cal_component_get_as_string">
        <doc xml:whitespace="preserve">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.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">String representation of the calendar component according to RFC 2445.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_attachment_list"
              c:identifier="e_cal_component_get_attachment_list">
        <doc xml:whitespace="preserve">Queries the attachment properties of the calendar component object. When done,
the @attachment_list should be freed by calling g_slist_free().</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="attachment_list"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">Return list of URIs to attachments</doc>
            <type name="GLib.SList" c:type="GSList**">
              <type name="utf8"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="get_attendee_list"
              c:identifier="e_cal_component_get_attendee_list">
        <doc xml:whitespace="preserve">Queries the attendee properties of the calendar component object</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="attendee_list"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">Return value for the attendee property. This should be freed using e_cal_component_free_attendee_list().</doc>
            <type name="GLib.SList" c:type="GSList**">
              <type name="CalComponentAttendee"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="get_categories"
              c:identifier="e_cal_component_get_categories">
        <doc xml:whitespace="preserve">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.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="categories" transfer-ownership="none">
            <doc xml:whitespace="preserve">Return holder for the categories.</doc>
            <type name="utf8" c:type="const gchar**"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_categories_list"
              c:identifier="e_cal_component_get_categories_list">
        <doc xml:whitespace="preserve">Queries the list of categories of a calendar component object.  Each element
in the returned categ_list is a string with the corresponding category.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="categ_list"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">Return value for the list of strings, where each string is a category. This should be freed using e_cal_component_free_categories_list().</doc>
            <type name="GLib.SList" c:type="GSList**">
              <type name="utf8"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="get_classification"
              c:identifier="e_cal_component_get_classification">
        <doc xml:whitespace="preserve">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.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="classif" transfer-ownership="none">
            <doc xml:whitespace="preserve">Return value for the classification.</doc>
            <type name="CalComponentClassification"
                  c:type="ECalComponentClassification*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_comment_list"
              c:identifier="e_cal_component_get_comment_list">
        <doc xml:whitespace="preserve">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.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="text_list"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">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.</doc>
            <type name="GLib.SList" c:type="GSList**">
              <type name="CalComponentText"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="get_completed"
              c:identifier="e_cal_component_get_completed">
        <doc xml:whitespace="preserve">Queries the date at which a calendar compoment object was completed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="t" transfer-ownership="none">
            <doc xml:whitespace="preserve">Return value for the completion date.  This should be freed using the e_cal_component_free_icaltimetype() function.</doc>
            <type name="gpointer" c:type="icaltimetype**"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_contact_list"
              c:identifier="e_cal_component_get_contact_list">
        <doc xml:whitespace="preserve">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.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="text_list"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">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.</doc>
            <type name="GLib.SList" c:type="GSList**">
              <type name="CalComponentText"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="get_created" c:identifier="e_cal_component_get_created">
        <doc xml:whitespace="preserve">Queries the date in which a calendar component object was created in the
calendar store.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="t" transfer-ownership="none">
            <doc xml:whitespace="preserve">Return value for the creation date.  This should be freed using the e_cal_component_free_icaltimetype() function.</doc>
            <type name="gpointer" c:type="icaltimetype**"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_description_list"
              c:identifier="e_cal_component_get_description_list">
        <doc xml:whitespace="preserve">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.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="text_list"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">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.</doc>
            <type name="GLib.SList" c:type="GSList**">
              <type name="CalComponentText"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="get_dtend" c:identifier="e_cal_component_get_dtend">
        <doc xml:whitespace="preserve">Queries the date/time end of a calendar component object.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="dt" transfer-ownership="none">
            <doc xml:whitespace="preserve">Return value for the date/time end.  This should be freed with the e_cal_component_free_datetime() function.</doc>
            <type name="CalComponentDateTime" c:type="ECalComponentDateTime*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_dtstamp" c:identifier="e_cal_component_get_dtstamp">
        <doc xml:whitespace="preserve">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.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="t" transfer-ownership="none">
            <doc xml:whitespace="preserve">A value for the date/timestamp.</doc>
            <type name="gpointer" c:type="icaltimetype*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_dtstart" c:identifier="e_cal_component_get_dtstart">
        <doc xml:whitespace="preserve">Queries the date/time start of a calendar component object.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="dt" transfer-ownership="none">
            <doc xml:whitespace="preserve">Return value for the date/time start.  This should be freed with the e_cal_component_free_datetime() function.</doc>
            <type name="CalComponentDateTime" c:type="ECalComponentDateTime*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_due" c:identifier="e_cal_component_get_due">
        <doc xml:whitespace="preserve">Queries the due date/time of a calendar component object.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="dt" transfer-ownership="none">
            <doc xml:whitespace="preserve">Return value for the due date/time.  This should be freed with the e_cal_component_free_datetime() function.</doc>
            <type name="CalComponentDateTime" c:type="ECalComponentDateTime*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_exdate_list"
              c:identifier="e_cal_component_get_exdate_list">
        <doc xml:whitespace="preserve">Queries the list of exception date properties in a calendar component object.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="exdate_list"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">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.</doc>
            <type name="GLib.SList" c:type="GSList**">
              <type name="CalComponentDateTime"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="get_exrule_list"
              c:identifier="e_cal_component_get_exrule_list"
              introspectable="0">
        <doc xml:whitespace="preserve">Queries the list of exception rule properties of a calendar component
object.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="recur_list"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">List of exception rules as struct #icalrecurrencetype structures.  This should be freed using the e_cal_component_free_recur_list() function.</doc>
            <type name="GLib.SList" c:type="GSList**">
              <type c:type="icalrecurrencetype"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="get_exrule_property_list"
              c:identifier="e_cal_component_get_exrule_property_list"
              introspectable="0">
        <doc xml:whitespace="preserve">Queries the list of exception rule properties of a calendar component object.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="recur_list"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="none">
            <doc xml:whitespace="preserve">Returns a list of exception rule properties</doc>
            <type name="GLib.SList" c:type="GSList**">
              <type c:type="icalrecurrencetype"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="get_geo" c:identifier="e_cal_component_get_geo">
        <doc xml:whitespace="preserve">Gets the geographic position property of a calendar component object.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="geo" transfer-ownership="none">
            <doc xml:whitespace="preserve">Return value for the geographic position property.  This should be freed using the e_cal_component_free_geo() function.</doc>
            <type name="gpointer" c:type="icalgeotype**"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_icalcomponent"
              c:identifier="e_cal_component_get_icalcomponent"
              introspectable="0">
        <doc xml:whitespace="preserve">Queries the #icalcomponent structure that a calendar component object is
wrapping.</doc>
        <return-value>
          <doc xml:whitespace="preserve">An #icalcomponent structure, or NULL if the @comp has no #icalcomponent set to it.</doc>
          <type c:type="icalcomponent*"/>
        </return-value>
      </method>
      <method name="get_id"
              c:identifier="e_cal_component_get_id"
              introspectable="0">
        <doc xml:whitespace="preserve">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.</doc>
        <return-value>
          <doc xml:whitespace="preserve">the id of the component</doc>
          <type name="CalComponentId" c:type="ECalComponentId*"/>
        </return-value>
      </method>
      <method name="get_last_modified"
              c:identifier="e_cal_component_get_last_modified">
        <doc xml:whitespace="preserve">Queries the time at which a calendar component object was last modified in
the calendar store.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="t" transfer-ownership="none">
            <doc xml:whitespace="preserve">Return value for the last modified time value.</doc>
            <type name="gpointer" c:type="icaltimetype**"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_location" c:identifier="e_cal_component_get_location">
        <doc xml:whitespace="preserve">Queries the location property of a calendar component object.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="location" transfer-ownership="none">
            <doc xml:whitespace="preserve">Return value for the location.</doc>
            <type name="utf8" c:type="const gchar**"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_num_attachments"
              c:identifier="e_cal_component_get_num_attachments">
        <doc xml:whitespace="preserve">Get the number of attachments to this calendar component object.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the number of attachments.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
      </method>
      <method name="get_organizer"
              c:identifier="e_cal_component_get_organizer">
        <doc xml:whitespace="preserve">Queries the organizer property of a calendar component object</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="organizer" transfer-ownership="none">
            <doc xml:whitespace="preserve">A value for the organizer</doc>
            <type name="CalComponentOrganizer"
                  c:type="ECalComponentOrganizer*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_percent" c:identifier="e_cal_component_get_percent">
        <doc xml:whitespace="preserve">Queries the percent-complete property of a calendar component object.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="percent" transfer-ownership="none">
            <doc xml:whitespace="preserve">Return value for the percent-complete property.  This should be freed using the e_cal_component_free_percent() function.</doc>
            <type name="gint" c:type="gint**"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_percent_as_int"
              c:identifier="e_cal_component_get_percent_as_int"
              version="2.28">
        <return-value transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </return-value>
      </method>
      <method name="get_priority" c:identifier="e_cal_component_get_priority">
        <doc xml:whitespace="preserve">Queries the priority property of a calendar component object.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="priority" transfer-ownership="none">
            <doc xml:whitespace="preserve">Return value for the priority property.  This should be freed using the e_cal_component_free_priority() function.</doc>
            <type name="gint" c:type="gint**"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_rdate_list"
              c:identifier="e_cal_component_get_rdate_list">
        <doc xml:whitespace="preserve">Queries the list of recurrence date properties in a calendar component
object.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="period_list"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">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()</doc>
            <type name="GLib.SList" c:type="GSList**">
              <type name="CalComponentPeriod"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="get_recurid" c:identifier="e_cal_component_get_recurid">
        <doc xml:whitespace="preserve">Queries the recurrence id property of a calendar component object.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="recur_id" transfer-ownership="none">
            <doc xml:whitespace="preserve">Return value for the recurrence id property</doc>
            <type name="CalComponentRange" c:type="ECalComponentRange*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_recurid_as_string"
              c:identifier="e_cal_component_get_recurid_as_string">
        <doc xml:whitespace="preserve">Gets the recurrence ID property as a string.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">the recurrence ID as a string.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_rrule_list"
              c:identifier="e_cal_component_get_rrule_list"
              introspectable="0">
        <doc xml:whitespace="preserve">Queries the list of recurrence rule properties of a calendar component
object.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="recur_list"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">List of recurrence rules as struct #icalrecurrencetype structures.  This should be freed using e_cal_component_free_recur_list().</doc>
            <type name="GLib.SList" c:type="GSList**">
              <type c:type="icalrecurrencetype"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="get_rrule_property_list"
              c:identifier="e_cal_component_get_rrule_property_list"
              introspectable="0">
        <doc xml:whitespace="preserve">Queries a list of recurrence rule properties of a calendar component object.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="recur_list"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="none">
            <doc xml:whitespace="preserve">Returns a list of recurrence rule properties.</doc>
            <type name="GLib.SList" c:type="GSList**">
              <type c:type="icalrecurrencetype"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="get_sequence" c:identifier="e_cal_component_get_sequence">
        <doc xml:whitespace="preserve">Queries the sequence number of a calendar component object.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="sequence" transfer-ownership="none">
            <doc xml:whitespace="preserve">Return value for the sequence number.  This should be freed using e_cal_component_free_sequence().</doc>
            <type name="gint" c:type="gint**"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_status"
              c:identifier="e_cal_component_get_status"
              introspectable="0">
        <doc xml:whitespace="preserve">Queries the status property of a calendar component object.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="status"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">Return value for the status value.  It is set to #ICAL_STATUS_NONE if the component has no status property.</doc>
            <type c:type="icalproperty_status*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_summary" c:identifier="e_cal_component_get_summary">
        <doc xml:whitespace="preserve">Queries the summary of a calendar component object.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="summary" transfer-ownership="none">
            <doc xml:whitespace="preserve">Return value for the summary property and its parameters.</doc>
            <type name="CalComponentText" c:type="ECalComponentText*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_transparency"
              c:identifier="e_cal_component_get_transparency">
        <doc xml:whitespace="preserve">Queries the time transparency of a calendar component object.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="transp" transfer-ownership="none">
            <doc xml:whitespace="preserve">Return value for the time transparency.</doc>
            <type name="CalComponentTransparency"
                  c:type="ECalComponentTransparency*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_uid" c:identifier="e_cal_component_get_uid">
        <doc xml:whitespace="preserve">Queries the unique identifier of a calendar component object.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="uid" transfer-ownership="none">
            <doc xml:whitespace="preserve">Return value for the UID string.</doc>
            <type name="utf8" c:type="const gchar**"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_url" c:identifier="e_cal_component_get_url">
        <doc xml:whitespace="preserve">Queries the uniform resource locator property of a calendar component object.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="url" transfer-ownership="none">
            <doc xml:whitespace="preserve">Return value for the URL.</doc>
            <type name="utf8" c:type="const gchar**"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_vtype" c:identifier="e_cal_component_get_vtype">
        <doc xml:whitespace="preserve">Queries the type of a calendar component object.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The type of the component, as defined by RFC 2445.</doc>
          <type name="CalComponentVType" c:type="ECalComponentVType"/>
        </return-value>
      </method>
      <method name="has_alarms" c:identifier="e_cal_component_has_alarms">
        <doc xml:whitespace="preserve">Checks whether the component has any alarms.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the component has any alarms.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="has_attachments"
              c:identifier="e_cal_component_has_attachments">
        <doc xml:whitespace="preserve">Queries the component to see if it has attachments.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if there are attachments, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="has_attendees"
              c:identifier="e_cal_component_has_attendees">
        <doc xml:whitespace="preserve">Queries a calendar component object for the existence of attendees.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if there are attendees, FALSE if not.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="has_exceptions"
              c:identifier="e_cal_component_has_exceptions">
        <doc xml:whitespace="preserve">Queries whether a calendar component object has any exception dates
or exception rules.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the component has exceptions, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="has_exdates" c:identifier="e_cal_component_has_exdates">
        <doc xml:whitespace="preserve">Queries whether a calendar component object has any exception dates defined
for it.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the component has exception dates, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="has_exrules" c:identifier="e_cal_component_has_exrules">
        <doc xml:whitespace="preserve">Queries whether a calendar component object has any exception rules defined
for it.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the component has exception rules, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="has_organizer"
              c:identifier="e_cal_component_has_organizer">
        <doc xml:whitespace="preserve">Check whether a calendar component object has an organizer or not.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if there is an organizer, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="has_rdates" c:identifier="e_cal_component_has_rdates">
        <doc xml:whitespace="preserve">Queries whether a calendar component object has any recurrence dates defined
for it.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the component has recurrence dates, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="has_recurrences"
              c:identifier="e_cal_component_has_recurrences">
        <doc xml:whitespace="preserve">Queries whether a calendar component object has any recurrence dates or
recurrence rules.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the component has recurrences, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="has_rrules" c:identifier="e_cal_component_has_rrules">
        <doc xml:whitespace="preserve">Queries whether a calendar component object has any recurrence rules defined
for it.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the component has recurrence rules, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="has_simple_recurrence"
              c:identifier="e_cal_component_has_simple_recurrence">
        <doc xml:whitespace="preserve">Checks whether the given calendar component object has simple recurrence
rules or more complicated ones.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if it has a simple recurrence rule, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="is_instance" c:identifier="e_cal_component_is_instance">
        <doc xml:whitespace="preserve">Checks whether a calendar component object is an instance of a recurring
event.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if it is an instance, FALSE if not.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="remove_alarm" c:identifier="e_cal_component_remove_alarm">
        <doc xml:whitespace="preserve">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.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="auid" transfer-ownership="none">
            <doc xml:whitespace="preserve">UID of the alarm to remove.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_all_alarms"
              c:identifier="e_cal_component_remove_all_alarms">
        <doc xml:whitespace="preserve">Remove all alarms from the calendar component</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="rescan" c:identifier="e_cal_component_rescan">
        <doc xml:whitespace="preserve">Rescans the #icalcomponent being wrapped by the given calendar component. This
would replace any value that was changed in the wrapped #icalcomponent.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="set_attachment_list"
              c:identifier="e_cal_component_set_attachment_list">
        <doc xml:whitespace="preserve">This currently handles only attachments that are URIs
in the file system - not inline binaries.

Sets the attachments of a calendar component object</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="attachment_list" transfer-ownership="none">
            <doc xml:whitespace="preserve">list of URIs to attachment pointers</doc>
            <type name="GLib.SList" c:type="GSList*">
              <type name="utf8"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="set_attendee_list"
              c:identifier="e_cal_component_set_attendee_list">
        <doc xml:whitespace="preserve">Sets the attendees of a calendar component object</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="attendee_list" transfer-ownership="none">
            <doc xml:whitespace="preserve">Values for attendee properties</doc>
            <type name="GLib.SList" c:type="GSList*">
              <type name="CalComponentAttendee"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="set_categories"
              c:identifier="e_cal_component_set_categories">
        <doc xml:whitespace="preserve">Sets the list of categories for a calendar component.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="categories" transfer-ownership="none">
            <doc xml:whitespace="preserve">Comma-separated list of categories.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_categories_list"
              c:identifier="e_cal_component_set_categories_list">
        <doc xml:whitespace="preserve">Sets the list of categories of a calendar component object.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="categ_list" transfer-ownership="none">
            <doc xml:whitespace="preserve">List of strings, one for each category.</doc>
            <type name="GLib.SList" c:type="GSList*">
              <type name="utf8"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="set_classification"
              c:identifier="e_cal_component_set_classification">
        <doc xml:whitespace="preserve">Sets the classification property of a calendar component object.  To unset
the property, specify E_CAL_COMPONENT_CLASS_NONE for @classif.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="classif" transfer-ownership="none">
            <doc xml:whitespace="preserve">Classification to use.</doc>
            <type name="CalComponentClassification"
                  c:type="ECalComponentClassification"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_comment_list"
              c:identifier="e_cal_component_set_comment_list">
        <doc xml:whitespace="preserve">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.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="text_list" transfer-ownership="none">
            <doc xml:whitespace="preserve">List of #ECalComponentText structures.</doc>
            <type name="GLib.SList" c:type="GSList*">
              <type name="CalComponentText"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="set_completed"
              c:identifier="e_cal_component_set_completed">
        <doc xml:whitespace="preserve">Sets the date at which a calendar component object was completed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="t" transfer-ownership="none">
            <doc xml:whitespace="preserve">Value for the completion date.</doc>
            <type name="gpointer" c:type="icaltimetype*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_contact_list"
              c:identifier="e_cal_component_set_contact_list">
        <doc xml:whitespace="preserve">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.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="text_list" transfer-ownership="none">
            <doc xml:whitespace="preserve">List of #ECalComponentText structures.</doc>
            <type name="GLib.SList" c:type="GSList*">
              <type name="CalComponentText"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="set_created" c:identifier="e_cal_component_set_created">
        <doc xml:whitespace="preserve">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.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="t" transfer-ownership="none">
            <doc xml:whitespace="preserve">Value for the creation date.</doc>
            <type name="gpointer" c:type="icaltimetype*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_description_list"
              c:identifier="e_cal_component_set_description_list"
              introspectable="0">
        <doc xml:whitespace="preserve">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.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="text_list" transfer-ownership="none">
            <doc xml:whitespace="preserve">List of #ECalComponentSummary structures.</doc>
            <type name="GLib.SList" c:type="GSList*">
              <type c:type="ECalComponentSummary"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="set_dtend" c:identifier="e_cal_component_set_dtend">
        <doc xml:whitespace="preserve">Sets the date/time end property of a calendar component object.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="dt" transfer-ownership="none">
            <doc xml:whitespace="preserve">End date/time.</doc>
            <type name="CalComponentDateTime" c:type="ECalComponentDateTime*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_dtstamp" c:identifier="e_cal_component_set_dtstamp">
        <doc xml:whitespace="preserve">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.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="t" transfer-ownership="none">
            <doc xml:whitespace="preserve">Date/timestamp value.</doc>
            <type name="gpointer" c:type="icaltimetype*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_dtstart" c:identifier="e_cal_component_set_dtstart">
        <doc xml:whitespace="preserve">Sets the date/time start property of a calendar component object.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="dt" transfer-ownership="none">
            <doc xml:whitespace="preserve">Start date/time.</doc>
            <type name="CalComponentDateTime" c:type="ECalComponentDateTime*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_due" c:identifier="e_cal_component_set_due">
        <doc xml:whitespace="preserve">Sets the due date/time property of a calendar component object.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="dt" transfer-ownership="none">
            <doc xml:whitespace="preserve">End date/time.</doc>
            <type name="CalComponentDateTime" c:type="ECalComponentDateTime*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_exdate_list"
              c:identifier="e_cal_component_set_exdate_list">
        <doc xml:whitespace="preserve">Sets the list of exception dates in a calendar component object.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="exdate_list" transfer-ownership="none">
            <doc xml:whitespace="preserve">List of #ECalComponentDateTime structures.</doc>
            <type name="GLib.SList" c:type="GSList*">
              <type name="CalComponentDateTime"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="set_exrule_list"
              c:identifier="e_cal_component_set_exrule_list"
              introspectable="0">
        <doc xml:whitespace="preserve">Sets the list of exception rules in a calendar component object.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="recur_list" transfer-ownership="none">
            <doc xml:whitespace="preserve">List of struct #icalrecurrencetype structures.</doc>
            <type name="GLib.SList" c:type="GSList*">
              <type c:type="icalrecurrencetype"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="set_geo" c:identifier="e_cal_component_set_geo">
        <doc xml:whitespace="preserve">Sets the geographic position property on a calendar component object.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="geo" transfer-ownership="none">
            <doc xml:whitespace="preserve">Value for the geographic position property.</doc>
            <type name="gpointer" c:type="icalgeotype*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_icalcomponent"
              c:identifier="e_cal_component_set_icalcomponent">
        <doc xml:whitespace="preserve">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.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE on success, FALSE if @icalcomp is an unsupported component type.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="icalcomp" transfer-ownership="none">
            <doc xml:whitespace="preserve">An #icalcomponent.</doc>
            <type name="glong" c:type="icalcomponent*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_last_modified"
              c:identifier="e_cal_component_set_last_modified">
        <doc xml:whitespace="preserve">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.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="t" transfer-ownership="none">
            <doc xml:whitespace="preserve">Value for the last time modified.</doc>
            <type name="gpointer" c:type="icaltimetype*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_location" c:identifier="e_cal_component_set_location">
        <doc xml:whitespace="preserve">Sets the location property of a calendar component object.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="location" transfer-ownership="none">
            <doc xml:whitespace="preserve">Location value.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_new_vtype"
              c:identifier="e_cal_component_set_new_vtype">
        <doc xml:whitespace="preserve">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.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="type" transfer-ownership="none">
            <doc xml:whitespace="preserve">Type of calendar component to create.</doc>
            <type name="CalComponentVType" c:type="ECalComponentVType"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_organizer"
              c:identifier="e_cal_component_set_organizer">
        <doc xml:whitespace="preserve">Sets the organizer of a calendar component object</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="organizer" transfer-ownership="none">
            <doc xml:whitespace="preserve">Value for the organizer property</doc>
            <type name="CalComponentOrganizer"
                  c:type="ECalComponentOrganizer*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_percent" c:identifier="e_cal_component_set_percent">
        <doc xml:whitespace="preserve">Sets the percent-complete property of a calendar component object.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="percent" transfer-ownership="none">
            <doc xml:whitespace="preserve">Value for the percent-complete property.</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_percent_as_int"
              c:identifier="e_cal_component_set_percent_as_int"
              version="2.28">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="percent" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_priority" c:identifier="e_cal_component_set_priority">
        <doc xml:whitespace="preserve">Sets the priority property of a calendar component object.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="priority" transfer-ownership="none">
            <doc xml:whitespace="preserve">Value for the priority property.</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_rdate_list"
              c:identifier="e_cal_component_set_rdate_list">
        <doc xml:whitespace="preserve">Sets the list of recurrence dates in a calendar component object.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="period_list" transfer-ownership="none">
            <doc xml:whitespace="preserve">List of #ECalComponentPeriod structures</doc>
            <type name="GLib.SList" c:type="GSList*">
              <type name="CalComponentPeriod"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="set_recurid" c:identifier="e_cal_component_set_recurid">
        <doc xml:whitespace="preserve">Sets the recurrence id property of a calendar component object.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="recur_id" transfer-ownership="none">
            <doc xml:whitespace="preserve">Value for the recurrence id property.</doc>
            <type name="CalComponentRange" c:type="ECalComponentRange*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_rrule_list"
              c:identifier="e_cal_component_set_rrule_list"
              introspectable="0">
        <doc xml:whitespace="preserve">Sets the list of recurrence rules in a calendar component object.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="recur_list" transfer-ownership="none">
            <doc xml:whitespace="preserve">List of struct #icalrecurrencetype structures.</doc>
            <type name="GLib.SList" c:type="GSList*">
              <type c:type="icalrecurrencetype"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="set_sequence" c:identifier="e_cal_component_set_sequence">
        <doc xml:whitespace="preserve">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.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="sequence" transfer-ownership="none">
            <doc xml:whitespace="preserve">Sequence number value.</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_status"
              c:identifier="e_cal_component_set_status"
              introspectable="0">
        <doc xml:whitespace="preserve">Sets the status property of a calendar component object.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="status" transfer-ownership="none">
            <doc xml:whitespace="preserve">Status value.  You should use #ICAL_STATUS_NONE if you want to unset this property.</doc>
            <type c:type="icalproperty_status"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_summary" c:identifier="e_cal_component_set_summary">
        <doc xml:whitespace="preserve">Sets the summary of a calendar component object.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="summary" transfer-ownership="none">
            <doc xml:whitespace="preserve">Summary property and its parameters.</doc>
            <type name="CalComponentText" c:type="ECalComponentText*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_transparency"
              c:identifier="e_cal_component_set_transparency">
        <doc xml:whitespace="preserve">Sets the time transparency of a calendar component object.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="transp" transfer-ownership="none">
            <doc xml:whitespace="preserve">Time transparency value.</doc>
            <type name="CalComponentTransparency"
                  c:type="ECalComponentTransparency"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_uid" c:identifier="e_cal_component_set_uid">
        <doc xml:whitespace="preserve">Sets the unique identifier string of a calendar component object.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="uid" transfer-ownership="none">
            <doc xml:whitespace="preserve">Unique identifier.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_url" c:identifier="e_cal_component_set_url">
        <doc xml:whitespace="preserve">Sets the uniform resource locator property of a calendar component object.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="url" transfer-ownership="none">
            <doc xml:whitespace="preserve">URL value.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="strip_errors" c:identifier="e_cal_component_strip_errors">
        <doc xml:whitespace="preserve">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.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <field name="object">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="CalComponentPrivate" c:type="ECalComponentPrivate*"/>
      </field>
    </class>
    <record name="CalComponentAlarm" c:type="ECalComponentAlarm" disguised="1">
      <method name="clone"
              c:identifier="e_cal_component_alarm_clone"
              introspectable="0">
        <doc xml:whitespace="preserve">Creates a new alarm subcomponent by copying the information from another one.</doc>
        <return-value>
          <doc xml:whitespace="preserve">A newly-created alarm subcomponent with the same values as the original one.  Should be freed with e_cal_component_alarm_free().</doc>
          <type name="CalComponentAlarm" c:type="ECalComponentAlarm*"/>
        </return-value>
      </method>
      <method name="free" c:identifier="e_cal_component_alarm_free">
        <doc xml:whitespace="preserve">Frees an alarm structure.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="get_action"
              c:identifier="e_cal_component_alarm_get_action">
        <doc xml:whitespace="preserve">Queries the action type of an alarm.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="action" transfer-ownership="none">
            <doc xml:whitespace="preserve">Return value for the alarm's action type.</doc>
            <type name="CalComponentAlarmAction"
                  c:type="ECalComponentAlarmAction*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_attach"
              c:identifier="e_cal_component_alarm_get_attach"
              introspectable="0">
        <doc xml:whitespace="preserve">Queries the attachment property of an alarm.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="attach" transfer-ownership="none">
            <doc xml:whitespace="preserve">Return value for the attachment; should be freed using icalattach_unref().</doc>
            <type c:type="icalattach**"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_attendee_list"
              c:identifier="e_cal_component_alarm_get_attendee_list">
        <doc xml:whitespace="preserve">Gets the list of attendees associated with an alarm.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="attendee_list"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">Return value for the list of attendees.</doc>
            <type name="GLib.SList" c:type="GSList**">
              <type name="CalComponentAttendee"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="get_description"
              c:identifier="e_cal_component_alarm_get_description">
        <doc xml:whitespace="preserve">Queries the description property of an alarm.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="description" transfer-ownership="none">
            <doc xml:whitespace="preserve">Return value for the description property and its parameters.</doc>
            <type name="CalComponentText" c:type="ECalComponentText*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_icalcomponent"
              c:identifier="e_cal_component_alarm_get_icalcomponent"
              introspectable="0">
        <doc xml:whitespace="preserve">Get the icalcomponent associated with the given #ECalComponentAlarm.</doc>
        <return-value>
          <doc xml:whitespace="preserve">the icalcomponent.</doc>
          <type c:type="icalcomponent*"/>
        </return-value>
      </method>
      <method name="get_repeat"
              c:identifier="e_cal_component_alarm_get_repeat">
        <doc xml:whitespace="preserve">Queries the repeat/duration properties of an alarm.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="repeat" transfer-ownership="none">
            <doc xml:whitespace="preserve">Return value for the repeat/duration properties.</doc>
            <type name="CalComponentAlarmRepeat"
                  c:type="ECalComponentAlarmRepeat*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_trigger"
              c:identifier="e_cal_component_alarm_get_trigger">
        <doc xml:whitespace="preserve">Queries the trigger time for an alarm.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="trigger" transfer-ownership="none">
            <doc xml:whitespace="preserve">Return value for the trigger time.</doc>
            <type name="CalComponentAlarmTrigger"
                  c:type="ECalComponentAlarmTrigger*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_uid" c:identifier="e_cal_component_alarm_get_uid">
        <doc xml:whitespace="preserve">Queries the unique identifier of an alarm subcomponent.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">UID of the alarm.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
      </method>
      <method name="has_attendees"
              c:identifier="e_cal_component_alarm_has_attendees">
        <doc xml:whitespace="preserve">Queries an alarm to see if it has attendees associated with it.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if there are attendees in the alarm, FALSE if not.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="set_action"
              c:identifier="e_cal_component_alarm_set_action">
        <doc xml:whitespace="preserve">Sets the action type for an alarm.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="action" transfer-ownership="none">
            <doc xml:whitespace="preserve">Action type.</doc>
            <type name="CalComponentAlarmAction"
                  c:type="ECalComponentAlarmAction"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_attach"
              c:identifier="e_cal_component_alarm_set_attach"
              introspectable="0">
        <doc xml:whitespace="preserve">Sets the attachment property of an alarm.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="attach" transfer-ownership="none">
            <doc xml:whitespace="preserve">Attachment property or NULL to remove an existing property.</doc>
            <type c:type="icalattach*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_attendee_list"
              c:identifier="e_cal_component_alarm_set_attendee_list">
        <doc xml:whitespace="preserve">Sets the list of attendees for an alarm.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="attendee_list" transfer-ownership="none">
            <doc xml:whitespace="preserve">List of attendees.</doc>
            <type name="GLib.SList" c:type="GSList*">
              <type name="CalComponentAttendee"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="set_description"
              c:identifier="e_cal_component_alarm_set_description">
        <doc xml:whitespace="preserve">Sets the description property of an alarm.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="description" transfer-ownership="none">
            <doc xml:whitespace="preserve">Description property and its parameters, or NULL for no description.</doc>
            <type name="CalComponentText" c:type="ECalComponentText*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_repeat"
              c:identifier="e_cal_component_alarm_set_repeat">
        <doc xml:whitespace="preserve">Sets the repeat/duration values for an alarm.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="repeat" transfer-ownership="none">
            <doc xml:whitespace="preserve">Repeat/duration values.  To remove any repetitions from the alarm, set the @repeat.repetitions to 0.</doc>
            <type name="CalComponentAlarmRepeat"
                  c:type="ECalComponentAlarmRepeat"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_trigger"
              c:identifier="e_cal_component_alarm_set_trigger">
        <doc xml:whitespace="preserve">Sets the trigger time of an alarm.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="trigger" transfer-ownership="none">
            <doc xml:whitespace="preserve">Trigger time structure.</doc>
            <type name="CalComponentAlarmTrigger"
                  c:type="ECalComponentAlarmTrigger"/>
          </parameter>
        </parameters>
      </method>
      <function name="new"
                c:identifier="e_cal_component_alarm_new"
                introspectable="0">
        <doc xml:whitespace="preserve">Create a new alarm object.</doc>
        <return-value>
          <doc xml:whitespace="preserve">a new alarm component</doc>
          <type name="CalComponentAlarm" c:type="ECalComponentAlarm*"/>
        </return-value>
      </function>
    </record>
    <enumeration name="CalComponentAlarmAction"
                 c:type="ECalComponentAlarmAction">
      <member name="none" value="0" c:identifier="E_CAL_COMPONENT_ALARM_NONE"/>
      <member name="audio"
              value="1"
              c:identifier="E_CAL_COMPONENT_ALARM_AUDIO"/>
      <member name="display"
              value="2"
              c:identifier="E_CAL_COMPONENT_ALARM_DISPLAY"/>
      <member name="email"
              value="3"
              c:identifier="E_CAL_COMPONENT_ALARM_EMAIL"/>
      <member name="procedure"
              value="4"
              c:identifier="E_CAL_COMPONENT_ALARM_PROCEDURE"/>
      <member name="unknown"
              value="5"
              c:identifier="E_CAL_COMPONENT_ALARM_UNKNOWN"/>
    </enumeration>
    <record name="CalComponentAlarmInstance"
            c:type="ECalComponentAlarmInstance">
      <field name="auid" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="trigger" writable="1">
        <type name="glong" c:type="time_t"/>
      </field>
      <field name="occur_start" writable="1">
        <type name="glong" c:type="time_t"/>
      </field>
      <field name="occur_end" writable="1">
        <type name="glong" c:type="time_t"/>
      </field>
    </record>
    <record name="CalComponentAlarmRepeat" c:type="ECalComponentAlarmRepeat">
      <field name="repetitions" writable="1">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="duration" writable="1">
        <type name="gpointer" c:type="icaldurationtype"/>
      </field>
    </record>
    <record name="CalComponentAlarmTrigger" c:type="ECalComponentAlarmTrigger">
      <field name="type" writable="1">
        <type name="CalComponentAlarmTriggerType"
              c:type="ECalComponentAlarmTriggerType"/>
      </field>
      <union name="u" c:type="u">
        <field name="rel_duration" writable="1">
          <type name="gpointer" c:type="icaldurationtype"/>
        </field>
        <field name="abs_time" writable="1">
          <type name="gpointer" c:type="icaltimetype"/>
        </field>
      </union>
    </record>
    <enumeration name="CalComponentAlarmTriggerType"
                 c:type="ECalComponentAlarmTriggerType">
      <member name="none"
              value="0"
              c:identifier="E_CAL_COMPONENT_ALARM_TRIGGER_NONE"/>
      <member name="relative_start"
              value="1"
              c:identifier="E_CAL_COMPONENT_ALARM_TRIGGER_RELATIVE_START"/>
      <member name="relative_end"
              value="2"
              c:identifier="E_CAL_COMPONENT_ALARM_TRIGGER_RELATIVE_END"/>
      <member name="absolute"
              value="3"
              c:identifier="E_CAL_COMPONENT_ALARM_TRIGGER_ABSOLUTE"/>
    </enumeration>
    <record name="CalComponentAlarms" c:type="ECalComponentAlarms">
      <field name="comp" writable="1">
        <type name="CalComponent" c:type="ECalComponent*"/>
      </field>
      <field name="alarms" writable="1">
        <type name="GLib.SList" c:type="GSList*">
          <type name="gpointer" c:type="gpointer"/>
        </type>
      </field>
      <method name="free" c:identifier="e_cal_component_alarms_free">
        <doc xml:whitespace="preserve">Frees a #ECalComponentAlarms structure.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
    </record>
    <record name="CalComponentAttendee" c:type="ECalComponentAttendee">
      <field name="value" writable="1">
        <type name="utf8" c:type="const gchar*"/>
      </field>
      <field name="member" writable="1">
        <type name="utf8" c:type="const gchar*"/>
      </field>
      <field name="cutype" introspectable="0" writable="1">
        <type c:type="icalparameter_cutype"/>
      </field>
      <field name="role" introspectable="0" writable="1">
        <type c:type="icalparameter_role"/>
      </field>
      <field name="status" introspectable="0" writable="1">
        <type c:type="icalparameter_partstat"/>
      </field>
      <field name="rsvp" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="delto" writable="1">
        <type name="utf8" c:type="const gchar*"/>
      </field>
      <field name="delfrom" writable="1">
        <type name="utf8" c:type="const gchar*"/>
      </field>
      <field name="sentby" writable="1">
        <type name="utf8" c:type="const gchar*"/>
      </field>
      <field name="cn" writable="1">
        <type name="utf8" c:type="const gchar*"/>
      </field>
      <field name="language" writable="1">
        <type name="utf8" c:type="const gchar*"/>
      </field>
    </record>
    <record name="CalComponentClass"
            c:type="ECalComponentClass"
            glib:is-gtype-struct-for="CalComponent">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <enumeration name="CalComponentClassification"
                 c:type="ECalComponentClassification">
      <member name="none" value="0" c:identifier="E_CAL_COMPONENT_CLASS_NONE"/>
      <member name="public"
              value="1"
              c:identifier="E_CAL_COMPONENT_CLASS_PUBLIC"/>
      <member name="private"
              value="2"
              c:identifier="E_CAL_COMPONENT_CLASS_PRIVATE"/>
      <member name="confidential"
              value="3"
              c:identifier="E_CAL_COMPONENT_CLASS_CONFIDENTIAL"/>
      <member name="unknown"
              value="4"
              c:identifier="E_CAL_COMPONENT_CLASS_UNKNOWN"/>
    </enumeration>
    <record name="CalComponentDateTime" c:type="ECalComponentDateTime">
      <field name="value" writable="1">
        <type name="gpointer" c:type="icaltimetype*"/>
      </field>
      <field name="tzid" writable="1">
        <type name="utf8" c:type="const gchar*"/>
      </field>
    </record>
    <enumeration name="CalComponentField" c:type="ECalComponentField">
      <member name="categories"
              value="0"
              c:identifier="E_CAL_COMPONENT_FIELD_CATEGORIES"/>
      <member name="classification"
              value="1"
              c:identifier="E_CAL_COMPONENT_FIELD_CLASSIFICATION"/>
      <member name="completed"
              value="2"
              c:identifier="E_CAL_COMPONENT_FIELD_COMPLETED"/>
      <member name="dtend"
              value="3"
              c:identifier="E_CAL_COMPONENT_FIELD_DTEND"/>
      <member name="dtstart"
              value="4"
              c:identifier="E_CAL_COMPONENT_FIELD_DTSTART"/>
      <member name="due" value="5" c:identifier="E_CAL_COMPONENT_FIELD_DUE"/>
      <member name="geo" value="6" c:identifier="E_CAL_COMPONENT_FIELD_GEO"/>
      <member name="percent"
              value="7"
              c:identifier="E_CAL_COMPONENT_FIELD_PERCENT"/>
      <member name="priority"
              value="8"
              c:identifier="E_CAL_COMPONENT_FIELD_PRIORITY"/>
      <member name="summary"
              value="9"
              c:identifier="E_CAL_COMPONENT_FIELD_SUMMARY"/>
      <member name="transparency"
              value="10"
              c:identifier="E_CAL_COMPONENT_FIELD_TRANSPARENCY"/>
      <member name="url" value="11" c:identifier="E_CAL_COMPONENT_FIELD_URL"/>
      <member name="has_alarms"
              value="12"
              c:identifier="E_CAL_COMPONENT_FIELD_HAS_ALARMS"/>
      <member name="icon"
              value="13"
              c:identifier="E_CAL_COMPONENT_FIELD_ICON"/>
      <member name="complete"
              value="14"
              c:identifier="E_CAL_COMPONENT_FIELD_COMPLETE"/>
      <member name="recurring"
              value="15"
              c:identifier="E_CAL_COMPONENT_FIELD_RECURRING"/>
      <member name="overdue"
              value="16"
              c:identifier="E_CAL_COMPONENT_FIELD_OVERDUE"/>
      <member name="color"
              value="17"
              c:identifier="E_CAL_COMPONENT_FIELD_COLOR"/>
      <member name="status"
              value="18"
              c:identifier="E_CAL_COMPONENT_FIELD_STATUS"/>
      <member name="component"
              value="19"
              c:identifier="E_CAL_COMPONENT_FIELD_COMPONENT"/>
      <member name="location"
              value="20"
              c:identifier="E_CAL_COMPONENT_FIELD_LOCATION"/>
      <member name="num_fields"
              value="21"
              c:identifier="E_CAL_COMPONENT_FIELD_NUM_FIELDS"/>
    </enumeration>
    <record name="CalComponentId" c:type="ECalComponentId">
      <field name="uid" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="rid" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
    </record>
    <record name="CalComponentOrganizer" c:type="ECalComponentOrganizer">
      <field name="value" writable="1">
        <type name="utf8" c:type="const gchar*"/>
      </field>
      <field name="sentby" writable="1">
        <type name="utf8" c:type="const gchar*"/>
      </field>
      <field name="cn" writable="1">
        <type name="utf8" c:type="const gchar*"/>
      </field>
      <field name="language" writable="1">
        <type name="utf8" c:type="const gchar*"/>
      </field>
    </record>
    <record name="CalComponentPeriod" c:type="ECalComponentPeriod">
      <field name="type" writable="1">
        <type name="CalComponentPeriodType" c:type="ECalComponentPeriodType"/>
      </field>
      <field name="start" writable="1">
        <type name="gpointer" c:type="icaltimetype"/>
      </field>
      <union name="u" c:type="u">
        <field name="end" writable="1">
          <type name="gpointer" c:type="icaltimetype"/>
        </field>
        <field name="duration" writable="1">
          <type name="gpointer" c:type="icaldurationtype"/>
        </field>
      </union>
    </record>
    <enumeration name="CalComponentPeriodType"
                 c:type="ECalComponentPeriodType">
      <member name="datetime"
              value="0"
              c:identifier="E_CAL_COMPONENT_PERIOD_DATETIME"/>
      <member name="duration"
              value="1"
              c:identifier="E_CAL_COMPONENT_PERIOD_DURATION"/>
    </enumeration>
    <record name="CalComponentPrivate"
            c:type="ECalComponentPrivate"
            disguised="1">
    </record>
    <record name="CalComponentRange" c:type="ECalComponentRange">
      <field name="type" writable="1">
        <type name="CalComponentRangeType" c:type="ECalComponentRangeType"/>
      </field>
      <field name="datetime" writable="1">
        <type name="CalComponentDateTime" c:type="ECalComponentDateTime"/>
      </field>
    </record>
    <enumeration name="CalComponentRangeType" c:type="ECalComponentRangeType">
      <member name="single"
              value="0"
              c:identifier="E_CAL_COMPONENT_RANGE_SINGLE"/>
      <member name="thisprior"
              value="1"
              c:identifier="E_CAL_COMPONENT_RANGE_THISPRIOR"/>
      <member name="thisfuture"
              value="2"
              c:identifier="E_CAL_COMPONENT_RANGE_THISFUTURE"/>
    </enumeration>
    <record name="CalComponentText" c:type="ECalComponentText">
      <field name="value" writable="1">
        <type name="utf8" c:type="const gchar*"/>
      </field>
      <field name="altrep" writable="1">
        <type name="utf8" c:type="const gchar*"/>
      </field>
    </record>
    <enumeration name="CalComponentTransparency"
                 c:type="ECalComponentTransparency">
      <member name="none"
              value="0"
              c:identifier="E_CAL_COMPONENT_TRANSP_NONE"/>
      <member name="transparent"
              value="1"
              c:identifier="E_CAL_COMPONENT_TRANSP_TRANSPARENT"/>
      <member name="opaque"
              value="2"
              c:identifier="E_CAL_COMPONENT_TRANSP_OPAQUE"/>
      <member name="unknown"
              value="3"
              c:identifier="E_CAL_COMPONENT_TRANSP_UNKNOWN"/>
    </enumeration>
    <enumeration name="CalComponentVType" c:type="ECalComponentVType">
      <member name="no_type" value="0" c:identifier="E_CAL_COMPONENT_NO_TYPE"/>
      <member name="event" value="1" c:identifier="E_CAL_COMPONENT_EVENT"/>
      <member name="todo" value="2" c:identifier="E_CAL_COMPONENT_TODO"/>
      <member name="journal" value="3" c:identifier="E_CAL_COMPONENT_JOURNAL"/>
      <member name="freebusy"
              value="4"
              c:identifier="E_CAL_COMPONENT_FREEBUSY"/>
      <member name="timezone"
              value="5"
              c:identifier="E_CAL_COMPONENT_TIMEZONE"/>
    </enumeration>
    <enumeration name="CalLoadState" c:type="ECalLoadState">
      <member name="not_loaded"
              value="0"
              c:identifier="E_CAL_LOAD_NOT_LOADED"/>
      <member name="loading" value="1" c:identifier="E_CAL_LOAD_LOADING"/>
      <member name="loaded" value="2" c:identifier="E_CAL_LOAD_LOADED"/>
    </enumeration>
    <record name="CalPrivate" c:type="ECalPrivate" disguised="1">
    </record>
    <callback name="CalRecurInstanceFn" c:type="ECalRecurInstanceFn">
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="comp" transfer-ownership="none">
          <type name="CalComponent" c:type="ECalComponent*"/>
        </parameter>
        <parameter name="instance_start" transfer-ownership="none">
          <type name="glong" c:type="time_t"/>
        </parameter>
        <parameter name="instance_end" transfer-ownership="none">
          <type name="glong" c:type="time_t"/>
        </parameter>
        <parameter name="data" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <callback name="CalRecurResolveTimezoneFn"
              c:type="ECalRecurResolveTimezoneFn"
              introspectable="0">
      <return-value>
        <type c:type="icaltimezone*"/>
      </return-value>
      <parameters>
        <parameter name="tzid" transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="data" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <enumeration name="CalSetModeStatus" c:type="ECalSetModeStatus">
      <member name="success" value="0" c:identifier="E_CAL_SET_MODE_SUCCESS"/>
      <member name="error" value="1" c:identifier="E_CAL_SET_MODE_ERROR"/>
      <member name="not_supported"
              value="2"
              c:identifier="E_CAL_SET_MODE_NOT_SUPPORTED"/>
    </enumeration>
    <enumeration name="CalSetModeStatusEnum"
                 glib:type-name="ECalSetModeStatusEnum"
                 glib:get-type="e_cal_set_mode_status_enum_get_type"
                 c:type="ECalSetModeStatusEnum">
      <member name="success"
              value="0"
              c:identifier="ECalSetModeSuccess"
              glib:nick="success"/>
      <member name="error"
              value="1"
              c:identifier="ECalSetModeError"
              glib:nick="error"/>
      <member name="unsupported"
              value="2"
              c:identifier="ECalSetModeNotSupported"
              glib:nick="unsupported"/>
    </enumeration>
    <enumeration name="CalSourceType" c:type="ECalSourceType">
      <member name="event" value="0" c:identifier="E_CAL_SOURCE_TYPE_EVENT"/>
      <member name="todo" value="1" c:identifier="E_CAL_SOURCE_TYPE_TODO"/>
      <member name="journal"
              value="2"
              c:identifier="E_CAL_SOURCE_TYPE_JOURNAL"/>
      <member name="last" value="3" c:identifier="E_CAL_SOURCE_TYPE_LAST"/>
    </enumeration>
    <enumeration name="CalSourceTypeEnum"
                 glib:type-name="ECalSourceTypeEnum"
                 glib:get-type="e_cal_source_type_enum_get_type"
                 c:type="ECalSourceTypeEnum">
      <member name="Event" value="0" c:identifier="Event" glib:nick="Event"/>
      <member name="ToDo" value="1" c:identifier="ToDo" glib:nick="ToDo"/>
      <member name="Journal"
              value="2"
              c:identifier="Journal"
              glib:nick="Journal"/>
      <member name="Invalid"
              value="3"
              c:identifier="Invalid"
              glib:nick="Invalid"/>
    </enumeration>
    <class name="CalView"
           c:symbol-prefix="cal_view"
           c:type="ECalView"
           parent="GObject.Object"
           glib:type-name="ECalView"
           glib:get-type="e_cal_view_get_type"
           glib:type-struct="CalViewClass">
      <virtual-method name="objects_added" introspectable="0">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="objects" transfer-ownership="none">
            <type name="GLib.List" c:type="GList*">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="objects_modified" introspectable="0">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="objects" transfer-ownership="none">
            <type name="GLib.List" c:type="GList*">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="objects_removed" introspectable="0">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="uids" transfer-ownership="none">
            <type name="GLib.List" c:type="GList*">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="view_complete">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="status" transfer-ownership="none">
            <type name="CalendarStatus" c:type="ECalendarStatus"/>
          </parameter>
          <parameter name="error_msg" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="view_done">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="status" transfer-ownership="none">
            <type name="CalendarStatus" c:type="ECalendarStatus"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="view_progress">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="message" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="percent" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="get_client"
              c:identifier="e_cal_view_get_client"
              version="2.22"
              introspectable="0"
              deprecated="Use #ECalClientView"
              deprecated-version="3.2">
        <doc xml:whitespace="preserve">Get the #ECal associated with this view.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the associated client.</doc>
          <type name="gpointer" c:type="_ECal*"/>
        </return-value>
      </method>
      <method name="start"
              c:identifier="e_cal_view_start"
              version="2.22"
              deprecated="Use #ECalClientView"
              deprecated-version="3.2">
        <doc xml:whitespace="preserve">Starts a live query to the calendar/tasks backend.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="stop"
              c:identifier="e_cal_view_stop"
              version="2.32"
              deprecated="Use #ECalClientView"
              deprecated-version="3.2">
        <doc xml:whitespace="preserve">Stops a live query to the calendar/tasks backend.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <property name="client"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="Cal"/>
      </property>
      <property name="view"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="gpointer"/>
      </property>
      <field name="object">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="CalViewPrivate" c:type="ECalViewPrivate*"/>
      </field>
      <glib:signal name="objects-added" when="first">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="objects" transfer-ownership="none">
            <type name="GLib.List">
              <type name="glong"/>
            </type>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="objects-modified" when="first">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="objects" transfer-ownership="none">
            <type name="GLib.List">
              <type name="glong"/>
            </type>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="objects-removed" when="first">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="objects" transfer-ownership="none">
            <type name="GLib.List">
              <type name="CalComponentId"/>
            </type>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="view-complete" when="first">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="guint"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="utf8"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="view-done" when="first">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="gint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="view-progress" when="first">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="utf8"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="guint"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="CalViewClass"
            c:type="ECalViewClass"
            glib:is-gtype-struct-for="CalView">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="objects_added" introspectable="0">
        <callback name="objects_added" introspectable="0">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="view" transfer-ownership="none">
              <type name="CalView" c:type="ECalView*"/>
            </parameter>
            <parameter name="objects" transfer-ownership="none">
              <type name="GLib.List" c:type="GList*">
                <type name="gpointer" c:type="gpointer"/>
              </type>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="objects_modified" introspectable="0">
        <callback name="objects_modified" introspectable="0">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="view" transfer-ownership="none">
              <type name="CalView" c:type="ECalView*"/>
            </parameter>
            <parameter name="objects" transfer-ownership="none">
              <type name="GLib.List" c:type="GList*">
                <type name="gpointer" c:type="gpointer"/>
              </type>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="objects_removed" introspectable="0">
        <callback name="objects_removed" introspectable="0">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="view" transfer-ownership="none">
              <type name="CalView" c:type="ECalView*"/>
            </parameter>
            <parameter name="uids" transfer-ownership="none">
              <type name="GLib.List" c:type="GList*">
                <type name="gpointer" c:type="gpointer"/>
              </type>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="view_progress">
        <callback name="view_progress">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="view" transfer-ownership="none">
              <type name="CalView" c:type="ECalView*"/>
            </parameter>
            <parameter name="message" transfer-ownership="none">
              <type name="utf8" c:type="gchar*"/>
            </parameter>
            <parameter name="percent" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="view_done">
        <callback name="view_done">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="view" transfer-ownership="none">
              <type name="CalView" c:type="ECalView*"/>
            </parameter>
            <parameter name="status" transfer-ownership="none">
              <type name="CalendarStatus" c:type="ECalendarStatus"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="view_complete">
        <callback name="view_complete">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="view" transfer-ownership="none">
              <type name="CalView" c:type="ECalView*"/>
            </parameter>
            <parameter name="status" transfer-ownership="none">
              <type name="CalendarStatus" c:type="ECalendarStatus"/>
            </parameter>
            <parameter name="error_msg" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <record name="CalViewPrivate" c:type="ECalViewPrivate" disguised="1">
    </record>
    <enumeration name="CalendarStatus"
                 glib:type-name="ECalendarStatus"
                 glib:get-type="e_calendar_status_get_type"
                 c:type="ECalendarStatus">
      <member name="ok"
              value="0"
              c:identifier="E_CALENDAR_STATUS_OK"
              glib:nick="ok"/>
      <member name="invalid_arg"
              value="1"
              c:identifier="E_CALENDAR_STATUS_INVALID_ARG"
              glib:nick="invalid-arg"/>
      <member name="busy"
              value="2"
              c:identifier="E_CALENDAR_STATUS_BUSY"
              glib:nick="busy"/>
      <member name="repository_offline"
              value="3"
              c:identifier="E_CALENDAR_STATUS_REPOSITORY_OFFLINE"
              glib:nick="repository-offline"/>
      <member name="no_such_calendar"
              value="4"
              c:identifier="E_CALENDAR_STATUS_NO_SUCH_CALENDAR"
              glib:nick="no-such-calendar"/>
      <member name="object_not_found"
              value="5"
              c:identifier="E_CALENDAR_STATUS_OBJECT_NOT_FOUND"
              glib:nick="object-not-found"/>
      <member name="invalid_object"
              value="6"
              c:identifier="E_CALENDAR_STATUS_INVALID_OBJECT"
              glib:nick="invalid-object"/>
      <member name="uri_not_loaded"
              value="7"
              c:identifier="E_CALENDAR_STATUS_URI_NOT_LOADED"
              glib:nick="uri-not-loaded"/>
      <member name="uri_already_loaded"
              value="8"
              c:identifier="E_CALENDAR_STATUS_URI_ALREADY_LOADED"
              glib:nick="uri-already-loaded"/>
      <member name="permission_denied"
              value="9"
              c:identifier="E_CALENDAR_STATUS_PERMISSION_DENIED"
              glib:nick="permission-denied"/>
      <member name="unknown_user"
              value="10"
              c:identifier="E_CALENDAR_STATUS_UNKNOWN_USER"
              glib:nick="unknown-user"/>
      <member name="object_id_already_exists"
              value="11"
              c:identifier="E_CALENDAR_STATUS_OBJECT_ID_ALREADY_EXISTS"
              glib:nick="object-id-already-exists"/>
      <member name="protocol_not_supported"
              value="12"
              c:identifier="E_CALENDAR_STATUS_PROTOCOL_NOT_SUPPORTED"
              glib:nick="protocol-not-supported"/>
      <member name="cancelled"
              value="13"
              c:identifier="E_CALENDAR_STATUS_CANCELLED"
              glib:nick="cancelled"/>
      <member name="could_not_cancel"
              value="14"
              c:identifier="E_CALENDAR_STATUS_COULD_NOT_CANCEL"
              glib:nick="could-not-cancel"/>
      <member name="authentication_failed"
              value="15"
              c:identifier="E_CALENDAR_STATUS_AUTHENTICATION_FAILED"
              glib:nick="authentication-failed"/>
      <member name="authentication_required"
              value="16"
              c:identifier="E_CALENDAR_STATUS_AUTHENTICATION_REQUIRED"
              glib:nick="authentication-required"/>
      <member name="dbus_exception"
              value="17"
              c:identifier="E_CALENDAR_STATUS_DBUS_EXCEPTION"
              glib:nick="dbus-exception"/>
      <member name="other_error"
              value="18"
              c:identifier="E_CALENDAR_STATUS_OTHER_ERROR"
              glib:nick="other-error"/>
      <member name="invalid_server_version"
              value="19"
              c:identifier="E_CALENDAR_STATUS_INVALID_SERVER_VERSION"
              glib:nick="invalid-server-version"/>
      <member name="not_supported"
              value="20"
              c:identifier="E_CALENDAR_STATUS_NOT_SUPPORTED"
              glib:nick="not-supported"/>
    </enumeration>
    <enumeration name="DataCalCallStatus"
                 version="3.6"
                 glib:type-name="EDataCalCallStatus"
                 glib:get-type="e_data_cal_call_status_get_type"
                 c:type="EDataCalCallStatus">
      <doc xml:whitespace="preserve">FIXME Document me!</doc>
      <member name="success"
              value="0"
              c:identifier="Success"
              glib:nick="success"/>
      <member name="busy" value="1" c:identifier="Busy" glib:nick="busy"/>
      <member name="repositoryoffline"
              value="2"
              c:identifier="RepositoryOffline"
              glib:nick="repositoryoffline"/>
      <member name="permissiondenied"
              value="3"
              c:identifier="PermissionDenied"
              glib:nick="permissiondenied"/>
      <member name="invalidrange"
              value="4"
              c:identifier="InvalidRange"
              glib:nick="invalidrange"/>
      <member name="objectnotfound"
              value="5"
              c:identifier="ObjectNotFound"
              glib:nick="objectnotfound"/>
      <member name="invalidobject"
              value="6"
              c:identifier="InvalidObject"
              glib:nick="invalidobject"/>
      <member name="objectidalreadyexists"
              value="7"
              c:identifier="ObjectIdAlreadyExists"
              glib:nick="objectidalreadyexists"/>
      <member name="authenticationfailed"
              value="8"
              c:identifier="AuthenticationFailed"
              glib:nick="authenticationfailed"/>
      <member name="authenticationrequired"
              value="9"
              c:identifier="AuthenticationRequired"
              glib:nick="authenticationrequired"/>
      <member name="unsupportedfield"
              value="10"
              c:identifier="UnsupportedField"
              glib:nick="unsupportedfield"/>
      <member name="unsupportedmethod"
              value="11"
              c:identifier="UnsupportedMethod"
              glib:nick="unsupportedmethod"/>
      <member name="unsupportedauthenticationmethod"
              value="12"
              c:identifier="UnsupportedAuthenticationMethod"
              glib:nick="unsupportedauthenticationmethod"/>
      <member name="tlsnotavailable"
              value="13"
              c:identifier="TLSNotAvailable"
              glib:nick="tlsnotavailable"/>
      <member name="nosuchcal"
              value="14"
              c:identifier="NoSuchCal"
              glib:nick="nosuchcal"/>
      <member name="unknownuser"
              value="15"
              c:identifier="UnknownUser"
              glib:nick="unknownuser"/>
      <member name="offlineunavailable"
              value="16"
              c:identifier="OfflineUnavailable"
              glib:nick="offlineunavailable"/>
      <member name="searchsizelimitexceeded"
              value="17"
              c:identifier="SearchSizeLimitExceeded"
              glib:nick="searchsizelimitexceeded"/>
      <member name="searchtimelimitexceeded"
              value="18"
              c:identifier="SearchTimeLimitExceeded"
              glib:nick="searchtimelimitexceeded"/>
      <member name="invalidquery"
              value="19"
              c:identifier="InvalidQuery"
              glib:nick="invalidquery"/>
      <member name="queryrefused"
              value="20"
              c:identifier="QueryRefused"
              glib:nick="queryrefused"/>
      <member name="couldnotcancel"
              value="21"
              c:identifier="CouldNotCancel"
              glib:nick="couldnotcancel"/>
      <member name="othererror"
              value="22"
              c:identifier="OtherError"
              glib:nick="othererror"/>
      <member name="invalidserverversion"
              value="23"
              c:identifier="InvalidServerVersion"
              glib:nick="invalidserverversion"/>
      <member name="invalidarg"
              value="24"
              c:identifier="InvalidArg"
              glib:nick="invalidarg"/>
      <member name="notsupported"
              value="25"
              c:identifier="NotSupported"
              glib:nick="notsupported"/>
      <member name="notopened"
              value="26"
              c:identifier="NotOpened"
              glib:nick="notopened"/>
    </enumeration>
    <bitfield name="DataCalMode" version="3.2" c:type="EDataCalMode">
      <doc xml:whitespace="preserve">FIXME: Document me.</doc>
      <member name="ocal" value="1" c:identifier="Local"/>
      <member name="emote" value="2" c:identifier="Remote"/>
      <member name="nymode" value="7" c:identifier="AnyMode"/>
    </bitfield>
    <bitfield name="DataCalObjModType"
              version="3.6"
              glib:type-name="EDataCalObjModType"
              glib:get-type="e_data_cal_obj_mod_type_get_type"
              c:type="EDataCalObjModType">
      <doc xml:whitespace="preserve">FIXME Document me!</doc>
      <member name="this" value="1" c:identifier="This" glib:nick="this"/>
      <member name="thisandprior"
              value="2"
              c:identifier="ThisAndPrior"
              glib:nick="thisandprior"/>
      <member name="thisandfuture"
              value="4"
              c:identifier="ThisAndFuture"
              glib:nick="thisandfuture"/>
      <member name="all" value="7" c:identifier="All" glib:nick="all"/>
    </bitfield>
    <bitfield name="DataCalObjType"
              version="3.6"
              glib:type-name="EDataCalObjType"
              glib:get-type="e_data_cal_obj_type_get_type"
              c:type="EDataCalObjType">
      <doc xml:whitespace="preserve">FIXME Document me!</doc>
      <member name="event" value="1" c:identifier="Event" glib:nick="event"/>
      <member name="todo" value="2" c:identifier="Todo" glib:nick="todo"/>
      <member name="journal"
              value="4"
              c:identifier="Journal"
              glib:nick="journal"/>
      <member name="anytype"
              value="7"
              c:identifier="AnyType"
              glib:nick="anytype"/>
    </bitfield>
    <function name="calendar_error_quark"
              c:identifier="e_calendar_error_quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
  </namespace>
</repository>
