diff --git a/src/actions/statistics.js b/src/actions/statistics.js
index 53cc16119b0880a783a0a96aad457866fb165f25..1f92b1e2e54fe6001ef4d8722dc34e18136a9acb 100644
--- a/src/actions/statistics.js
+++ b/src/actions/statistics.js
@@ -12,6 +12,9 @@ import {
   SET_STATUS,
   ABSENT_CHANGE,
   CHANGE_NO,
+  EDIT_EVENT,
+  WRITE_EDITED_EVENT,
+  SELECT_EVENT_FOR_EDIT,
 } from './types';
 
 export const getStaffEvents = () => (
@@ -104,10 +107,39 @@ export const writeEvent = ({ target: { name, value } }) => (
   }
 );
 
+export const selectEventForEdit = editEvent => (
+  (dispatch) => {
+    dispatch({ type: SELECT_EVENT_FOR_EDIT, payload: editEvent });
+  }
+);
 
-export const eventDate = (name, value) => (
+export const writeEditEvent = ({ target: { name, value } }) => (
   (dispatch) => {
-    dispatch({ type: WRITE_EVENT, payload: value, target: name });
+    dispatch({ type: WRITE_EDITED_EVENT, payload: value, target: name });
+  }
+);
+
+export const editEvent = ({ id, name, description, date }) => (
+  async (dispatch) => {
+    try {
+      const response = await axios.patch(`/api/v1/staff_events/${id}/`, {
+        name,
+        description,
+        date,
+      });
+      if (response.data.id) {
+        alert('Sikeres mentĂŠs!');
+        dispatch({
+          type: EDIT_EVENT,
+          payload: response.data,
+
+        });
+      } else {
+        alert('MentĂŠs nem sikerĂźlt!');
+      }
+    } catch (e) {
+      console.log(e);
+    }
   }
 );
 
diff --git a/src/actions/types.js b/src/actions/types.js
index 7624ef90f8ddf00a15ffd6bccffc7f2b9e3fc423..1922943890a4a208430bab2dd0de83e9c8e989e0 100644
--- a/src/actions/types.js
+++ b/src/actions/types.js
@@ -21,7 +21,10 @@ export const CHANGE_NO = 'change_no';
 
 export const GET_NOTES_BY_EVENT = 'get_notes_by_event';
 export const WRITE_EVENT = 'write_event';
+export const WRITE_EDITED_EVENT = 'write_selected_event';
 export const ADD_EVENT = 'add_event';
+export const SELECT_EVENT_FOR_EDIT = 'select_event_for_edit';
+export const EDIT_EVENT = 'edit_event';
 export const DELETE_EVENT = 'delete_event';
 
 export const WRITE_NOTE = 'write_note';
diff --git a/src/components/forms/AddEventForm.js b/src/components/forms/AddEventForm.js
index e1d60e9bd4ddd74f0caee456ddfb077938320ec7..22b4016f42da3e2bdc3cc8609bf7f41939f83fe0 100644
--- a/src/components/forms/AddEventForm.js
+++ b/src/components/forms/AddEventForm.js
@@ -2,7 +2,7 @@ import React, { Component } from 'react';
 import { Modal, Button, Form, Input, Icon } from 'semantic-ui-react';
 import { connect } from 'react-redux';
 import { DateTimeInput } from 'semantic-ui-calendar-react';
-import { writeEvent, eventDate, addEvent } from '../../actions/statistics'
+import { writeEvent, addEvent } from '../../actions/statistics'
 import { clearWrite } from '../../actions/news'
 
 class AddEventForm extends Component {
@@ -21,7 +21,7 @@ class AddEventForm extends Component {
     if (this.state.hasOwnProperty(name)) {
       this.setState({ [name]: value });
     }
-    this.props.eventDate(name, value)
+    this.props.writeEvent({ target: {name, value} });
   }
 
   render() {
@@ -89,6 +89,7 @@ class AddEventForm extends Component {
             onClick={() => {
                     this.props.addEvent(this.props.newEvent);
                     this.setState({ showModal: false, date: '' });
+                    this.props.clearWrite();
                     }}
           >
             <Icon name='checkmark' /> HozzĂĄad
@@ -101,4 +102,4 @@ class AddEventForm extends Component {
 
 const mapStateToProps = ({ events: { newEvent } }) => ({ newEvent });
 
-export default connect(mapStateToProps, { writeEvent, addEvent, eventDate, clearWrite })(AddEventForm);
+export default connect(mapStateToProps, { writeEvent, addEvent, clearWrite })(AddEventForm);
diff --git a/src/components/forms/EditEventForm.js b/src/components/forms/EditEventForm.js
new file mode 100644
index 0000000000000000000000000000000000000000..59516b4995935bcb3b18c82ec1df4ba5db4b7abb
--- /dev/null
+++ b/src/components/forms/EditEventForm.js
@@ -0,0 +1,111 @@
+import React, { Component } from 'react';
+import { Modal, Button, Form, Input, Icon } from 'semantic-ui-react';
+import { connect } from 'react-redux';
+import { DateTimeInput } from 'semantic-ui-calendar-react';
+import {
+  writeEditEvent,
+  editEvent,
+} from '../../actions/statistics'
+import { clearWrite } from '../../actions/news'
+
+class EditEventForm extends Component {
+  constructor(props) {
+    super(props);
+    this.state = {
+      showModal: false,
+      date: '',
+    };
+  }
+
+  // Handling change in redux action creator throws an exception
+  // Temporal solotion using the components state to display, instead redux state
+  handleChange = (event, {name, value}) => {
+    if (this.state.hasOwnProperty(name)) {
+      this.setState({ [name]: value });
+    }
+    this.props.writeEditEvent({target: {name: name, value: value}})
+  }
+
+  render() {
+    const { name, date, description } = this.props.editedEvent;
+    return (
+      <Modal
+        open={this.state.showModal}
+        trigger={
+          <Button
+            compact
+            onClick={() => { this.props.onClick();
+                             this.setState({ showModal: true }); }}
+            size='mini'
+          >
+            Szerkeszt
+          </Button>
+        }
+      >
+        <Modal.Header>Alkalom szerkesztĂŠse:</Modal.Header>
+        <Modal.Content
+          style={{
+            paddingTop: '20px',
+          }}
+        >
+          <Form>
+            <Form.Field
+              control={Input}
+              label='NĂŠv'
+              name='name'
+              onChange={e => this.props.writeEditEvent(e)}
+              value={name}
+              style={{
+                marginBottom: '20px',
+              }}
+              placeholder='NĂŠv'
+            />
+            <Form.TextArea
+              name='description'
+              label='LeĂ­rĂĄs:'
+              placeholder='RĂśvid leĂ­rĂĄs'
+              value={description}
+              onChange={e => this.props.writeEditEvent(e)}
+            />
+            <DateTimeInput
+              name="date"
+              label="DĂĄtum:"
+              dateFormat='YYYY-MM-DD'
+              placeholder="DĂĄtum"
+              value={date}
+              iconPosition="left"
+              onChange={this.handleChange}
+            />
+          </Form>
+        </Modal.Content>
+        <Modal.Actions>
+          <Button
+            inverted
+            color='red'
+            onClick={() => { this.setState({ showModal: false });
+                             this.props.clearWrite();
+                             }}
+          >
+            <Icon name='remove' />
+            MĂŠgse
+          </Button>
+          <Button
+            inverted
+            color='green'
+            onClick={() => {
+                    this.props.editEvent(this.props.editedEvent);
+                    this.setState({ showModal: false, date: '' });
+                    this.props.clearWrite();
+                    }}
+          >
+            <Icon name='checkmark' /> Szerkeszt
+          </Button>
+        </Modal.Actions>
+      </Modal>
+    );
+  }
+}
+
+const mapStateToProps = ({ events: { editedEvent } }) => ({ editedEvent });
+
+export default connect(mapStateToProps, { writeEditEvent, editEvent, clearWrite })(EditEventForm);
diff --git a/src/components/pages/Events.js b/src/components/pages/Events.js
index 2f1221c45d5863874cf0e254ef0770e6c25377fc..d5b6d30b8b3eb9f69ac2c3df9059accaa4feb5ee 100644
--- a/src/components/pages/Events.js
+++ b/src/components/pages/Events.js
@@ -3,8 +3,9 @@ import moment from 'moment';
 import { Link } from 'react-router-dom';
 import { Container, Table, Button } from 'semantic-ui-react';
 import { connect } from 'react-redux';
-import { getStaffEvents, deleteEvent } from '../../actions/statistics';
+import { getStaffEvents, deleteEvent, selectEventForEdit } from '../../actions/statistics';
 import AddEventForm from '../forms/AddEventForm';
+import EditEventForm from '../forms/EditEventForm';
 import ConfirmModal from '../forms/ConfirmModal';
 
 class Events extends Component {
@@ -37,6 +38,7 @@ class Events extends Component {
                }
             onAccept={() => this.props.deleteEvent(event)}
           />
+          <EditEventForm onClick={() => this.props.selectEventForEdit(event)} />
         </Table.Cell>
       </Table.Row>
     );
@@ -68,4 +70,4 @@ class Events extends Component {
 
 const mapStateToProps = ({ events: { events }, user }) => ({ events, user });
 
-export default connect(mapStateToProps, { getStaffEvents, deleteEvent })(Events);
+export default connect(mapStateToProps, { getStaffEvents, selectEventForEdit, deleteEvent })(Events);
diff --git a/src/reducers/EventReducer.js b/src/reducers/EventReducer.js
index 5dd067d018da28027a91239edfb17d9b7a41637c..72a976407b8a514e31953543163f3cb92b6a1665 100644
--- a/src/reducers/EventReducer.js
+++ b/src/reducers/EventReducer.js
@@ -8,9 +8,12 @@ import {
   CLEAR_WRITE,
   ABSENT_CHANGE,
   CHANGE_NO,
+  SELECT_EVENT_FOR_EDIT,
+  EDIT_EVENT,
+  WRITE_EDITED_EVENT,
 } from '../actions/types';
 
-const INITIAL_STATE = { events: [], newEvent: {} };
+const INITIAL_STATE = { events: [], newEvent: {}, editedEvent: {} };
 
 export default (state = INITIAL_STATE, action) => {
   switch (action.type) {
@@ -75,8 +78,16 @@ export default (state = INITIAL_STATE, action) => {
     case DELETE_EVENT:
       state.events.splice(state.events.indexOf(action.payload), 1);
       return { ...state, events: [...state.events] };
+    case SELECT_EVENT_FOR_EDIT:
+      return { ...state, editedEvent: action.payload }
+    case WRITE_EDITED_EVENT:
+      return { ...state, editedEvent: { ...state.editedEvent, [action.target]: action.payload } };
+    case EDIT_EVENT:
+      const index = state.events.findIndex(item => item.id === action.payload.id);
+      state.events.splice(index, 1, action.payload);
+      return { ...state, events: [...state.events] };
     case CLEAR_WRITE:
-      return { ...state, newEvent: {} };
+      return { ...state, newEvent: {}, editedEvent: {} };
     default:
       return state;
   }