diff --git a/docs/source/conf.py b/docs/source/conf.py
index 74590b52..f551294e 100644
--- a/docs/source/conf.py
+++ b/docs/source/conf.py
@@ -276,7 +276,6 @@ autodoc_mock_imports = ['googlesamples.assistant.grpc.audio_helpers',
                         'gi',
                         'gi.repository',
                         'twilio',
-                        'pytz',
                         'Adafruit_Python_DHT',
                         'RPi.GPIO',
                         'RPLCD',
diff --git a/platypush/backend/github/__init__.py b/platypush/backend/github/__init__.py
index f4a2e8fe..ad49b73d 100644
--- a/platypush/backend/github/__init__.py
+++ b/platypush/backend/github/__init__.py
@@ -4,7 +4,6 @@ import threading
 
 from typing import Optional, List
 
-import pytz
 import requests
 from sqlalchemy import create_engine, Column, String, DateTime
 from sqlalchemy.ext.declarative import declarative_base
@@ -129,7 +128,7 @@ class GithubBackend(Backend):
     def _get_last_event_time(self, uri: str):
         with self.db_lock:
             record = self._get_or_create_resource(uri=uri, session=Session())
-            return record.last_updated_at.replace(tzinfo=pytz.UTC) if record.last_updated_at else None
+            return record.last_updated_at.replace(tzinfo=datetime.timezone.utc) if record.last_updated_at else None
 
     def _update_last_event_time(self, uri: str, last_updated_at: datetime.datetime):
         with self.db_lock:
diff --git a/platypush/plugins/calendar/ical/__init__.py b/platypush/plugins/calendar/ical/__init__.py
index fdebdf70..c8e8c7cd 100644
--- a/platypush/plugins/calendar/ical/__init__.py
+++ b/platypush/plugins/calendar/ical/__init__.py
@@ -3,9 +3,8 @@
 """
 
 import datetime
-import dateutil.parser
 import requests
-from typing import Union, Optional
+from typing import Optional
 
 from platypush.plugins import Plugin, action
 from platypush.plugins.calendar import CalendarInterface
@@ -30,16 +29,22 @@ class CalendarIcalPlugin(Plugin, CalendarInterface):
         self.url = url
 
     @staticmethod
-    def _convert_timestamp(event, attribute: str) -> datetime.datetime:
-        import pytz
+    def _convert_timestamp(event, attribute: str) -> Optional[str]:
         t = event.get(attribute)
         if not t:
             return
 
+        if type(t.dt) == datetime.date:
+            return (
+                datetime.datetime(
+                    t.dt.year, t.dt.month, t.dt.day, tzinfo=datetime.timezone.utc
+                ).isoformat()
+            )
+
         return (
-            dateutil.parser.isoparse(t.dt.isoformat())
-            .replace(tzinfo=pytz.timezone('UTC'))
-        ).isoformat()
+                datetime.datetime.utcfromtimestamp(t.dt.timestamp())
+                .replace(tzinfo=datetime.timezone.utc).isoformat()
+        )
 
     @classmethod
     def _translate_event(cls, event):
@@ -77,7 +82,6 @@ class CalendarIcalPlugin(Plugin, CalendarInterface):
         :func:`~platypush.plugins.calendar.CalendarPlugin.get_upcoming_events`.
         """
 
-        import pytz
         from icalendar import Calendar
 
         events = []
@@ -95,7 +99,7 @@ class CalendarIcalPlugin(Plugin, CalendarInterface):
             if (
                     event['status'] != 'cancelled'
                     and event['end'].get('dateTime')
-                    and event['end']['dateTime'] >= datetime.datetime.now(pytz.timezone('UTC')).isoformat()
+                    and event['end']['dateTime'] >= datetime.datetime.utcnow().replace(tzinfo=datetime.timezone.utc).isoformat()
                     and (
                     (only_participating
                      and event.get('responseStatus') in [None, 'accepted', 'tentative'])
diff --git a/setup.py b/setup.py
index f0f31715..fbfc2c9a 100755
--- a/setup.py
+++ b/setup.py
@@ -230,8 +230,6 @@ setup(
         'dbus': ['dbus-python'],
         # Support for Twilio integration
         'twilio': ['twilio'],
-        # Support for Github integration
-        'github': ['pytz'],
         # Support for DHT11/DHT22/AM2302 temperature/humidity sensors
         'dht': ['Adafruit_Python_DHT @ git+https://github.com/adafruit/Adafruit_Python_DHT'],
         # Support for LCD display integration