Ez-Schedule is a desktop application for managing and scheduling of events, optimized for use via a Command Line Interface (CLI) while still providing an easy way to visualize all events through a Graphical User Interface (GUI).

Ez-Schedule will benefit a fast typist who needs to plan and track upcoming events.

:exclamation: Danger:
:x: Do not attempt to modify the local storage files on your own. :x:
Otherwise, Ez-Schedule may not run as expected.

Using this Guide


  • If you are running Ez-Schedule for the first time, please refer to our Quick Start guide.
  • If you are learning how to use Ez-Schedule, please refer to our Commands section for a detailed guide.
  • If you are interested in contributing to this project, please check out our Developer Guide.
  • If you are an experienced user, you may find the Command Summary helpful as it provides a summarized table of all the available commands.

Table of Contents


Icons Used


This section serves to introduce the icons used throughout this guide.

:information_source: Note: Useful information for you to be aware of.
:bulb: Tip: Tips in improving your experience when using Ez-Schedule.
:warning: Warning: Used to alert you of critical instructions associated with a particular action.
:exclamation: Danger: Necessary cautions to heed to ensure that Ez-Schedule operates as intended.

[Back to top]

Quick Start


  1. Ensure you have Java 11 or above installed in your Computer.
  2. Download the latest Ez-Schedule.jar from here.
  3. Copy the file to the folder you want to use as the home folder for your Ez-Schedule.
  4. Open a command line terminal, cd into the folder you put the jar file in
  5. Use the java -jar Ez-Schedule.jar command to run the application.

[Back to top]

Graphical User Interface


This section serves to introduce the GUI components in Ez-Schedule.

Ez-Schedule is composed of the following components, which are numbered for easy reference:

  1. Command Box
  2. Response Box
  3. Events Panel
  4. Upcoming Events Panel
  5. Calendar

gui.png

Command Box

command-box.png

This component enables you to type the command in the command box and execute it by pressing Enter.
For example, typing help and pressing Enter will open the help window.

[Back to top]

Response Box

response-box-gui.png

This component displays the feedback of the command you entered into the command box.

[Back to top]

Events Panel

events-panel.png

This component displays all the events that you have.
You can use commands like list and find to view the events in your scheduler.

:information_source: Note:
Events that have past is marked with a completed label and check mark.
Events are displayed in chronological order.

[Back to top]

Upcoming Events Panel

upcoming-events-gui.png

This component displays both ongoing (if you have not started on them yet) and upcoming events that you have.

:bulb: Tip: While the default is one upcoming event, you can use the next command to change the number of upcoming events shown.

[Back to top]

Calendar

calendar-gui.png

This component gives you a comprehensive summary of all the events that you have for a particular month.

:information_source: Note: Newly added events will appear in their corresponding calendar boxes.
The find command will highlight the calendar boxes corresponding to the events that match your search criteria.
:bulb: Tip: Clicking on the now button will take you directly back to the current date.
Clicking on any calendar date box that has events will display those events in the events panel.

[Back to top]

Summary


Prefix Summary

Prefix Representation Remark
n/ Name Name is alphanumeric only.
d/ Date Dates should follow a YYYY-MM-DD format.
s/ Start time Time should be in 24-hour HH:mm format, ranging from 00:00 to 23:59. Leading zero are required.
e/ End time Time should be in 24-hour HH:mm format, ranging from 00:00 to 23:59. Leading zero are required.
every/ Every Recurring factor is given by day/week/month.

[Back to top]

Command Summary

Action Command Format
Add add n/<event> d/<date> s/<start time> e/<end time>
Repeat recur <index> d/<end date> every/<recur factor>
Edit edit <index> n/<name> d/<date> s/<start time> e/<end time>
Delete delete <index> or delete <index index ... index>
List list
Next next or next <count>
Find find n/<name> d/<date>
Undo undo
Help help
Exit exit

[Back to top]

Commands


Add a New Event

Format: add n/<event> d/<date> s/<start time> e/<end time>

Adds an event into the scheduler.

Example: add n/tennis d/2023-04-20 s/15:00 e/17:00

Parameters:
n/: Name of the event
d/: Date of the event
s/: Start time of the event
e/: End time of the event

add-command-result.png

