Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/dto/eventDTO/CreateEventDTO.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/dto/eventDTO/CreateEventDTO.java	(revision c7eec59c6f20bc3fdaefd43bd4fac2b050eb8650)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/dto/eventDTO/CreateEventDTO.java	(revision c7eec59c6f20bc3fdaefd43bd4fac2b050eb8650)
@@ -0,0 +1,19 @@
+package mk.ukim.finki.it.reservengo.dto.eventDTO;
+
+import mk.ukim.finki.it.reservengo.model.domain.Event;
+import mk.ukim.finki.it.reservengo.model.domain.Local;
+import mk.ukim.finki.it.reservengo.model.enumerations.EventType;
+
+import java.time.LocalDateTime;
+
+public record CreateEventDTO(
+        String name,
+        String description,
+        EventType eventType,
+        LocalDateTime eventStart,
+        LocalDateTime eventEnd
+) {
+    public Event toEvent(Local local){
+        return new Event(name, description, eventType, eventStart, eventEnd, local);
+    }
+}
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/exceptions/EventIdNotFoundException.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/exceptions/EventIdNotFoundException.java	(revision c7eec59c6f20bc3fdaefd43bd4fac2b050eb8650)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/exceptions/EventIdNotFoundException.java	(revision c7eec59c6f20bc3fdaefd43bd4fac2b050eb8650)
@@ -0,0 +1,7 @@
+package mk.ukim.finki.it.reservengo.model.exceptions;
+
+public class EventIdNotFoundException extends RuntimeException {
+  public EventIdNotFoundException(Long id) {
+    super("Event with id: " + id + " not found.");
+  }
+}
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/exceptions/EventNotInLocalException.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/exceptions/EventNotInLocalException.java	(revision c7eec59c6f20bc3fdaefd43bd4fac2b050eb8650)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/exceptions/EventNotInLocalException.java	(revision c7eec59c6f20bc3fdaefd43bd4fac2b050eb8650)
@@ -0,0 +1,7 @@
+package mk.ukim.finki.it.reservengo.model.exceptions;
+
+public class EventNotInLocalException extends RuntimeException {
+    public EventNotInLocalException(Long id) {
+        super("Event with id: " + id + " doesn't belong to local.");
+    }
+}
Index: serveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/exceptions/MenuDeletionException.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/exceptions/MenuDeletionException.java	(revision 6102d84fe86c57d44f32c7132dd561cc228026d1)
+++ 	(revision )
@@ -1,7 +1,0 @@
-package mk.ukim.finki.it.reservengo.model.exceptions;
-
-public class MenuDeletionException extends RuntimeException {
-    public MenuDeletionException(String message, Throwable cause) {
-        super(message, cause);
-    }
-}
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/impl/EventServiceImpl.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/impl/EventServiceImpl.java	(revision 6102d84fe86c57d44f32c7132dd561cc228026d1)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/impl/EventServiceImpl.java	(revision c7eec59c6f20bc3fdaefd43bd4fac2b050eb8650)
@@ -3,6 +3,8 @@
 import mk.ukim.finki.it.reservengo.dto.eventDTO.DisplayEventDTO;
 import mk.ukim.finki.it.reservengo.model.domain.Event;
+import mk.ukim.finki.it.reservengo.model.domain.Local;
 import mk.ukim.finki.it.reservengo.model.enumerations.EventStatus;
 import mk.ukim.finki.it.reservengo.model.enumerations.EventType;
+import mk.ukim.finki.it.reservengo.model.exceptions.EventIdNotFoundException;
 import mk.ukim.finki.it.reservengo.repository.EventRepository;
 import mk.ukim.finki.it.reservengo.service.intf.EventService;
@@ -27,9 +29,14 @@
 
     @Override
