package com.google.sps.agents;
 
// Imports the Google Cloud client library
import com.google.cloud.dialogflow.v2.QueryInput;
import com.google.cloud.dialogflow.v2.QueryResult;
import com.google.protobuf.Struct;
import com.google.protobuf.Value;
import com.google.sps.data.Output;
import com.google.sps.agents.Agent;
import com.google.sps.utils.TimeUtils;
import java.io.IOException;
import java.util.Date;
import java.util.Map;

/**
 * Reminders Agent
 */
public class Reminders implements Agent {
    private String intentName = null;
  	private String recurrence = null;
    private Date date = null;
    private String name = "";
    private String fulfillment = "";
    private String display = null;
    
    public Reminders(String intentName, Map<String, Value> parameters) {
      this.intentName = intentName;
      try {
        setParameters(parameters);
      } catch (Exception e) {
        fulfillment = null;
      }
    }

	@Override 
	public void setParameters(Map<String, Value> parameters) {
      if (intentName.equals("snooze")) {
        Struct durationStruct = parameters.get("date-time").getStructValue();
        Map<String, Value> durationMap = durationStruct.getFieldsMap();
        Date start = TimeUtils.stringToDate(durationMap.get("startDateTime").getStringValue());
        Date end = TimeUtils.stringToDate(durationMap.get("endDateTime").getStringValue());
        int diffSec = (int)((end.getTime() - start.getTime()) / 1000);
        String timeDisplay = TimeUtils.timeToString(diffSec);
        if (timeDisplay == null) {
          fulfillment = "Sorry, unable to set a timer for less than 1 second or more than 1 day. Please try adding a reminder instead.";
        } else {
          fulfillment = "Starting a timer for " + timeDisplay + " now.";
          display = TimeUtils.makeClockDisplay(diffSec);
        }
      } else {
        fulfillment = "Sorry, the reminders feature is not supported yet.";
        //TODO: if we ever get access to storing user info or calendars...
      }
	}
	
	@Override
	public String getOutput() {
	  return fulfillment;
	}

	@Override
	public String getDisplay() {
		return display;
	}

	@Override
	public String getRedirect() {
		return null;
    }
}
package com.google.sps.agents;
 
// Imports the Google Cloud client library
import com.google.cloud.dialogflow.v2.QueryInput;
import com.google.cloud.dialogflow.v2.QueryResult;
import com.google.protobuf.Struct;
import com.google.protobuf.Value;
import com.google.sps.data.Output;
import com.google.sps.agents.Agent;
import com.google.sps.utils.TimeUtils;
import java.io.IOException;
import java.util.Date;
import java.util.Map;

/**
 * Reminders Agent
 */
public class Reminders implements Agent {
    private String intentName = null;
    private String recurrence = null;
    private Date date = null;
    private String name = "";
    private String fulfillment = "";
    private String display = null;
    
    public Reminders(String intentName, Map<String, Value> parameters) {
        this.intentName = intentName;
        try {
            setParameters(parameters);
        } catch (Exception e) {
            fulfillment = null;
        }
    }

    @Override 
    public void setParameters(Map<String, Value> parameters) {
        if (intentName.equals("snooze")) {
			Struct durationStruct = parameters.get("date-time").getStructValue();
			Map<String, Value> durationMap = durationStruct.getFieldsMap();
			Date start = TimeUtils.stringToDate(durationMap.get("startDateTime").getStringValue());
			Date end = TimeUtils.stringToDate(durationMap.get("endDateTime").getStringValue());
			int diffSec = (int)((end.getTime() - start.getTime()) / 1000);
			String timeDisplay = TimeUtils.timeToString(diffSec);
			if (timeDisplay == null) {
				fulfillment = "Sorry, unable to set a timer for less than 1 second or more than 1 day. Please try adding a reminder instead.";
			} else {
				fulfillment = "Starting a timer for " + timeDisplay + " now.";
				display = TimeUtils.makeClockDisplay(diffSec);
			}
		 } else {
			fulfillment = "Sorry, the reminders feature is not supported yet.";
			//TODO: if we ever get access to storing user info or calendars...
		 }
	}
	
	@Override
	public String getOutput() {
	    return fulfillment;
	}

	@Override
	public String getDisplay() {
		return display;
	}

	@Override
	public String getRedirect() {
		return null;
    }
}

Update Reminders.java