### Class

# ECal Client

since: 3.2

#### Description [src]

    class ECal.Client : EDataServer.Client
      implements ECal.TimezoneCache, Gio.AsyncInitable, Gio.Initable {
      /* No available fields */
    }

Contains only private data that should be read and manipulated using the functions below.

Available since: 3.2

#### Hierarchy

#### Ancestors

- EClient
- GObject

#### Implements

- ETimezoneCache
- GAsyncInitable
- GInitable

#### Functions

###### e_cal_client_check_timezones_sync

This function cleans up VEVENT, VJOURNAL, VTODO and VTIMEZONE items which are to be imported into Evolution.

since: 3.34

###### e_cal_client_connect

Asynchronously creates a new `ECalClient` for `source` and `source_type`.

since: 3.8

###### e_cal_client_connect_finish

Finishes the operation started with e_cal_client_connect(). If an error occurs in connecting to the D-Bus service, the function sets `error` and returns `NULL`.

since: 3.8

###### e_cal_client_connect_sync

Creates a new `ECalClient` for `source` and `source_type`. If an error occurs, the function will set `error` and return `FALSE`.

since: 3.8

###### e_cal_client_error_create

No description available.

since: 3.2

###### e_cal_client_error_create_fmt

Similar as e_cal_client_error_create(), only here, instead of custom_msg, is used a `printf()` format to create a custom message for the error.

since: 3.34

###### e_cal_client_error_quark

No description available.

###### e_cal_client_error_to_string

Get localized human readable description of the given error code.

since: 3.2

###### e_cal_client_tzlookup_cb

An implementation of the `ECalRecurResolveTimezoneCb` callback which clients can use. Calls e_cal_client_get_timezone_sync().

since: 3.34

###### e_cal_client_tzlookup_icalcomp_cb

An implementation of the `ECalRecurResolveTimezoneCb` callback which backends can use. Searches for the timezone in an %ICalComponent associated with the `lookup_data` %ECalClientTzlookupICalCompData.

since: 3.34

#### Instance methods

###### e_cal_client_add_timezone

Add a VTIMEZONE object to the given calendar client. The call is finished by `e_cal_client_add_timezone_finish()` from the `callback`.

since: 3.2

###### e_cal_client_add_timezone_finish

Finishes previous call of e_cal_client_add_timezone().

since: 3.2

###### e_cal_client_add_timezone_sync

Add a VTIMEZONE object to the given calendar client.

since: 3.2

###### e_cal_client_check_one_alarm_only

Checks if a calendar supports only one alarm per component.

since: 3.2

###### e_cal_client_check_organizer_must_accept

Checks whether a calendar requires organizer to accept their attendance to meetings.

since: 3.2

###### e_cal_client_check_organizer_must_attend

Checks if a calendar forces organizers of meetings to be also attendees.

since: 3.2

###### e_cal_client_check_recurrences_no_master

Checks if the calendar has a master object for recurrences.

since: 3.2

###### e_cal_client_check_save_schedules

Checks whether the calendar saves schedules.

since: 3.2

###### e_cal_client_create_object

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

since: 3.2

###### e_cal_client_create_object_finish

Finishes previous call of `e_cal_client_create_object()` and sets `out_uid` to newly assigned UID for the created object. This `out_uid` should be freed with g_free().

since: 3.2

###### e_cal_client_create_object_sync

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 `out_uid` argument. This function does not modify the original `icalcomp` if its UID changes. Returned `out_uid` should be freed with g_free().

since: 3.2

###### e_cal_client_create_objects

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

since: 3.6

###### e_cal_client_create_objects_finish

Finishes previous call of `e_cal_client_create_objects()` and sets `out_uids` to newly assigned UIDs for the created objects. This `out_uids` should be freed with e_client_util_free_string_slist().

since: 3.6

###### e_cal_client_create_objects_sync

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 `out_uids` argument. This function does not modify the original `icalcomps` if their UID changes. Returned `out_uids` should be freed with e_client_util_free_string_slist().

since: 3.6

###### e_cal_client_discard_alarm

