### Method

# ECal ComponentBag dup_item

since: 3.58

#### Declaration [src]

    ECalComponentBagItem*
    e_cal_component_bag_dup_item (
      ECalComponentBag* self,
      ECalClient* client,
      const gchar* uid,
      const gchar* rid
    )

#### Description [src]

Looks up for an item identified by the `client`, `uid` and optionally `rid`, and returns a copy of it. Free the returned item with e_cal_component_bag_item_free(), when no longer needed

This is a thread safe variant of the e_cal_component_bag_get_item().

Available since: 3.58

#### Parameters

`client`

  Type: `ECalClient`

  An `ECalClient`.

  The data is owned by the caller of the method.

`uid`

  Type: `const gchar*`

  A component UID.

  The data is owned by the caller of the method.
  The value is a NUL terminated UTF-8 string.

`rid`

  Type: `const gchar*`

  A component recurrence ID, or `NULL`.

  The argument can be `NULL`.
  The data is owned by the caller of the method.
  The value is a NUL terminated UTF-8 string.

#### Return value

Type: `ECalComponentBagItem`

An `ECalComponentBagItem` copy of a stored item, or `NULL` when not found.

The caller of the method takes ownership of the returned data, and is responsible for freeing it.
The return value can be `NULL`.