@Override
	public String toString() {
		
		String message = "";
		
		// Include name into message
		message += "Name:\n" + name;
		
		// Include done or not
		if (isDone) {
			message += " [Done]\n\n";
		} else {
			message += "\n\n";
		}
		
		// Include description into message
		if (!description.isEmpty()) {
			message += "Description:\n" + description + "\n\n";
		}
		
		// Include start and end into message
		if ( !getFormattedStart().isEmpty() ) {
			message += "Starting Time:\n" + getFormattedStart() + "\n\n";
		}
		if ( !getFormattedEnd().isEmpty() ) {
			message += "Ending Time:\n" + getFormattedEnd() + "\n\n";
		}

		// Include deadline into message
		if (deadline != NOT_VALID) {
			message += "Deadline:\n" + getFormattedDeadline() + "\n\n";
		}
		
		// Include reminder into message
		if (reminder != NOT_VALID) {
			message += "Reminder:\n" + getFormattedReminder() + "\n\n";
		}

		// Include label into message
		String labelName = getLabelName();
		
		if (!labelName.equals(Operations.EMPTY_MESSAGE)) {
			message += "Label:\n" + labelName + "\n";
		}

		return message + "\n";
	}