diff --git a/pkg/format/formatter.go b/pkg/format/formatter.go
index c42b8ea..2b744d1 100644
--- a/pkg/format/formatter.go
+++ b/pkg/format/formatter.go
@@ -92,7 +92,11 @@
 		format = Format(strings.TrimPrefix(string(f), "table"))
 	}
 
-	tmpl, err := template.New("output").Parse(string(format))
+	funcmap := template.FuncMap{
+		"timestamp": formatTimestamp,
+		"since":     formatSince}
+
+	tmpl, err := template.New("output").Funcs(funcmap).Parse(string(format))
 	if err != nil {
 		return err
 	}
diff --git a/pkg/format/formatter_funcs.go b/pkg/format/formatter_funcs.go
new file mode 100644
index 0000000..6d10514
--- /dev/null
+++ b/pkg/format/formatter_funcs.go
@@ -0,0 +1,46 @@
+/*
+ * Copyright 2019-present Ciena Corporation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package format
+
+import (
+	"github.com/golang/protobuf/ptypes"
+	timestamppb "github.com/golang/protobuf/ptypes/timestamp"
+	"time"
+)
+
+// formats a Timestamp proto as a RFC3339 date string
+func formatTimestamp(tsproto *timestamppb.Timestamp) (string, error) {
+	if tsproto == nil {
+		return "", nil
+	}
+	ts, err := ptypes.Timestamp(tsproto)
+	if err != nil {
+		return "", err
+	}
+	return ts.Truncate(time.Second).Format(time.RFC3339), nil
+}
+
+// Computes the age of a timestamp and returns it in HMS format
+func formatSince(tsproto *timestamppb.Timestamp) (string, error) {
+	if tsproto == nil {
+		return "", nil
+	}
+	ts, err := ptypes.Timestamp(tsproto)
+	if err != nil {
+		return "", err
+	}
+	return time.Since(ts).Truncate(time.Second).String(), nil
+}