Discards 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`.

since: 3.2

###### e_cal_client_discard_alarm_finish

Finishes previous call of e_cal_client_discard_alarm().

since: 3.2

###### e_cal_client_discard_alarm_sync

Discards alarm `auid` from a given component identified by `uid` and `rid`.

since: 3.2

###### e_cal_client_generate_instances

Does a combination of `e_cal_client_get_object_list()` and e_cal_recur_generate_instances_sync(). Unlike e_cal_client_generate_instances_sync(), this returns immediately and the `cb` callback is called asynchronously.

since: 3.2

###### e_cal_client_generate_instances_for_object

Does a combination of `e_cal_client_get_object_list()` and e_cal_recur_generate_instances_sync(), 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.

since: 3.2

###### e_cal_client_generate_instances_for_object_sync

Does a combination of `e_cal_client_get_object_list()` and e_cal_recur_generate_instances_sync(), like e_cal_client_generate_instances_sync(), but for a single object.

since: 3.2

###### e_cal_client_generate_instances_for_uid_sync

Does a combination of `e_cal_client_get_object_list()` and e_cal_recur_generate_instances_sync(), like e_cal_client_generate_instances_sync(), but for a single object.

since: 3.48

###### e_cal_client_generate_instances_sync

Does a combination of `e_cal_client_get_object_list()` and e_cal_recur_generate_instances_sync().

since: 3.2

###### e_cal_client_get_attachment_uris

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

since: 3.2

###### e_cal_client_get_attachment_uris_finish

Finishes previous call of `e_cal_client_get_attachment_uris()` and sets `out_attachment_uris` to uris for component’s attachments. The list should be freed with e_client_util_free_string_slist().

since: 3.2

###### e_cal_client_get_attachment_uris_sync

Queries a calendar for a specified component’s object attachment URIs. The list should be freed with e_client_util_free_string_slist().

since: 3.2

###### e_cal_client_get_component_as_string

Gets a calendar component as an iCalendar string, with a toplevel VCALENDAR component and all VTIMEZONEs needed for the component.

since: 3.2

###### e_cal_client_get_default_object

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

since: 3.2

###### e_cal_client_get_default_object_finish

Finishes previous call of `e_cal_client_get_default_object()` and sets `out_icalcomp` to an `ICalComponent` from the backend that contains the default values for properties needed. This `out_icalcomp` should be freed with g_object_unref(), when no longer needed.

since: 3.2

###### e_cal_client_get_default_object_sync

Retrives an `ICalComponent` from the backend that contains the default values for properties needed. This `out_icalcomp` should be freed with g_object_unref(), when no longer needed.

since: 3.2

###### e_cal_client_get_default_timezone

Returns the default timezone previously set with e_cal_client_set_default_timezone(). The returned pointer is owned by the `client` and should not be freed.

since: 3.2

###### e_cal_client_get_free_busy

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

since: 3.2

###### e_cal_client_get_free_busy_finish

Finishes previous call of e_cal_client_get_free_busy(). The `out_freebusy` contains all VFREEBUSY `ECalComponent`-s, which could be also received by “free-busy-data” signal. The client is responsible to do a merge of the components between this complete list and those received through the signal.

since: 3.2

###### e_cal_client_get_free_busy_sync

Gets free/busy information from the calendar server. The `out_freebusy` contains all VFREEBUSY `ECalComponent`-s, which could be also received by “free-busy-data” signal. The client is responsible to do a merge of the components between this complete list and those received through the signal.

since: 3.2

###### e_cal_client_get_local_attachment_store

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.

since: 3.2

###### e_cal_client_get_object

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

since: 3.2

###### e_cal_client_get_object_finish

Finishes previous call of `e_cal_client_get_object()` and sets `out_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 g_object_unref(), when no longer needed.

since: 3.2

###### e_cal_client_get_object_list

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

since: 3.2

###### e_cal_client_get_object_list_as_comps

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

since: 3.2

###### e_cal_client_get_object_list_as_comps_finish

Finishes previous call of `e_cal_client_get_object_list_as_comps()` and sets `out_ecalcomps` to a matching list of `ECalComponent`-s. This list should be freed with e_client_util_free_object_slist().

since: 3.2

###### e_cal_client_get_object_list_as_comps_sync

