diff --git a/.gitignore b/.gitignore
index dca2977..29abd6e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,5 +1,7 @@
 /coverage
 /doc
+.rvmrc
+/.idea
 /pkg
 *.gem
 Gemfile.lock
diff --git a/Gemfile b/Gemfile
index fcf42f9..9bb1435 100644
--- a/Gemfile
+++ b/Gemfile
@@ -8,4 +8,6 @@
 
 group :doc do
  gem 'rdoc', '~> 4.0.0'
-end
\ No newline at end of file
+end
+
+gem 'activesupport', '~> 4.2'
\ No newline at end of file
diff --git a/README.md b/README.md
index 77655dd..56828ef 100644
--- a/README.md
+++ b/README.md
@@ -71,6 +71,19 @@
 )
 ```
 
+### Create a $set` item event and send it to Event Server to specific channel 
+
+*NOTE:* channels are supported in PIO version >= 0.9.2 only. Channel must be created first.
+
+```ruby
+client.create_event(
+  '$set',
+  'item',
+  item_id,
+  { 'properties' => { 'categories' => ['Category 1', 'Category 2'], 'channel' => 'test-channel'} }
+)
+```
+
 ### Create a user 'rate' item event and send it to Event Server
 
 ```ruby
diff --git a/lib/predictionio/event_client.rb b/lib/predictionio/event_client.rb
index 2fda24e..75428e8 100644
--- a/lib/predictionio/event_client.rb
+++ b/lib/predictionio/event_client.rb
@@ -6,6 +6,7 @@
 
 require 'date'
 require "net/http"
+require 'active_support/core_ext/hash'
 
 module PredictionIO
   # This class contains methods that interface with the PredictionIO Event
@@ -110,14 +111,19 @@
     #
     # See also #create_event.
     def acreate_event(event, entity_type, entity_id, optional = {})
-      h = optional
+      h = optional.with_indifferent_access
       h.key?('eventTime') || h['eventTime'] = DateTime.now.to_s
       h['event'] = event
       h['entityType'] = entity_type
       h['entityId'] = entity_id
-      @http.apost(PredictionIO::AsyncRequest.new(
-        "/events.json?accessKey=#{@access_key}", h.to_json
-      ))
+      @http.apost(PredictionIO::AsyncRequest.new(event_path_with_main_params(h), h.except(:channel).to_json))
+    end
+
+    def event_path_with_main_params(options)
+      result = "/events.json?accessKey=#{@access_key}"
+      result += "&channel=#{options[:channel]}" if options[:channel]
+
+      result
     end
 
     # :category: Asynchronous Methods
diff --git a/lib/predictionio/version.rb b/lib/predictionio/version.rb
index cb49861..f0d9c70 100644
--- a/lib/predictionio/version.rb
+++ b/lib/predictionio/version.rb
@@ -1,3 +1,3 @@
 module PredictionIO
-  VERSION = '0.9.6'
+  VERSION = '0.9.7'
 end
diff --git a/predictionio.gemspec b/predictionio.gemspec
index 13b651d..4a86f4e 100644
--- a/predictionio.gemspec
+++ b/predictionio.gemspec
@@ -16,7 +16,7 @@
   s.email = 'support@prediction.io'
   s.homepage = 'http://prediction.io/'
   s.platform = Gem::Platform::RUBY
-  s.required_ruby_version = '>= 1.9.3'
+  s.required_ruby_version = '>= 2.0'
   s.files = Dir[File.join('lib', '**', '**')]
   s.add_runtime_dependency 'json', '~> 1.8'
 end
diff --git a/spec/predictionio_spec.rb b/spec/predictionio_spec.rb
index d400898..91d8704 100644
--- a/spec/predictionio_spec.rb
+++ b/spec/predictionio_spec.rb
@@ -1,16 +1,66 @@
 require 'predictionio'
 require 'spec_helper'
 
-event_client = PredictionIO::EventClient.new(1, 'http://fakeapi.com:7070', 10)
-engine_client = PredictionIO::EngineClient.new('http://fakeapi.com:8000', 10)
-
 describe PredictionIO do
+  let(:access_key) { 1 }
+  let(:event_client) { PredictionIO::EventClient.new(access_key, 'http://fakeapi.com:7070', 10) }
+  let(:engine_client) { PredictionIO::EngineClient.new('http://fakeapi.com:8000', 10) }
+
   describe 'Events API' do
     it 'create_event should create an event' do
       response = event_client.create_event('register', 'user', 'foobar')
       expect(response.code).to eq('201')
     end
 
+    context 'with http stub (for channel test)' do
+      before(:each) do
+        success_response = Net::HTTPCreated.new('HTTP/1.1', '201', 'Created')
+        success_response.body = JSON.generate(eventId: 'deadbeef00')
+        expect_any_instance_of(PredictionIO::Connection).to receive(:apost).and_return(double(get: success_response))
+      end
+
+      it 'create_event should have channel option (symbol)' do
+        expect(PredictionIO::AsyncRequest).
+          to receive(:new).with("/events.json?accessKey=#{access_key}&channel=test-channel",
+                                {
+                                  "eventTime" => "2017-03-22T12:26:35+03:00", "event" => "$set",
+                                  "entityType" => "Session", "entityId" => "42"
+                                }.to_json)
+        event_client.create_event('$set', 'Session', '42',
+                                  {channel: 'test-channel', 'eventTime' => "2017-03-22T12:26:35+03:00"})
+      end
+
+      it 'create_event should process channel option (string)' do
+        expect(PredictionIO::AsyncRequest).
+          to receive(:new).with("/events.json?accessKey=#{access_key}&channel=test-channel",
+                                {
+                                  "eventTime" => "2017-03-22T12:26:35+03:00", "event" => "$set",
+                                  "entityType" => "Session", "entityId" => "42"
+                                }.to_json)
+        response = event_client.create_event('$set', 'Session', '42',
+                                             { 'channel' => 'test-channel', 'eventTime' => "2017-03-22T12:26:35+03:00" })
+        expect(response.code).to eq('201')
+      end
+
+      it 'create_event should work without channel option' do
+        expect(PredictionIO::AsyncRequest).
+          to receive(:new).with("/events.json?accessKey=#{access_key}",
+                                {
+                                  "eventTime" => "2017-03-22T12:26:35+03:00", "event" => "$set",
+                                  "entityType" => "Session", "entityId" => "42"
+                                }.to_json)
+        response = event_client.create_event('$set', 'Session', '42',
+                                             { 'eventTime' => "2017-03-22T12:26:35+03:00" })
+        expect(response.code).to eq('201')
+      end
+    end
+
+    it 'create_event should post real request with channel option' do
+      response = event_client.create_event('$set', 'Session', '42',
+                                           { 'channel' => 'test-channel', 'eventTime' => "2017-03-22T12:26:35+03:00" })
+      expect(response.code).to eq('201')
+    end
+
     it 'create_event should not raise an error' do
       response = event_client.create_event('register', 'user', 'foobar')
       expect{ response }.to_not raise_error
diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb
index dd2a85b..11ab902 100644
--- a/spec/spec_helper.rb
+++ b/spec/spec_helper.rb
@@ -8,6 +8,16 @@
 RSpec.configure do |config|
   config.before(:each) do
     # Events API
+    %w(
+      http://fakeapi.com:7070/events.json?accessKey=1&channel=test-channel
+    ).each do |url|
+      stub_request(:post, url)
+        .with(body: hash_including(event: '$set',
+                                   entityType: 'Session',
+                                   entityId: '42'))
+        .to_return(status: 201, body: JSON.generate(eventId: 'deadbeef00'))
+    end
+
     stub_request(:post, 'http://fakeapi.com:7070/events.json?accessKey=1')
       .with(body: hash_including(event: 'register',
                                  entityType: 'user',
