- Introduction
- Quick Start
- Features
- 3.1
create- Create user - 3.2
login- Log in - 3.3
logout- Log out - 3.4
add- Add event - 3.5
edit- Edit event - 3.6
delete- Delete event - 3.7
list- List events - 3.8
listall- List all events - 3.9
find- Search events - 3.10
filter- Filter events - 3.11
duplicate- Duplicate event - 3.12
addparticipant- Add participant - 3.13
listparticipants- List participants - 3.14
bye- Exit
- 3.1
- FAQ
- Command Summary
- Notes
This is a CLI-based Event Manager for organizing events, participants, and schedules. It supports priority levels, conflict detection, event filtering, user roles (admin/member), and participant availability. Each participant can log in and see or manage only their assigned events. Data is saved automatically between sessions.
- Ensure you have
Java 17or above installed on your computer. - Download the latest
EventSync.jar. - Copy the
.jarfile into any folder you want to use as the home directory for Event Manager. - Open a command prompt or terminal and navigate to the folder where you placed the
.jarfile. - Run the application using the following command:
java -jar EventSync.jar
- Type a command and press
Enterto execute it.
Input format:
You will be asked to provide:
- Name
- Password
- Access level (
ADMINorMEMBER) - Number of available slots
- Availability slots (
yyyy-MM-dd HH:mm - yyyy-MM-dd HH:mm)
Press 'login' to log in or 'create' to create a new user.
>create
Enter participant's name (or type 'exit' to cancel):
>Alice
Enter participant's password (or type 'exit' to cancel):
>123
Enter participant's access level (1 for Admin, 2 for Member) (or type 'exit' to cancel):
>2
Enter number of availability slots (maximum 10) (or type 'exit' to cancel):
>1
Enter start time for availability slot 1 (in format yyyy-MM-dd HH:mm) (or type 'exit' to cancel):
>2025-03-31 12:00
Enter end time for availability slot 1 (in format yyyy-MM-dd HH:mm) (or type 'exit' to cancel):
>2025-05-31 12:00
Successfully created: Alice
- You must log in to manage or view events.
- Prompts for your name and password.
- You will be asked to provide:
- Username
- Password
- Required before accessing most features.
Please enter 'login' to log in or continue with your previous command.
>login
Please enter your Username (or type 'exit' to leave)
>Alice
Please enter your password (or type 'exit' to leave)
>123
Successfully logged in.
βββββββββββββββββββββββββββββββββββββββββββ
β EVENT SYNC COMMAND MENU β
β ββββββββββββββββββββββββββββββββββββββββββ£
β === Event Management Commands === β
β add - Add new event β
β list - List your events β
β listall - List all events β
β delete [INDEX] - Delete an event β
β edit [INDEX] - Edit an event β
β duplicate [ID] - Duplicate an event β
β find [KEYWORD] - Search events β
β filter - Filter events β
β β
β === Participant Commands === β
β addparticipant - Add to event β
β listparticipants- List participants β
β create - Create new user β
β β
β === Session Commands === β
β login - Login to system β
β logout - Logout β
β β
β === System Commands === β
β bye - Exit program β
β help - Show this menu β
ββββββββββββββββββββββββββββββββββββββββββ
Please enter your Username (or type 'exit' to leave)
>Terry
User not found. Please enter 'create' to create user first!
>login
Please enter your Username (or type 'exit' to leave)
>Alice
Please enter your password (or type 'exit' to leave)
>330
Wrong password. Do you want to login again? (yes/no)
>no
Wrong password! Session ends
- You must login first
- Another participant can log in afterward.
>logout
Terry has logged out.
Bye! Press 'login' to log in or 'create' to create a new user.
- You need to log in to an ADMIN account.
- Adds an event to the system. Only ADMIN can add an event. The creator will be automatically added to the event.
Input format:
Event Name | Start Date | End Date | Location | Description
Date/time must be in yyyy-MM-dd HH:mm format.
You will then be prompted to set the eventβs priority (HIGH, MEDIUM, LOW).
>add
Enter event details (format: Event Name | Start Date | End Date | Location | Description) (or type 'exit' to cancel):
>Team Meeting | 2025-10-10 20:00 | 2025-10-10 21:00 | Conference Room | A team meeting to discuss project updates
Enter event priority (LOW, MEDIUM, HIGH):
>Low
The event
+----------------------+--------------------------------+
| Name | Team Meeting
| Start Time | 2025-10-10 20:00
| End Time | 2025-10-10 21:00
| Location | Conference Room
| Description | A team meeting to discuss project updates
| Participants | [Participant: Terry]
+----------------------+--------------------------------+
has been added to the list.
- Only ADMIN can edit an event.
- You will be shown options to modify:
-
- Name
-
- Start time
-
- End time
-
- Location
-
- Description
>edit
Enter event index to edit (or type 'exit' to cancel):
>1
--- Editing Event ---
+----------------------+--------------------------------+
| Name | Team Meeting
| Start Time | 2025-10-10 20:00
| End Time | 2025-10-10 21:00
| Location | Conference Room
| Description | A team meeting to discuss project updates
| Participants | [Participant: Terry]
+----------------------+--------------------------------+
What would you like to edit?
1. Name
2. Start Time (format: yyyy-MM-dd HH:mm)
3. End Time (format: yyyy-MM-dd HH:mm)
4. Location
5. Description
6. Done
Enter your choice (1-6):
>1
Enter New Event Name (or type 'exit' to cancel): meet
β
Name updated:
--- Editing Event ---
+----------------------+--------------------------------+
| Name | meet
| Start Time | 2025-10-10 20:00
| End Time | 2025-10-10 21:00
| Location | Conference Room
| Description | A team meeting to discuss project updates
| Participants | [Participant: Terry]
+----------------------+--------------------------------+
What would you like to edit?
1. Name
2. Start Time (format: yyyy-MM-dd HH:mm)
3. End Time (format: yyyy-MM-dd HH:mm)
4. Location
5. Description
6. Done
Enter your choice (1-6):
>6
β
Event editing completed.
- Only ADMIN can delete an event.
- You will be prompted to search by name.
- If multiple matches are found, you can select by index.
- Confirmation is required before deletion.
>delete
Enter name to search for events to delete (or type 'exit' to cancel):
>meet
Matching Events:
1. meet
2. Team Meeting
Enter the index of the event you want to delete:
>2
Confirm deletion of "Team Meeting"? (yes/no):
>yes
"Team Meeting" has been deleted.
- Displays all events for the logged-in participant.
- Youβll be prompted to choose a sort order:
priorityβ by priority, then end timestartβ by start time, then priorityendβ by end time, then priority
>list
Enter your sort type (priority, start, end) or type 'exit' to cancel:
>end
The event 1 is:
+----------------------+--------------------------------+
| Name | Team Meeting
| Start Time | 2025-03-12 20:00
| End Time | 2025-03-12 21:00
| Location | Conference Room
| Description | A team meeting to discuss project updates
| Participants | [Participant: a]
+----------------------+--------------------------------+
Priority: LOW
The event 2 is:
+----------------------+--------------------------------+
| Name | chill
| Start Time | 2025-03-31 19:00
| End Time | 2025-03-31 20:00
| Location | Room
| Description | A team meeting to relax
| Participants | [Participant: a]
+----------------------+--------------------------------+
Priority: LOW
- You need to log in to an ADMIN account first.
- Youβll be prompted to choose a sort order:
priorityβ by priority, then end timestartβ by start time, then priorityendβ by end time, then priority
>listall
Enter your sort type: Now we have a list of available sort types: priority, start, end
>priority
The event 1 is:
+----------------------+--------------------------------+
| Name | Team Meeting
| Start Time | 2025-03-12 20:00
| End Time | 2025-03-12 21:00
| Location | Conference Room
| Description | A team meeting to discuss project updates
| Participants | [Participant: a]
+----------------------+--------------------------------+
Priority: LOW
The event 2 is:
+----------------------+--------------------------------+
| Name | chill
| Start Time | 2025-03-31 19:00
| End Time | 2025-03-31 20:00
| Location | Room
| Description | A team meeting to relax
| Participants | [Participant: a]
+----------------------+--------------------------------+
Priority: LOW
The event 3 is:
+----------------------+--------------------------------+
| Name | meet
| Start Time | 2025-10-10 20:00
| End Time | 2025-10-10 21:00
| Location | Conference Room
| Description | A team meeting to discuss project updates
| Participants | [Participant: Terry]
+----------------------+--------------------------------+
Priority: LOW
- Finds events that contain the keyword in either:
- Event name
- Event description
> find chill
Found 1 matching events.
Here are the matching events in your list:
1. +----------------------+--------------------------------+
| Name | chill
| Start Time | 2025-03-31 19:00
| End Time | 2025-03-31 20:00
| Location | Room
| Description | A team meeting to relax
| Participants | [Participant: a]
+----------------------+--------------------------------+
- Filters and displays events by either:
- A certain priority
- A priority range
Input format::
- filter {priority}
- filter {lower-priority} {higher-priority}
Valid values: HIGH, MEDIUM, LOW.
>filter
Enter a priority or a range (or type 'exit' to cancel):
>HIGH
Found 1 matching events.
Here are the matching events in your list:
1. +----------------------+--------------------------------+
| Name | coffee
| Start Time | 2025-03-20 15:00
| End Time | 2025-03-20 16:00
| Location | Conference Room
| Description | Coffee chat
| Participants | [Participant: a]
+----------------------+--------------------------------+
>filter
Enter a priority or a range (or type 'exit' to cancel):
>LOW HIGH
Found 2 matching events.
Here are the matching events in your list:
1. +----------------------+--------------------------------+
| Name | Team Meeting
| Start Time | 2025-03-12 20:00
| End Time | 2025-03-12 21:00
| Location | Conference Room
| Description | A team meeting to discuss project updates
| Participants | [Participant: a]
+----------------------+--------------------------------+
2. +----------------------+--------------------------------+
| Name | coffee
| Start Time | 2025-03-20 15:00
| End Time | 2025-03-20 16:00
| Location | Conference Room
| Description | Coffee chat
| Participants | [Participant: a]
+----------------------+--------------------------------+
- Clones an existing event and gives it a new name. Only ADMIN can duplicate an event.
- You will be prompted to enter:
- Event index
- New name
- The copy retains all original details and priority.
> duplicate
Enter duplicate command (format: <index> <New Event Name>)(or type 'exit' to cancel):
>1 new
Event duplicated: +----------------------+--------------------------------+
| Name | new
| Start Time | 2025-10-10 20:00
| End Time | 2025-10-10 21:00
| Location | Conference Room
| Description | A team meeting to discuss project updates
| Participants | [Participant: Terry]
+----------------------+--------------------------------+
- Adds a participant to an event if available.
- Only ADMIN can add a participant.
>addparticipant
Available Events:
1. meet
2. Team Meeting
3. chill
4. coffee
5. new
6. ret
Available Participants:
- Alice
- Terry
- a
- gg
Use: <EventIndex> | <Participant Name>
Type 'exit' to cancel.
> 6 | gg
Event Index: 5
Event Start Time: 2025-03-20T16:30
Event End Time: 2025-03-20T17:00
Checking participant availability
-2025-03-20T14:00 to 2025-03-20T19:00
Participant gg has been added.
>addparticipant
5|Alice
Event Index: 4
Event Start Time: 2025-10-10T20:00
Event End Time: 2025-10-10T21:00
Checking participant availability
-2025-03-31T12:00 to 2025-05-31T12:00
Warning: Scheduling Conflict
Participants are not able to attend
Please find another participant
Participant Alice is unavailable during the event.Enter 'addparticipant' to try again or try other features.
- Lists participants of a selected event.
- You will be prompted to enter the index of the event.
>listparticipants
Available Events:
1. meet
2. Team Meeting
3. chill
4. coffee
5. new
6. ret
Enter event index to list participants (or type 'exit' to cancel):
>6
Participants for event "ret":
- Participant: a
- Participant: gg
Saves all data and exits the program safely.
> bye
Bye!
Q: What format should dates follow?
A: yyyy-MM-dd HH:mm β e.g., 2025-04-10 18:00
Q: Why can't I see any events after logging in?
A: You can only view events assigned to you. Ask an admin to add you as a participant.
Q: Can a member user edit events?
A: No, only participants with the ADMIN role can edit event details.
| Command(Then follow the guidance) | Description |
|---|---|
login |
Log in as an existing user |
create |
Create a new participant |
logout |
Log out of the session |
add |
Add a new event |
edit |
Edit an event (admin only) |
delete |
Delete an event |
duplicate |
Duplicate an event |
list |
List your assigned events |
listall |
List all events (admin only) |
find KEYWORD |
Search events by name or description |
filter |
Filter events by priority |
addparticipant |
Add a participant to an event |
listparticipants |
List all participants for an event |
bye |
Exit the program |
- All changes are saved automatically after every command.
- Participant availability is validated before adding to events.
- Commands must be entered exactly as shown (case-insensitive).
- Events are visible only to assigned participants.