Gets a list of objects from the calendar that match the query specified by the `sexp` argument. The objects will be returned in the `out_ecalcomps` argument, which is a list of `ECalComponent`. This list should be freed with e_client_util_free_object_slist().

since: 3.2

###### e_cal_client_get_object_list_finish

Finishes previous call of `e_cal_client_get_object_list()` and sets `out_icalcomps` to a matching list of `ICalComponent`-s. This list should be freed with e_client_util_free_object_slist().

since: 3.2

###### e_cal_client_get_object_list_sync

Gets a list of objects from the calendar that match the query specified by the `sexp` argument. The objects will be returned in the `out_icalcomps` argument, which is a list of `ICalComponent`. This list should be freed with e_client_util_free_object_slist().

since: 3.2

###### e_cal_client_get_object_sync

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 g_object_unref(), when no longer needed.

since: 3.2

###### e_cal_client_get_objects_for_uid

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

since: 3.2

###### e_cal_client_get_objects_for_uid_finish

Finishes previous call of `e_cal_client_get_objects_for_uid()` and sets `out_ecalcomps` to a list of `ECalComponent`s corresponding to found components for a given uid of the same type as this client. This list should be freed with e_client_util_free_object_slist().

since: 3.2

###### e_cal_client_get_objects_for_uid_sync

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_client_util_free_object_slist().

since: 3.2

###### e_cal_client_get_source_type

Gets the source type of the calendar client.

since: 3.2

###### e_cal_client_get_timezone

Retrieves a timezone object from the calendar backend. The call is finished by `e_cal_client_get_timezone_finish()` from the `callback`.

since: 3.2

###### e_cal_client_get_timezone_finish

Finishes previous call of `e_cal_client_get_timezone()` and sets `out_zone` to a retrieved timezone object from the calendar backend. This object is owned by the `client`, thus do not free it.

since: 3.2

###### e_cal_client_get_timezone_sync

Retrieves a timezone object from the calendar backend. This object is owned by the `client`, thus do not free it.

since: 3.2

###### e_cal_client_get_view

Query `client` with `sexp`, creating an `ECalClientView`. The call is finished by `e_cal_client_get_view_finish()` from the `callback`.

since: 3.2

###### e_cal_client_get_view_finish

Finishes previous call of e_cal_client_get_view(). If successful, then the `out_view` is set to newly allocated `ECalClientView`, which should be freed with g_object_unref().

since: 3.2

###### e_cal_client_get_view_sync

Query `client` with `sexp`, creating an `ECalClientView`. If successful, then the `out_view` is set to newly allocated `ECalClientView`, which should be freed with g_object_unref().

since: 3.2

###### e_cal_client_modify_object

Requests the calendar backend to modify an existing object. If the object does not exist on the calendar, an error will be returned.

since: 3.2

###### e_cal_client_modify_object_finish

Finishes previous call of e_cal_client_modify_object().

since: 3.2

###### e_cal_client_modify_object_sync

Requests the calendar backend to modify an existing object. If the object does not exist on the calendar, an error will be returned.

since: 3.2

###### e_cal_client_modify_objects

Requests the calendar backend to modify existing objects. If an object does not exist on the calendar, an error will be returned.

since: 3.6

###### e_cal_client_modify_objects_finish

Finishes previous call of e_cal_client_modify_objects().

since: 3.6

###### e_cal_client_modify_objects_sync

Requests the calendar backend to modify existing objects. If an object does not exist on the calendar, an error will be returned.

since: 3.6

###### e_cal_client_receive_objects

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.

since: 3.2

###### e_cal_client_receive_objects_finish

Finishes previous call of e_cal_client_receive_objects().

since: 3.2

###### e_cal_client_receive_objects_sync

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.

since: 3.2

###### e_cal_client_remove_object

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 #E_CAL_OBJ_MOD_ALL for the `mod`.

since: 3.2

###### e_cal_client_remove_object_finish

Finishes previous call of e_cal_client_remove_object().

since: 3.2

###### e_cal_client_remove_object_sync

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 #E_CAL_OBJ_MOD_ALL for the `mod`.

since: 3.2

###### e_cal_client_remove_objects

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 #E_CAL_OBJ_MOD_ALL for the `mod`.

