### Interface

# ECal TimezoneCache

since: 3.8

#### Description

    interface ECal.TimezoneCache : GObject.Object

No description available.

Available since: 3.8

#### Prerequisite

In order to implement TimezoneCache, your type must inherit from`GObject`.

#### Implementations

- ECalClient

#### Instance methods

###### 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

#### Signals

###### ECal.TimezoneCache::timezone-added

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

#### Interface structure

    struct ECalTimezoneCacheInterface {
      void (* tzcache_add_timezone) (
        ETimezoneCache* cache,
        ICalTimezone* zone
      );
      ICalTimezone* (* tzcache_get_timezone) (
        ETimezoneCache* cache,
        const gchar* tzid
      );
      GList* (* tzcache_list_timezones) (
        ETimezoneCache* cache
      );
      void (* timezone_added) (
        ETimezoneCache* cache,
        ICalTimezone* zone
      );
      gpointer reserved_signals;

    }

No description available.

###### Interface members

`tzcache_add_timezone` |
    void (* tzcache_add_timezone) (
        ETimezoneCache* cache,
        ICalTimezone* zone
      )
| No description available.
`tzcache_get_timezone` |
    ICalTimezone* (* tzcache_get_timezone) (
        ETimezoneCache* cache,
        const gchar* tzid
      )
| No description available.
`tzcache_list_timezones` |
    GList* (* tzcache_list_timezones) (
        ETimezoneCache* cache
      )
| No description available.
`timezone_added` |
    void (* timezone_added) (
        ETimezoneCache* cache,
        ICalTimezone* zone
      )
| No description available.
`reserved_signals` |
    gpointer
| No description available.

#### Virtual methods

###### ECal.TimezoneCache.timezone_added

No description available.

###### ECal.TimezoneCache.tzcache_add_timezone

No description available.

###### ECal.TimezoneCache.tzcache_get_timezone

No description available.

###### ECal.TimezoneCache.tzcache_list_timezones

No description available.