diff --git a/asterix-doc/src/site/markdown/aql/functions.md b/asterix-doc/src/site/markdown/aql/functions.md
index 011042d..0a82ff3 100644
--- a/asterix-doc/src/site/markdown/aql/functions.md
+++ b/asterix-doc/src/site/markdown/aql/functions.md
@@ -1,5 +1,7 @@
 # Asterix: Using Functions #
 
+## [Table of Contents](id:toc) ##
+
 * [Numeric Functions](#NumericFunctions)
 * [String Functions](#StringFunctions)
 * [Aggregate Functions](#AggregateFunctions)
@@ -11,7 +13,7 @@
 
 Asterix provides various classes of functions to support operations on numeric, string, spatial, and temporal data. This document explains how to use these functions.
 
-## [Numeric Functions](id:NumericFunctions) ##
+## [Numeric Functions](id:NumericFunctions) <font size=4><a href="#toc">[Back to TOC]</a></font> ##
 ### numeric-abs ###
  * Syntax:
 
@@ -146,7 +148,7 @@
         { "v1": 2013, "v2": -4036, "v3": 1.0d, "v4": -2013.0f, "v5": -2014.0d, "v6": -2013.89d, "v7": 2013, "v8": -2013.256f }
 
 
-## [String Functions](id:StringFunctions) ##
+## [String Functions](id:StringFunctions) <font size=4><a href="#toc">[Back to TOC]</a></font> ##
 ### string-to-codepoint ###
  * Syntax:
 
@@ -544,7 +546,7 @@
         " the voice-command is bad:("
         " the voicemail-service is awesome"
 
-## [Aggregate Functions](id:AggregateFunctions) ##
+## [Aggregate Functions](id:AggregateFunctions) <font size=4><a href="#toc">[Back to TOC]</a></font> ##
 ### count ###
  * Syntax:
  
@@ -634,7 +636,7 @@
  
         { "min_friend_count": 18, "max_friend_count": 445 }    
 
-## [Spatial Functions](id:SpatialFunctions) ##
+## [Spatial Functions](id:SpatialFunctions) <font size=4><a href="#toc">[Back to TOC]</a></font> ##
 ### create-point ###
  * Syntax:
 
@@ -1269,7 +1271,7 @@
         }
 
 
-## [Tokenizing Functions](id:TokenizingFunctions) ##
+## [Tokenizing Functions](id:TokenizingFunctions) <font size=4><a href="#toc">[Back to TOC]</a></font> ##
 ### word-tokens ###
  * Syntax:
 
@@ -1465,7 +1467,7 @@
         }
 -->
 
-## [Temporal Functions](id:TemporalFunctions) ##
+## [Temporal Functions](id:TemporalFunctions) <font size=4><a href="#toc">[Back to TOC]</a></font> ##
 
 ### date ###
  * Syntax:
@@ -2032,8 +2034,42 @@
  * The expected result is:
 
         { "start": date("1984-01-01"), "end": date("1985-01-01") }
+        
+### interval-bin ###
+ * Syntax:
+ 
+        interval-bin(time-to-bin, time-bin-anchor, duration-bin-size)
+        
+ * Return the `interval` value representing the bin containing the `time-to-bin` value. 
+ * Arguments:
+    * `time-to-bin`: a date/time/datetime value representing the time to be binned.
+    * `time-bin-anchor`: a date/time/datetime value representing an anchor of a bin starts. The type of this argument should be the same as the first `time-to-bin` argument.
+    * `duration-bin-size`: the duration value representing the size of the bin, in the type of `year-month-duration` or `day-time-duration` or `null`. The sub-duration type show satisfy that the arithmetic operation between the type of "time_to_bin" and the sub-duration type must be defined. Specifically, one of the following arithmetic operations should be used:
+       * `datetime` +|- `year-month-duration`
+       * `datetime` +|- `day-time-duration`
+       * `date` +|- `year-month-duration`
+       * `date` +|- `day-time-duration`
+       * `time` +|- `day-time-duration`
+  * Return Value:
+    * A `interval` value representing the bin containing the `time-to-bin` value. Note that the internal type of this interval value should be the same as the `time-to-bin` type.
+  
+  * Example:
+  
+        let $c1 := date("2010-10-30")
+        let $c2 := datetime("-1987-11-19T23:49:23.938")
+        let $c3 := time("12:23:34.930+07:00")
+        
+        return { "bin1": interval-bin($c1, date("1990-01-01"), year-month-duration("P1Y")),
+                 "bin2": interval-bin($c1, date("-1990-01-01"), year-month-duration("P1Y")),
+                 "bin3": interval-bin($c2, datetime("1990-01-01T00:00:00.000Z"), year-month-duration("P6M"))}
+                 
+   * The expected result is:
+   
+        { "bin1": interval-date("2010-01-01, 2011-01-01"), 
+          "bin2": interval-date("2010-01-01, 2011-01-01"), 
+          "bin3": interval-datetime("-1987-07-01T00:00:00.000Z, -1986-01-01T00:00:00.000Z")}
 
-## [Other Functions](id:OtherFunctions) ##
+## [Other Functions](id:OtherFunctions) <font size=4><a href="#toc">[Back to TOC]</a></font> ##
 
 ### is-null ###
  * Syntax:
