ECal.util_split_at_instance_ex
Description: Reference for ECal.util_split_at_instance_ex

### Function

# ECalutil_split_at_instance_ex

since: 3.38

#### Declaration [src]

    ICalComponent*
    e_cal_util_split_at_instance_ex (
      ICalComponent* icalcomp,
      const ICalTime* rid,
      const ICalTime* master_dtstart,
      ECalRecurResolveTimezoneCb tz_cb,
      gpointer tz_cb_data
    )

#### Description [src]

Splits a recurring `icalcomp` into two at time `rid`. The returned `ICalComponent` is modified `icalcomp` which contains recurrences beginning at `rid`, inclusive. The instance identified by `rid` should exist. The `master_dtstart` can be a null time, then it is read from the `icalcomp`.

Uses `tz_cb` with `tz_cb_data` to resolve time zones when needed.

Use `e_cal_util_remove_instances_ex()` with E_CAL_OBJ_MOD_THIS_AND_FUTURE mode on the `icalcomp` to remove the overlapping interval from it, if needed.

Free the returned non-NULL component with g_object_unref(), when done with it.

Available since: 3.38

#### Parameters

`icalcomp`

  Type: `None`

  A (recurring) `ICalComponent`.

  The data is owned by the caller of the function.

`rid`

  Type: `None`

  The base RECURRENCE-ID to remove.

  The data is owned by the caller of the function.

`master_dtstart`

  Type: `None`

  The DTSTART of the master object.

  The argument can be `NULL`.
  The data is owned by the caller of the function.

`tz_cb`

  Type: `ECalRecurResolveTimezoneCb`

  The `ECalRecurResolveTimezoneCb` to call.

`tz_cb_data`

  Type: `gpointer`

  User data to be passed to the `tz_cb` callback.

  The argument can be `NULL`.
  The data is owned by the caller of the function.

#### Return value

Type: `None`

The split `icalcomp`, or `NULL`.

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