Add a timer trigger

Add a trigger that enqueues items based on a timer.

Change-Id: I024be871914c8272c237b1f818589be08cda04da
diff --git a/doc/source/triggers.rst b/doc/source/triggers.rst
index cbcbad2..0bd07de 100644
--- a/doc/source/triggers.rst
+++ b/doc/source/triggers.rst
@@ -4,11 +4,10 @@
 ========
 
 The process of merging a change starts with proposing a change to be
-merged.  Currently Zuul only supports Gerrit as a triggering system.
+merged.  Primarily, Zuul supports Gerrit as a triggering system, as
+well as a facility for triggering jobs based on a timer.
 Zuul's design is modular, so alternate triggering and reporting
-systems can be supported.  However, Gerrit has a particularly robust
-data model, and Zuul does make some assumptions that include that data
-model.  Nonetheless, patches to support alternate systems are welcome.
+systems can be supported.
 
 Gerrit
 ------
@@ -101,3 +100,9 @@
 depending on what the state of Zuul's repository is when the clone
 happens).  They are, however, suitable for automated systems that
 respond to Zuul triggers.
+
+Timer
+-----
+
+A simple timer trigger is available as well.  It supports triggering
+jobs in a pipeline based on cron-style time instructions.
diff --git a/doc/source/zuul.rst b/doc/source/zuul.rst
index cb878fd..715ba39 100644
--- a/doc/source/zuul.rst
+++ b/doc/source/zuul.rst
@@ -304,6 +304,18 @@
     containing 'retrigger' somewhere in the comment text are added to a
     change.
 
+  **timer**
+    This trigger will run based on a cron-style time specification.
+    It will enqueue an event into its pipeline for every project
+    defined in the configuration.  Any job associated with the
+    pipeline will run in response to that event.
+
+    *time*
+    The time specification in cron syntax.  Only the 5 part syntax is
+    supported, not the symbolic names.  Example: ``0 0 * * *`` runs
+    at midnight.
+
+
 **dequeue-on-new-patchset**
   Normally, if a new patchset is uploaded to a change that is in a
   pipeline, the existing entry in the pipeline will be removed (with