diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb
index 72ce32f44c82fd8b1e10f316a5cbdcd0473b5ec6..e4058d57fa66681d1e893d8a0251461c36c75323 100644
--- a/app/controllers/application_controller.rb
+++ b/app/controllers/application_controller.rb
@@ -119,16 +119,141 @@ class ApplicationController < ActionController::Base
       redirect_to login_path
     end
 
-    def send_invite(emails, event)
+    def send_invite(creator, emails, event)
     invite_request = HTTParty.post('http://172.17.0.1:3002/invite', :body => {
       :emails => emails,
+      :creator => creator,
       :event => {
           :title => event["title"],
           :description => event["description"],
-          :date_time => event["date_time"],
+          :date_time => event["scheduledAt"],
         }
     })
     end
 
+    def send_update(creator, emails, event)
+      invite_request = HTTParty.post('http://172.17.0.1:3002/update', :body => {
+        :emails => emails,
+        :creator => creator,
+        :event => {
+            :title => event["title"],
+            :description => event["description"],
+            :date_time => event["scheduledAt"],
+          }
+      })
+    end
+
+    def send_delete(creator, emails, event)
+        invite_request = HTTParty.post('http://172.17.0.1:3002/delete', :body => {
+          :emails => emails,
+          :creator => creator,
+          :event => {
+              :title => event.title,
+              :description => event.description,
+              :date_time => event.scheduledAt,
+            }
+        })
+    end
+
+    def create_event_request(event)
+      event_request = HTTParty.post('http://172.17.0.1:3003/events', :body => {
+        :event => {
+          :title => event.title,
+          :description => event.description,
+          :active => event.active,
+          :scheduledAt => event.scheduledAt,
+          :creator => event.creator,
+          :invitees => event.invitees
+        }
+      })
+      return event_request
+    end
+
+    def update_event_request(event)
+      event_request = HTTParty.put('http://172.17.0.1:3003/events', :body => {
+        :event => {
+          :title => event.title,
+          :description => event.description,
+          :active => event.active,
+          :scheduledAt => event.scheduledAt,
+          :creator => event.creator,
+          :invitees => event.invitees
+        },
+        :id => event.id
+      })
+      return event_request
+    
+    end
+
+    def delete_event_request(event)
+      event_request = HTTParty.delete('http://172.17.0.1:3003/events', :body => {
+        :id => event.id
+      })
+      return event_request
+    
+    end
+
+    def create_event(event_validation)
+      auth
+      if session[:logged_in]
+        event = create_event_request(event_validation)
+        creator = get_emails(event["creator"])
+        email_addresses = get_emails(event["invitees"])
+        send_invite(creator, email_addresses, event)
+      end
+      # render created_event
+    end    
+
+    def get_my_created_events(id)
+      auth
+      if session[:logged_in]
+        event_request = HTTParty.post('http://172.17.0.1:3003/my_created_events', :body => {
+          :id => id
+        })
+        return event_request
+      end
+      
+    end
+
+    def get_my_events(id)
+      auth
+      if session[:logged_in]
+        event_request = HTTParty.post('http://172.17.0.1:3003/my_events', :body => {
+          :id => id
+        })
+        puts event_request
+      end
+    end
+
+    def update_event(event_validation)
+      auth
+      if session[:logged_in]
+        event = update_event_request(event_validation)
+        if event.code == 404
+          puts event.code, event["error"]
+        else
+          creator = get_emails(event["creator"])
+          email_addresses = get_emails(event["invitees"])
+          send_update(creator, email_addresses, event)
+        end
+      end
+      # render created_event
+    end
+
+    def delete_event(event)
+      auth
+      if session[:logged_in]
+        request = delete_event_request(event)
+        if request.code == 404
+          puts request.code, request["error"]
+        else
+          creator = get_emails(event.creator)
+          email_addresses = get_emails(event.invitees)
+          send_delete(creator, email_addresses, event)
+        end
+      end
+      # render created_event
+    end 
+
   
 end
\ No newline at end of file
diff --git a/app/controllers/home_controller.rb b/app/controllers/home_controller.rb
index 174ab4e1e98aa96f9d8fac661f5360ae9e525c43..916187db6b8fa40c900131e8f21c23c5c972b81d 100644
--- a/app/controllers/home_controller.rb
+++ b/app/controllers/home_controller.rb
@@ -55,6 +55,37 @@ class HomeController < ApplicationController
         redirect_to root_path
     end
 
+    def event_test
+        create_event(generate_event)
+        redirect_to root_path
+    end
+
+    def created_event_test
+        id = "2"
+        get_my_created_events(id)
+        redirect_to root_path
+    end
+
+    def generate_event
+        event = EventValidation.new(:id => "4", :title => "this is a test title", :description => "this is a test description", :active => true, :scheduledAt => (Time.now + 1.hours), :creator => session[:user_id], :invitees => [session[:user_id]])
+    end
+
+    def events_test
+        id = "2"
+        get_my_events(id)
+        redirect_to root_path
+    end
+
+    def update_event_test
+        update_event(generate_event)
+        redirect_to root_path
+    end
+
+    def delete_event_test
+        delete_event(generate_event)
+        redirect_to root_path
+    end
+
 
 
 
