# How to use built-in ZCL handlers e.g. zcl\_time\_client

**URL:** <https://forums.digi.com/t/how-to-use-built-in-zcl-handlers-e-g-zcl-time-client/13890>\
**Category:** XBee Programamble (S2C & 900 HP)\
**Tags:** zcl\
**Created:** [November 7, 2014, 8:13am UTC](https://forums.digi.com/t/how-to-use-built-in-zcl-handlers-e-g-zcl-time-client/13890 "2014-11-07T08:13:53Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![wz2b](https://avatars.discourse-cdn.com/v4/letter/w/e274bd/32.png) [@wz2b](https://forums.digi.com/u/wz2b)\
**Post date:** [November 7, 2014, 8:13am UTC](https://forums.digi.com/t/how-to-use-built-in-zcl-handlers-e-g-zcl-time-client/13890/1 "2014-11-07T08:13:53Z")

</div>

In the xbee programmable sdk there are a couple of good examples on how to do things like handle custom clusters. The thing I still don’t really understand is how to then take advantage of the ZCL library to parse and handle messages.

I’ll give a concrete example. The ZCL library has a Time Cluster with methods to process time messages. It appears that the entry point is:

```auto
zcl_time_client (const wpan_envelope_t FAR *envelope, void FAR *context)]/code]

What I'm not clear on is how I'm supposed to use this. Am I supposed to create a custom endpoint handler, recognize which messages are in the time cluster (what profile? what endpoint?) and if I see one pass them to zcl_time_client?

OR ... does that all happen automatically for me?
```

---

<div class="post-metadata">

**Author:** ![mvut](https://sea2.discourse-cdn.com/flex016/user_avatar/forums.digi.com/mvut/32/31_2.png) [@mvut](https://forums.digi.com/u/mvut)\
**Post date:** [November 11, 2014, 10:35am UTC](https://forums.digi.com/t/how-to-use-built-in-zcl-handlers-e-g-zcl-time-client/13890/2 "2014-11-11T10:35:41Z")

</div>

Try querying the active end point from the module. that should then allow you to see if the one you want is enabled at the module or if you need to implement it in your device.
