diff --git a/org.eclipse.mylyn.tasks.index.ui/src/org/eclipse/mylyn/internal/tasks/index/ui/IndexSearchHandler.java b/org.eclipse.mylyn.tasks.index.ui/src/org/eclipse/mylyn/internal/tasks/index/ui/IndexSearchHandler.java
index 5c1f52b..0821120 100644
--- a/org.eclipse.mylyn.tasks.index.ui/src/org/eclipse/mylyn/internal/tasks/index/ui/IndexSearchHandler.java
+++ b/org.eclipse.mylyn.tasks.index.ui/src/org/eclipse/mylyn/internal/tasks/index/ui/IndexSearchHandler.java
@@ -145,8 +145,20 @@
 					}
 
 				} else {
-					GregorianCalendar calendar = new GregorianCalendar();
 					final Date now = new Date();
+					final Date dateSearchUpperBound;
+					final Date dateSearchOneWeekLowerBound;
+					{
+						GregorianCalendar calendar = new GregorianCalendar();
+
+						calendar.setTime(now);
+						calendar.add(Calendar.DAY_OF_WEEK, 1); // one day in future due to GMT conversion in index
+						dateSearchUpperBound = calendar.getTime();
+
+						calendar.setTime(now);
+						calendar.add(Calendar.DAY_OF_WEEK, -7);
+						dateSearchOneWeekLowerBound = calendar.getTime();
+					}
 
 					// suggest field name prefixes
 					for (IndexField field : IndexField.values()) {
@@ -171,20 +183,16 @@
 							proposals.add(new ContentProposal(field.fieldName().substring(prefix.length()) + ":", //$NON-NLS-1$
 									field.fieldName(), description));
 
+							// for date fields give suggestion of date range search
 							if (field.isDateTime()) {
 								description = NLS.bind(Messages.IndexSearchHandler_Generic_date_range_search_1_week,
 										field.fieldName());
 
-								calendar.setTime(now);
-								calendar.add(Calendar.DAY_OF_WEEK, 1); // one day in future due to GMT conversion in index
-								Date upperBound = calendar.getTime();
+								String label = NLS.bind(Messages.IndexSearchHandler_Past_week_date_range_label, field.fieldName());
 
-								calendar.setTime(now);
-								calendar.add(Calendar.DAY_OF_WEEK, -7);
-								Date lowerBound = calendar.getTime();
-
-								proposals.add(new ContentProposal(index.computeQueryFieldDateRange(field, lowerBound,
-										upperBound), field.fieldName(), description));
+								String queryText = index.computeQueryFieldDateRange(field, dateSearchOneWeekLowerBound,
+										dateSearchUpperBound);
+								proposals.add(new ContentProposal(queryText, label, description));
 							}
 						}
 					}
diff --git a/org.eclipse.mylyn.tasks.index.ui/src/org/eclipse/mylyn/internal/tasks/index/ui/Messages.java b/org.eclipse.mylyn.tasks.index.ui/src/org/eclipse/mylyn/internal/tasks/index/ui/Messages.java
index d9ab9cf..34a7ff2 100644
--- a/org.eclipse.mylyn.tasks.index.ui/src/org/eclipse/mylyn/internal/tasks/index/ui/Messages.java
+++ b/org.eclipse.mylyn.tasks.index.ui/src/org/eclipse/mylyn/internal/tasks/index/ui/Messages.java
@@ -27,6 +27,8 @@
 
 	public static String IndexSearchHandler_hint_person;
 
+	public static String IndexSearchHandler_Past_week_date_range_label;
+
 	public static String IndexSearchHandler_summaryOnly;
 
 	public static String IndexSearchHandler_summaryOnly_tooltip;
diff --git a/org.eclipse.mylyn.tasks.index.ui/src/org/eclipse/mylyn/internal/tasks/index/ui/messages.properties b/org.eclipse.mylyn.tasks.index.ui/src/org/eclipse/mylyn/internal/tasks/index/ui/messages.properties
index 593b543..8c95521 100644
--- a/org.eclipse.mylyn.tasks.index.ui/src/org/eclipse/mylyn/internal/tasks/index/ui/messages.properties
+++ b/org.eclipse.mylyn.tasks.index.ui/src/org/eclipse/mylyn/internal/tasks/index/ui/messages.properties
@@ -12,5 +12,6 @@
 IndexSearchHandler_hint_content=Search for a term in the summary, description and comments
 IndexSearchHandler_hint_generic=Search on a term in the {0} field
 IndexSearchHandler_hint_person=Search for a user (reporter, assignee, watcher, commenter)
+IndexSearchHandler_Past_week_date_range_label={0} (past week)
 IndexSearchHandler_summaryOnly=Summary only
 IndexSearchHandler_summaryOnly_tooltip=Search only the summary when checked