diff --git a/app/models/event_validation.rb b/app/models/event_validation.rb
new file mode 100644
index 0000000000000000000000000000000000000000..fa9a7fe0f9ae26108269f346490d75e1de6fd966
--- /dev/null
+++ b/app/models/event_validation.rb
@@ -0,0 +1,11 @@
+class EventValidation
+
+    #TODO: validation
+    include ActiveModel::Model
+    include ActiveModel::Validations
+
+    attr_accessor :id, :title, :description, :active, :scheduledAt, :creator, :invitees
+
+    validates :title, :description, :active, :scheduledAt, :creator, :invitees, presence: true
+
+end
diff --git a/app/views/home/home.html.erb b/app/views/home/home.html.erb
index 376828bfea3223fa433cfaed227718230cbb86a9..0e07f3cf7e687a4c6dde25e389e00d510a5e4c68 100644
--- a/app/views/home/home.html.erb
+++ b/app/views/home/home.html.erb
@@ -12,11 +12,17 @@
 
   <body>
     <%= yield %>
-    <%= link_to "Reminder", home_reminder_email_test_path, class: 'btn btn-warning btn-md' %> 
-    <%= link_to "Auth", home_test_auth_path, class: 'btn btn-warning btn-md' %>
-    <%= link_to "Invite", home_invite_test_path, class: 'btn btn-warning btn-md' %>
-
+    
     <% if session[:logged_in] %>
+      <%= link_to "Reminder", home_reminder_email_test_path, class: 'btn btn-warning btn-md' %> 
+      <%= link_to "Auth", home_test_auth_path, class: 'btn btn-warning btn-md' %>
+      <%= link_to "Invite", home_invite_test_path, class: 'btn btn-warning btn-md' %>
+      <%= link_to "Create Event", home_event_test_path, class: 'btn btn-warning btn-md' %>
+      <%= link_to "Get My Created Events", home_created_event_test_path, class: 'btn btn-warning btn-md' %>
+      <%= link_to "Get My Events", home_events_test_path, class: 'btn btn-warning btn-md' %>
+      <%= link_to "Update Event", home_update_event_test_path, class: 'btn btn-warning btn-md' %>
+      <%= link_to "Delete Event", home_delete_event_test_path, class: 'btn btn-warning btn-md' %>
+
       <%= link_to "Logout", home_test_log_out_path, class: 'btn btn-warning btn-md' %>
     <% else %>
       <%= link_to "Login", login_path,  class: 'btn btn-info btn-md' %>
diff --git a/config/routes.rb b/config/routes.rb
index bfa1697be6a0750dcee22c49443dfac6d99741a0..b3f6720291bf3b31ed789d1b728c783a1b230b87 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -23,5 +23,9 @@ Rails.application.routes.draw do
   get 'reset_password', to: 'passwords#edit'
   post 'reset_password_setup', to: 'passwords#reset_password_setup'
   get 'home/invite_test', to: 'home#invite_test'
-
+  get 'home/event_test', to: 'home#event_test'
+  get 'home/created_event_test', to: 'home#created_event_test'
+  get 'home/events_test', to: 'home#events_test'
+  get 'home/update_event_test', to: 'home#update_event_test'
+  get 'home/delete_event_test', to: 'home#delete_event_test'
 end
diff --git a/docker-compose.yaml b/docker-compose.yaml
index a323f18d03fe3ecad847102cd85dd32578dca1e6..7926eb8c40d8d1bd55f07fa06a117e5cac0acd7a 100644
--- a/docker-compose.yaml
+++ b/docker-compose.yaml
@@ -23,6 +23,19 @@ services:
 
         ports:
             - "3307:3307"
+    db_events:
+        image: postgres:latest
+        # volumes: 
+        #     - db_data:/var/lib/mysql
+        restart: always
+        environment:
+            POSTGRES_DB: event_microservice
+            POSTGRES_USER: admin
+            POSTGRES_PASSWORD: group24
+
+        ports:
+            - 3308:3308
+    
 
     redis:
         image: redis:latest
@@ -36,7 +49,7 @@ services:
         depends_on:
         - 'redis'
         command: sidekiq -C config/sidekiq.yml
-        image: driftydirt/group24mailer:0.0.8
+        image: driftydirt/group24mailer:0.0.9
 
     
     primary:
@@ -59,7 +72,7 @@ services:
         links:
             - db_auth
     mailer:
-        image: driftydirt/group24mailer:0.0.8
+        image: driftydirt/group24mailer:0.0.9
         ports: 
             - "3002:3000"
         environment: 
@@ -67,6 +80,14 @@ services:
             REDIS_PORT: 6379
         links:
             - redis
+    event:
+        image: driftydirt/group24events:0.0.1
+        ports:
+            - 3003:3000
+        depends_on:
+            - db_events
+        links:
+            - db_events
 volumes:
     redis: 
         driver: local
\ No newline at end of file