:information_source: Note:
If an event is added successfully, a message similar to the one above will be displayed in the Response Box.
The Events Panel and Calendar will both be updated to include the new event.
:warning: Warning: Adding of events that overlaps in time is not allowed.

[Back to top]

Repeat an Existing Event

Format: recur <index> d/<end date> every/<recur factor>

Repeats an event from the scheduler until the specified end date.

Example: recur 1 d/2024-01-01 every/month

Parameters:
d/: Ending date of recurrence for the event
every/: Recurring factor to recur the event

:warning: Warning:
Event must first exist in the scheduler.
End date should come after current event date.
Recurring of events not existing in scheduler is not allowed.

[Back to top]

Edit an Event

Format: edit <index> n/<event> d/<date> s/<start time> e/<end time>

Edits an event in the scheduler.

Example: edit 1 n/tennis or edit 3 d/2023-06-01 s/10:00

Parameters:
n/: Name of the event
d/: Date of the event
s/: Start time of the event
e/: End time of the event

edit-command-result.png

:information_source: Note:
If an event is edited successfully, a message similar to the one above will be displayed in the Response Box.
Any changes made to the event will be reflected in both the Events Panel and Calendar.
:warning: Warning: At least one field must be provided.

[Back to top]

Delete Events

Format: delete <index> or delete <index index ... index>

Deletes the event(s) in the scheduler.

Example: delete 1 or delete 1 4 5

delete-command-result.png

:information_source: Note:
If an event is deleted successfully, a message similar to the one above will be displayed in the Response Box.
Deleting the event will cause it to be removed from both the Events Panel and Calendar.
:warning: Warning: Index must be a positive integer and exist in the scheduler.

[Back to top]

Locate Events

Format:find n/<name> d/<date>

Search the scheduler and returns all events that matches the name, date or a combination of both.

Example: find n/tennis or find d/2023-03-01 or find n/tennis d/2023-03-01

Parameters:
n/: Name of the event
d/: Date of the event

:information_source: Note: Partially matching names will also be considered as a match.
:warning: Warning: At least one field must be provided.

[Back to top]

Retrieve Next Events

Format:next <count>

Shows the next upcoming event(s).

Example: next or next 2

Parameter:
<count>: Number of upcoming events to show. Optional - if not indicated, only the next one event is shown.

:information_source: Note: If count is larger than the number of existing events, then all events are shown.

[Back to top]

Undo Previous Command

Format: undo

Undo the previously executed valid command.

Example: undo

:warning: Warning: undo is only applicable for add, delete, edit and recur commands.

[Back to top]

List All Events

Format: list

Displays all events currently saved in the scheduler.

Example: list

[Back to top]

View Help

Format: help

Provide a link to access this website.

Example: help

[Back to top]

Exit Application

Format: exit

Exits the application.

Example: exit

[Back to top]

Limitations


  • Currently, we only support same-day events. Events which stretches across multiple days are not supported.
  • undo can only undo the most recent valid command.
  • Data files are not allowed to be modified directly. Integrity of data files are not verified, hence modified data files might introduce bugs into the program.

[Back to top]

FAQ


Q: On a scale of 1 to 10, how awesome is Ez-Schedule?
A: I would say off the charts, but it looks like 10 is the highest :v:

Q: What is one example of someone who would use this?
A: A secretary who needs to keep track the boss’s meetings, and inform the boss of what the next meeting is for.

Q: I am not allowed to add an event with no start/end time. Why?
A: Events with no start/end time are not the focus of Ez-Schedule, since these events inherently cannot be scheduled.

Q: The recur feature only allow me to repeat in certain frequency. It does not have the frequency I want.
A: Oh no, that is sad to hear. As a extra feature designed for user convenience, we cannot possibly support everyone’s preferred frequency. In case that you really need to have events repeating at an unsupported frequency, you can manually add the events one by one. (You type fast, right? :sunglasses:)

Q: The calendar only displays a one or two events only, even though I have more events on that day. Is this a bug?
A: As with other conventional calendar applications (eg. Google/Outlook calendar), the UI has limited space and thus almost impossible to display all events on that day.

Q: You say this is optimised for CLI use, but there is no command to transverse the calendar?
A: The calendar UI is a value-added feature and is not meant to totally replace the find feature, which allows the user to focus directly to a specific day.

[Back to top]