TimeNodes represent a specific point in time and are usually connected to other concepts via an AtTimeLink.
For more details, see Temporal Reasoning.
SEMI-DEPRECATED (Under review)! The Value subsystem provides a superior mechanism for storing, recording, and working with fleeting and time-changing data. There are multiple problems with using Atoms for transient data, including: (a) it is CPU-intensive to create an Atom. Creating Values is much faster. (b) it is CPU-intensive to insert an Atom into the AtomSpace. Values are not stored in the atomsapce. There is no functional need for the indexing services that the AtomSpace provides, so its pointless to store fleeting data there, anyway. (c) it can become very difficult, sometimes impossible to remove Atoms from the atomspace. This can happen when an Atom become a part of the outgoing set of another atom; in such a case, it would be illegal to delete the atom. For these three reasons, use Values instead. They just work better. See also SpaceServer for additional space-time management ideas.
There are some valid limited-use cases for TimeNodes; however, these use-cases are not entirely clear, and given the steep overhead of using Atoms instead of Values, it is not at all clear that one would want to do temporal reasoning using atoms. Atoms are expensive.