-    public Page<DisplayEventDTO> searchEvents(String name, EventType eventType, EventStatus eventStatus, int page, int size, String sortBy, String direction) {
+    public Page<DisplayEventDTO> searchEvents(Local local, String name, EventType eventType, EventStatus eventStatus, int page, int size, String sortBy, String direction) {
         boolean needsManualProcessing;
         needsManualProcessing = eventStatus != null;
 
         Specification<Event> spec = Specification.where(null);
+
+        if (local != null) {
+            spec = spec.and((root, query, cb) ->
+                    cb.equal(root.get("local"), local));
+        }
 
         if (name != null && !name.trim().isEmpty()) {
@@ -67,4 +74,15 @@
     }
 
+
+    @Override
+    public Event findEventById(Long id) {
+        return eventRepository.findById(id).orElseThrow(() -> new EventIdNotFoundException(id));
+    }
+
+    @Override
+    public Event save(Event event) {
+        return eventRepository.save(event);
+    }
+
     private Sort getSort(String sortBy, String direction) {
         Sort.Direction sortDirection = "desc".equalsIgnoreCase(direction) ? Sort.Direction.DESC : Sort.Direction.ASC;
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/impl/LocalManagerServiceImpl.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/impl/LocalManagerServiceImpl.java	(revision 6102d84fe86c57d44f32c7132dd561cc228026d1)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/impl/LocalManagerServiceImpl.java	(revision c7eec59c6f20bc3fdaefd43bd4fac2b050eb8650)
@@ -1,17 +1,25 @@
 package mk.ukim.finki.it.reservengo.service.impl;
 
+import mk.ukim.finki.it.reservengo.dto.eventDTO.CreateEventDTO;
+import mk.ukim.finki.it.reservengo.dto.eventDTO.DisplayEventDTO;
 import mk.ukim.finki.it.reservengo.dto.localDTO.CreateLocalDetailsDTO;
 import mk.ukim.finki.it.reservengo.dto.localDTO.DeleteLocalPhotosDTO;
 import mk.ukim.finki.it.reservengo.dto.localDTO.DeleteLocalPhotosResultDTO;
+import mk.ukim.finki.it.reservengo.model.domain.Event;
 import mk.ukim.finki.it.reservengo.model.domain.Local;
 import mk.ukim.finki.it.reservengo.model.domain.LocalManager;
+import mk.ukim.finki.it.reservengo.model.enumerations.EventStatus;
+import mk.ukim.finki.it.reservengo.model.enumerations.EventType;
 import mk.ukim.finki.it.reservengo.model.enumerations.Position;
+import mk.ukim.finki.it.reservengo.model.exceptions.EventNotInLocalException;
 import mk.ukim.finki.it.reservengo.model.exceptions.LocalManagerIdNotFoundException;
 import mk.ukim.finki.it.reservengo.model.exceptions.ManagerNotAssignedException;
 import mk.ukim.finki.it.reservengo.model.exceptions.UserEmailAlreadyExistsException;
 import mk.ukim.finki.it.reservengo.repository.LocalManagerRepository;
+import mk.ukim.finki.it.reservengo.service.intf.EventService;
 import mk.ukim.finki.it.reservengo.service.intf.LocalManagerService;
 import mk.ukim.finki.it.reservengo.service.intf.LocalService;
 import mk.ukim.finki.it.reservengo.service.intf.UserService;
+import org.springframework.data.domain.Page;
 import org.springframework.stereotype.Service;
 import org.springframework.web.multipart.MultipartFile;
@@ -26,9 +34,11 @@
     private final LocalManagerRepository localManagerRepository;
     private final UserService userService;
+    private final EventService eventService;
 
-    public LocalManagerServiceImpl(LocalService localService, LocalManagerRepository localManagerRepository, UserService userService) {
+    public LocalManagerServiceImpl(LocalService localService, LocalManagerRepository localManagerRepository, UserService userService, EventService eventService) {
         this.localService = localService;
         this.localManagerRepository = localManagerRepository;
         this.userService = userService;
+        this.eventService = eventService;
     }
 
@@ -116,3 +126,41 @@
         return localService.deletePhotos(local.getId(), deleteLocalPhotosDTO.localPhotosUrls());
     }
+
+    @Override
+    public void addEvent(Long managerId, CreateEventDTO createEventDTO) {
+        Local local = findLocalByManagerId(managerId);
+        Event event = createEventDTO.toEvent(local);
+
+        localService.addEvent(local, event);
+    }
+
+    @Override
+    public void deleteEvent(Long managerId, Long eventId) {
+        Local local = findLocalByManagerId(managerId);
+        Event event = eventService.findEventById(eventId);
+
+        if (!event.getLocal().getId().equals(local.getId())) {
+            throw new EventNotInLocalException(eventId);
+        }
+
+        localService.deleteEvent(local, event);
+    }
+
+    @Override
+    public Page<DisplayEventDTO> findAllEventsByLocal(Long managerId, String name, EventType eventType, EventStatus eventStatus, int page, int size, String sortBy, String direction) {
+        Local local = findLocalByManagerId(managerId);
+        return eventService.searchEvents(local, name, eventType, eventStatus, page, size, sortBy, direction);
+    }
+
+    @Override
+    public Event editEvent(Long managerId, Long eventId, CreateEventDTO createEventDTO) {
+        Local local = findLocalByManagerId(managerId);
+        Event event = eventService.findEventById(eventId);
+
+        if (!event.getLocal().getId().equals(local.getId())) {
+            throw new EventNotInLocalException(eventId);
+        }
+
+        return localService.editEvent(local, event, createEventDTO);
+    }
 }
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/impl/LocalServiceImpl.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/impl/LocalServiceImpl.java	(revision 6102d84fe86c57d44f32c7132dd561cc228026d1)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/impl/LocalServiceImpl.java	(revision c7eec59c6f20bc3fdaefd43bd4fac2b050eb8650)
@@ -1,8 +1,10 @@
 package mk.ukim.finki.it.reservengo.service.impl;
 
+import mk.ukim.finki.it.reservengo.dto.eventDTO.CreateEventDTO;
 import mk.ukim.finki.it.reservengo.dto.localDTO.CreateLocalDetailsDTO;
 import mk.ukim.finki.it.reservengo.dto.localDTO.DeleteLocalPhotosResultDTO;
 import mk.ukim.finki.it.reservengo.dto.localDTO.DisplayLocalDTO;
 import mk.ukim.finki.it.reservengo.dto.localDTO.WorkingHourDTO;
+import mk.ukim.finki.it.reservengo.model.domain.Event;
 import mk.ukim.finki.it.reservengo.model.domain.Local;
 import mk.ukim.finki.it.reservengo.model.enumerations.LocalType;
@@ -10,4 +12,5 @@
 import mk.ukim.finki.it.reservengo.model.exceptions.*;
 import mk.ukim.finki.it.reservengo.repository.LocalRepository;
+import mk.ukim.finki.it.reservengo.service.intf.EventService;
 import mk.ukim.finki.it.reservengo.service.intf.FileStorageService;
 import mk.ukim.finki.it.reservengo.service.intf.LocalService;
@@ -29,8 +32,10 @@
     private final LocalRepository localRepository;
     private final FileStorageService fileStorageService;
-
-    public LocalServiceImpl(LocalRepository localRepository, FileStorageService fileStorageService) {
+    private final EventService eventService;
+
+    public LocalServiceImpl(LocalRepository localRepository, FileStorageService fileStorageService, EventService eventService) {
         this.localRepository = localRepository;
         this.fileStorageService = fileStorageService;
+        this.eventService = eventService;
     }
 
@@ -209,4 +214,35 @@
     }
 
+    @Override
+    public void addEvent(Local local, Event event) {
+        local.getEvents().add(event);
+        localRepository.save(local);
+    }
+
+    @Override
+    public void deleteEvent(Local local, Event event) {
+        if (!local.getEvents().contains(event)) {
+            throw new EventNotInLocalException(event.getId());
+        }
+        local.getEvents().remove(event);
+        
+        localRepository.save(local);
+    }
+
+    @Override
+    public Event editEvent(Local local, Event event, CreateEventDTO createEventDTO) {
+        if (!local.getEvents().contains(event)) {
+            throw new EventNotInLocalException(event.getId());
+        }
+
+        event.setName(createEventDTO.name());
+        event.setDescription(createEventDTO.description());
+        event.setEventStart(createEventDTO.eventStart());
+        event.setEventEnd(createEventDTO.eventEnd());
+        event.setEventType(createEventDTO.eventType());
+
+        return eventService.save(event);
+    }
+
     private Sort getSort(String sortBy, String direction) {
         Sort.Direction sortDirection = "desc".equalsIgnoreCase(direction) ? Sort.Direction.DESC : Sort.Direction.ASC;
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/intf/EventService.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/intf/EventService.java	(revision 6102d84fe86c57d44f32c7132dd561cc228026d1)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/intf/EventService.java	(revision c7eec59c6f20bc3fdaefd43bd4fac2b050eb8650)
@@ -3,4 +3,5 @@
 import mk.ukim.finki.it.reservengo.dto.eventDTO.DisplayEventDTO;
 import mk.ukim.finki.it.reservengo.model.domain.Event;
+import mk.ukim.finki.it.reservengo.model.domain.Local;
 import mk.ukim.finki.it.reservengo.model.enumerations.EventStatus;
 import mk.ukim.finki.it.reservengo.model.enumerations.EventType;
@@ -12,4 +13,8 @@
     List<Event> listAll();
 
-    Page<DisplayEventDTO> searchEvents(String name, EventType eventType, EventStatus eventStatus, int page, int size, String sortBy, String direction);
+    Page<DisplayEventDTO> searchEvents(Local local, String name, EventType eventType, EventStatus eventStatus, int page, int size, String sortBy, String direction);
+
+    Event findEventById(Long id);
+
+    Event save(Event event);
 }
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/intf/LocalManagerService.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/intf/LocalManagerService.java	(revision 6102d84fe86c57d44f32c7132dd561cc228026d1)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/intf/LocalManagerService.java	(revision c7eec59c6f20bc3fdaefd43bd4fac2b050eb8650)
@@ -1,10 +1,16 @@
 package mk.ukim.finki.it.reservengo.service.intf;
 
+import mk.ukim.finki.it.reservengo.dto.eventDTO.CreateEventDTO;
+import mk.ukim.finki.it.reservengo.dto.eventDTO.DisplayEventDTO;
 import mk.ukim.finki.it.reservengo.dto.localDTO.CreateLocalDetailsDTO;
 import mk.ukim.finki.it.reservengo.dto.localDTO.DeleteLocalPhotosDTO;
 import mk.ukim.finki.it.reservengo.dto.localDTO.DeleteLocalPhotosResultDTO;
+import mk.ukim.finki.it.reservengo.model.domain.Event;
 import mk.ukim.finki.it.reservengo.model.domain.Local;
 import mk.ukim.finki.it.reservengo.model.domain.LocalManager;
+import mk.ukim.finki.it.reservengo.model.enumerations.EventStatus;
+import mk.ukim.finki.it.reservengo.model.enumerations.EventType;
 import mk.ukim.finki.it.reservengo.model.enumerations.Position;
+import org.springframework.data.domain.Page;
 import org.springframework.web.multipart.MultipartFile;
 
@@ -35,3 +41,11 @@
 
     DeleteLocalPhotosResultDTO deleteLocalPhoto(Long managerId, DeleteLocalPhotosDTO deleteLocalPhotosDTO);
+
+    void addEvent(Long managerId, CreateEventDTO createEventDTO);
+
+    void deleteEvent(Long managerId, Long eventId);
+
+    Page<DisplayEventDTO> findAllEventsByLocal(Long managerId, String name, EventType eventType, EventStatus eventStatus, int page, int size, String sortBy, String direction);
+
+    Event editEvent(Long managerId, Long eventId, CreateEventDTO createEventDTO);
 }
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/intf/LocalService.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/intf/LocalService.java	(revision 6102d84fe86c57d44f32c7132dd561cc228026d1)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/intf/LocalService.java	(revision c7eec59c6f20bc3fdaefd43bd4fac2b050eb8650)
@@ -1,7 +1,9 @@
 package mk.ukim.finki.it.reservengo.service.intf;
 
+import mk.ukim.finki.it.reservengo.dto.eventDTO.CreateEventDTO;
 import mk.ukim.finki.it.reservengo.dto.localDTO.CreateLocalDetailsDTO;
 import mk.ukim.finki.it.reservengo.dto.localDTO.DeleteLocalPhotosResultDTO;
 import mk.ukim.finki.it.reservengo.dto.localDTO.DisplayLocalDTO;
+import mk.ukim.finki.it.reservengo.model.domain.Event;
 import mk.ukim.finki.it.reservengo.model.domain.Local;
 import mk.ukim.finki.it.reservengo.model.enumerations.LocalType;
@@ -32,3 +34,9 @@
 
     Page<DisplayLocalDTO> searchLocals(String name, List<ProvidedService> services, LocalType localType, Boolean isOpen, int page, int size, String sortBy, String direction);
+
+    void addEvent(Local local, Event event);
+
+    void deleteEvent(Local local, Event event);
+
+    Event editEvent(Local local, Event event, CreateEventDTO createEventDTO);
 }
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/web/advice/GlobalExceptionHandler.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/web/advice/GlobalExceptionHandler.java	(revision 6102d84fe86c57d44f32c7132dd561cc228026d1)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/web/advice/GlobalExceptionHandler.java	(revision c7eec59c6f20bc3fdaefd43bd4fac2b050eb8650)
@@ -74,9 +74,4 @@
     }
 