since: 3.6

###### e_cal_client_remove_objects_finish

Finishes previous call of e_cal_client_remove_objects().

since: 3.6

###### e_cal_client_remove_objects_sync

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 #E_CAL_OBJ_MOD_ALL for the `mod`.

since: 3.6

###### e_cal_client_send_objects

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

since: 3.2

###### e_cal_client_send_objects_finish

Finishes previous call of `e_cal_client_send_objects()` and populates `out_users` with a list of users to send `out_modified_icalcomp` to.

since: 3.2

###### e_cal_client_send_objects_sync

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 `out_users` list.

since: 3.2

###### e_cal_client_set_default_timezone

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.

since: 3.2

##### Methods inherited from EClient (36)

Please see EClient for a full list of methods.

##### Methods inherited from GObject (43)

Please see GObject for a full list of methods.

##### Methods inherited from ETimezoneCache (3)

###### e_timezone_cache_add_timezone

Adds a copy of `zone` to `cache` and emits an `ETimezoneCache::timezone-added` signal. The `cache` will use the TZID string returned by `i_cal_timezone_get_tzid()` as the lookup key, which can be passed to `e_timezone_cache_get_timezone()` to obtain `zone` again.

since: 3.8

###### e_timezone_cache_get_timezone

Obtains an `ICalTimezone` by its TZID string. If no match is found, the function returns `NULL`. The returned `ICalTimezone` is owned by the `cache` and should not be modified or freed.

since: 3.8

###### e_timezone_cache_list_timezones

Returns a list of `ICalTimezone` instances that were explicitly added to the `cache` through e_timezone_cache_add_timezone(). In particular, any built-in time zone data that `e_timezone_cache_get_timezone()` may use to match a TZID string is excluded from the returned list.

since: 3.8

##### Methods inherited from GAsyncInitable (3)

###### g_async_initable_init_async

Starts asynchronous initialization of the object implementing the interface. This must be done before any real use of the object after initial construction. If the object also implements `GInitable` you can optionally call `g_initable_init()` instead.

###### g_async_initable_init_finish

Finishes asynchronous initialization and returns the result. See g_async_initable_init_async().

###### g_async_initable_new_finish

Finishes the async construction for the various g_async_initable_new calls, returning the created object or `NULL` on error.

##### Methods inherited from GInitable (1)

###### g_initable_init

Initializes the object implementing the interface.

#### Properties

###### ECal.Client:default-timezone

Timezone used to resolve DATE and floating DATE-TIME values.

###### ECal.Client:source-type

The iCalendar data type.

##### Properties inherited from EClient (6)

###### EDataServer.Client:capabilities

The capabilities of this client.

###### EDataServer.Client:main-context

The main loop context in which notifications for this client will be delivered.

###### EDataServer.Client:online

Whether this client’s backing data is online.

###### EDataServer.Client:opened

Whether this client is open and ready to use.

###### EDataServer.Client:readonly

Whether this client’s backing data is readonly.

###### EDataServer.Client:source

The `ESource` for which this client was created.

#### Signals

###### ECal.Client::free-busy-data

No description available.

##### Signals inherited from EClient (4)

###### EClient::backend-died

No description available.

###### EClient::backend-error

No description available.

###### EClient::backend-property-changed

No description available.

###### EClient::opened

No description available.

##### Signals inherited from GObject (1)

###### GObject::notify

The notify signal is emitted on an object when one of its properties has its value set through g_object_set_property(), g_object_set(), et al.

##### Signals inherited from ETimezoneCache (1)

###### ETimezoneCache::timezone-added

Emitted when a new #icaltimezone is added to `cache`.

#### Class structure

    struct ECalClientClass {
      void (* free_busy_data) (
        ECalClient* client,
        const GSList* free_busy_ecalcomps
      );

    }

Base class structure for the `ECalClient` class.

###### Class members

`free_busy_data: void (* free_busy_data) ( ECalClient* client, const GSList* free_busy_ecalcomps )`

  Signal used to notify about free/busy data.

#### Virtual methods

###### ECal.ClientClass.free_busy_data

Signal used to notify about free/busy data.