diff --git a/docs/UserGuide.md b/docs/UserGuide.md
index 7d9f0b73360..48deda28cfe 100644
--- a/docs/UserGuide.md
+++ b/docs/UserGuide.md
@@ -118,15 +118,15 @@ Edits an existing person in the contact manager. Useful if you need to edit a pe
Format: `edit INDEX [n/NAME] [p/PHONE] [e/EMAIL] [a/ADDRESS] [t/TAG]…`
-* Edits the person at the specified `INDEX`. The index refers to the index number shown in the displayed person list. The index **must be a positive integer**, such as 1, 2, 3, ...
+
+* Edits the person at the specified `INDEX`.
+* The index refers to the index number shown in the displayed person list.
+* The index **must be a positive integer**, such as 1, 2, 3, ...
* At least one of the optional fields must be provided. This means that either `NAME`, `PHONE`, `EMAIL`, `ADDRESS` or `TAG` needs to be provided.
* When editing tags, the existing tags of the person will be removed i.e., adding of tags is not cumulative.
-
-
-
-
* You can remove all the person’s tags by typing `t/` without
specifying any tags after it.
+
Examples:
@@ -204,6 +204,7 @@ Format: `delete INDEX`
* Deletes the person at the specified `INDEX`.
* The index refers to the index number shown in the displayed person list.
* The index **must be a positive integer** 1, 2, 3, …
+* The index must be not greater than the number of persons in the contact manager.
Examples:
* `list` followed by `delete 2` deletes the 2nd person in the contact manager.
@@ -244,6 +245,38 @@ Format: `list_schedule`
![listing schedules](images/listSchedule.png)
+### Listing ongoing events : `list_ongoing_schedule`
+
+Lists all the events that are currently ongoing. Useful if you wish to view all the events that are currently ongoing.
+
+Format: `list_ongoing_schedule`
+
+### Finding events : `find_schedule`
+
+Finds all events that match the given attributes. Useful if you wish to find events that match certain criteria.
+
+Format: `find_schedule [title/TITLE] [d/DESCRIPTION] [before/BEFORE_DATETIME] [after/AFTER_DATETIME] [during/DURING_DATETIME]`
+
+
+
+* `find_schedule` needs to have at least one of `TITLE`, `DESCRIPTION`, `BEFORE_DATETIME`, `AFTER_DATETIME` or `DURING_DATETIME` to run.
+* For `TITLE` and `DESCRIPTION`:
+ * The search is case-insensitive. e.g., `Meeting` will match `meeting`.
+ * The order of the keywords does not matter. e.g. `Meeting Project` will match `Project Meeting`.
+ * Only full words will be matched e.g. `Meet` will not match `Meeting`
+ * Schedules matching at least one keyword will be matched for that attribute (i.e., it is an `OR` search).
+ * e.g. `Meeting Project` will be matched by `Zoom Meeting`, `Coding Project`.
+* For `BEFORE_DATETIME`, `AFTER_DATETIME` and `DURING_DATETIME`:
+ * The datetime must be a valid datetime in `YYYY-MM-DD HH:mm` format.
+ * Schedules matching all given datetime attributes will be returned (i.e., it is an `AND` search).
+ * e.g. `before/2021-10-10 12:00 after/2021-10-10 10:00` will return schedules that are between `10:00` and `12:00` on `2021-10-10`.
+ * The `BEFORE_DATETIME` attribute is matched if the schedule ends on or before the given datetime.
+ * The `AFTER_DATETIME` attribute is matched if the schedule starts on or after the given datetime.
+ * The `DURING_DATETIME` attribute is matched if the given datetime is between the start datetime and end datetime of the schedule, inclusive.
+* If multiple attributes are given, then all given attributes must be matched for the event to be returned.
+
+
+
### Deleting an event : `delete_schedule`
Deletes the event at the given index. Useful if you wish to delete an event that is no longer needed.
@@ -252,7 +285,13 @@ Format: `delete_schedule INDEX`
-* `INDEX` must be a positive number and a valid index of a schedule.
+* `INDEX` must be a positive integer and not greater than the number of schedules in the displayed schedule list.
+
+### Clearing all events : `clear_schedule`
+
+Clears all events from the schedule list. Useful if you wish to clear all events that are no longer needed.
+
+Format: `clear_schedule`
### Calendar view of schedule : `calendar_view`
@@ -301,20 +340,23 @@ Furthermore, certain edits can cause Student Contact Manager to behave in unexpe
## Command summary
-| Action | Format, Examples |
-|---------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| **Add** | `add n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS [t/TAG]…`
e.g., `add n/James Ho p/22224444 e/jamesho@example.com a/123, Clementi Rd, 1234665 t/friend t/colleague` |
-| **Clear** | `clear` |
-| **Delete** | `delete INDEX`
e.g., `delete 3` |
-| **Edit** | `edit INDEX [n/NAME] [p/PHONE_NUMBER] [e/EMAIL] [a/ADDRESS] [t/TAG] ...`
e.g.,`edit 2 n/James Lee e/jameslee@example.com` |
-| **Find** | `find [n/NAME] [a/ADDRESS] [t/TAG]`
e.g., `find n/James Jake` |
-| **List** | `list` |
-| **Help** | `help` |
-| **find_and_export** | `find_and_export TAG [n/NAME] [a/ADDRESS] [f/FILENAME]` |
-| **import** | `import f/FILENAME_1 [f/FILENAME_2] [f/FILENAME_3] ...` |
-| **add_schedule** | `add_schedule title/TITLE d/DESCRIPTION start/START_DATETIME end/END_DATETIME` |
-| **edit_schedule** | `edit_schedule INDEX title/TITLE d/DESCRIPTION start/START_DATETIME end/END_DATETIME` |
-| **list_schedule** | `list_schedule` |
-| **delete_schedule** | `delete_schedule INDEX` |
-| **calendar_view** | `calendar_view` |
+| Action | Format, Examples |
+|-----------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| **Add Person** | `add n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS [t/TAG]…`
e.g., `add n/James Ho p/22224444 e/jamesho@example.com a/123, Clementi Rd, 1234665 t/friend t/colleague` |
+| **Clear Persons** | `clear` |
+| **Delete Person** | `delete INDEX`
e.g., `delete 3` |
+| **Edit Person** | `edit INDEX [n/NAME] [p/PHONE_NUMBER] [e/EMAIL] [a/ADDRESS] [t/TAG] ...`
e.g.,`edit 2 n/James Lee e/jameslee@example.com` |
+| **Find Persons** | `find [n/NAME] [a/ADDRESS] [t/TAG]`
e.g., `find n/James Jake` |
+| **List Persons** | `list` |
+| **Help** | `help` |
+| **Find and Export to File** | `find_and_export TAG [n/NAME] [a/ADDRESS] [f/FILENAME]` |
+| **Import from File** | `import f/FILENAME_1 [f/FILENAME_2] [f/FILENAME_3] ...` |
+| **Add Schedule** | `add_schedule title/TITLE d/DESCRIPTION start/START_DATETIME end/END_DATETIME` |
+| **Clear Schedules** | `clear_schedule` |
+| **Delete Schedule** | `delete_schedule INDEX` |
+| **Edit Schedule** | `edit_schedule INDEX [title/TITLE] [d/DESCRIPTION] [start/START_DATETIME] [end/END_DATETIME]` |
+| **Find Schedules** | `find_schedule [title/TITLE] [d/DESCRIPTION] [before/BEFORE_DATETIME] [after/AFTER_DATETIME] [during/DURING_DATETIME]` |
+| **List Schedules** | `list_schedule` |
+| **List Ongoing Schedule** | `list_ongoing_schedule` |
+| **Calendar View** | `calendar_view` |