-    @ExceptionHandler(MenuDeletionException.class)
-    public ResponseEntity<String> handleMenuDeletion(MenuDeletionException ex) {
-        return ResponseEntity.status(HttpStatus.CONFLICT).body(ex.getMessage());
-    }
-
     @ExceptionHandler(ManagerAlreadyAssignedException.class)
     public ResponseEntity<String> handleManagerAlreadyAssigned(ManagerAlreadyAssignedException ex) {
@@ -108,4 +103,14 @@
         return ResponseEntity.status(HttpStatus.CONFLICT).body(ex.getMessage());
     }
+
+    @ExceptionHandler(EventIdNotFoundException.class)
+    public ResponseEntity<String> handleEventIdNotFound(EventIdNotFoundException ex) {
+        return ResponseEntity.status(HttpStatus.NOT_FOUND).body(ex.getMessage());
+    }
+
+    @ExceptionHandler(EventNotInLocalException.class)
+    public ResponseEntity<String> handleEventNotInLocal(EventNotInLocalException ex) {
+        return ResponseEntity.status(HttpStatus.FORBIDDEN).body(ex.getMessage());
+    }
 }
 
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/web/controller/EventController.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/web/controller/EventController.java	(revision 6102d84fe86c57d44f32c7132dd561cc228026d1)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/web/controller/EventController.java	(revision c7eec59c6f20bc3fdaefd43bd4fac2b050eb8650)
@@ -33,5 +33,5 @@
             @RequestParam(defaultValue = "10") int size
     ) {
-        Page<DisplayEventDTO> dtoPage = eventService.searchEvents(name, eventType, eventStatus, page, size, sortBy, direction);
+        Page<DisplayEventDTO> dtoPage = eventService.searchEvents(null, name, eventType, eventStatus, page, size, sortBy, direction);
         PagedEventDTO pagedEventDTO = PagedEventDTO.from(dtoPage);
         return new ResponseEntity<>(pagedEventDTO, HttpStatus.OK);
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/web/controller/LocalManagerController.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/web/controller/LocalManagerController.java	(revision 6102d84fe86c57d44f32c7132dd561cc228026d1)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/web/controller/LocalManagerController.java	(revision c7eec59c6f20bc3fdaefd43bd4fac2b050eb8650)
@@ -1,4 +1,7 @@
 package mk.ukim.finki.it.reservengo.web.controller;
 
+import mk.ukim.finki.it.reservengo.dto.eventDTO.CreateEventDTO;
+import mk.ukim.finki.it.reservengo.dto.eventDTO.DisplayEventDTO;
+import mk.ukim.finki.it.reservengo.dto.eventDTO.PagedEventDTO;
 import mk.ukim.finki.it.reservengo.dto.localDTO.CreateLocalDetailsDTO;
 import mk.ukim.finki.it.reservengo.dto.localDTO.DeleteLocalPhotosDTO;
@@ -6,5 +9,8 @@
 import mk.ukim.finki.it.reservengo.dto.localDTO.DisplayLocalDetailsDTO;
 import mk.ukim.finki.it.reservengo.model.domain.User;
+import mk.ukim.finki.it.reservengo.model.enumerations.EventStatus;
+import mk.ukim.finki.it.reservengo.model.enumerations.EventType;
 import mk.ukim.finki.it.reservengo.service.intf.LocalManagerService;
+import org.springframework.data.domain.Page;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
@@ -32,5 +38,5 @@
 
     @PutMapping("/my-local/edit")
-    public ResponseEntity<DisplayLocalDetailsDTO> editLocalInformation(@AuthenticationPrincipal User user, @RequestBody CreateLocalDetailsDTO createLocalDetailsDTO) {
+    public ResponseEntity<DisplayLocalDetailsDTO> editLocal(@AuthenticationPrincipal User user, @RequestBody CreateLocalDetailsDTO createLocalDetailsDTO) {
         DisplayLocalDetailsDTO displayLocalDetailsDTO = DisplayLocalDetailsDTO.from(localManagerService.editLocal(user.getId(), createLocalDetailsDTO));
         return new ResponseEntity<>(displayLocalDetailsDTO, HttpStatus.OK);
@@ -60,3 +66,37 @@
         return new ResponseEntity<>(resultDTO, HttpStatus.MULTI_STATUS);
     }
+
+    @PostMapping("/add-event")
+    public ResponseEntity<Void> addEvent(@AuthenticationPrincipal User user, @RequestBody CreateEventDTO createEventDTO) {
+        localManagerService.addEvent(user.getId(), createEventDTO);
+        return new ResponseEntity<>(HttpStatus.CREATED);
+    }
+
+    @DeleteMapping("/delete-event/{id}")
+    public ResponseEntity<Void> deleteEvent(@AuthenticationPrincipal User user, @PathVariable Long id) {
+        localManagerService.deleteEvent(user.getId(), id);
+        return new ResponseEntity<>(HttpStatus.OK);
+    }
+
+    @GetMapping("/events")
+    public ResponseEntity<PagedEventDTO> getEvents(
+            @AuthenticationPrincipal User user,
+            @RequestParam(required = false) String name,
+            @RequestParam(required = false) EventType eventType,
+            @RequestParam(required = false) EventStatus eventStatus, // active, upcoming
+            @RequestParam(required = false, defaultValue = "name") String sortBy, // created at, name
+            @RequestParam(required = false, defaultValue = "asc") String direction,
+            @RequestParam(defaultValue = "0") int page,
+            @RequestParam(defaultValue = "10") int size
+    ) {
+        Page<DisplayEventDTO> dtoPage = localManagerService.findAllEventsByLocal(user.getId(), name, eventType, eventStatus, page, size, sortBy, direction);
+        PagedEventDTO pagedEventDTO = PagedEventDTO.from(dtoPage);
+        return new ResponseEntity<>(pagedEventDTO, HttpStatus.OK);
+    }
+
+    @PutMapping("/events/edit/{id}")
+    public ResponseEntity<DisplayEventDTO> editEvent(@AuthenticationPrincipal User user, @PathVariable Long id, @RequestBody CreateEventDTO createEventDTO) {
+        DisplayEventDTO dto = DisplayEventDTO.fromEvent(localManagerService.editEvent(user.getId(), id, createEventDTO));
+        return new ResponseEntity<>(dto, HttpStatus.OK);
+    }
 }
