diff --git a/_src/events.pug b/_src/events.pug
index ab6c015..95d7bcd 100644
--- a/_src/events.pug
+++ b/_src/events.pug
@@ -51,7 +51,7 @@
 
     section.event-featured.container 
         p.capstext Featured Event
-        a(href="https://ignite-summit.org/schedule/", target="_blank").event-featured__banner.pt-5
+        a(href="https://ignite-summit.org/", target="_blank").event-featured__banner.pt-5
             picture
                 source(srcset="/images/promos/ignite-Summit-cloud-edition--After-banner-375px.jpg" media="(max-width: 767px)")
                 img(src="/images/promos/ignite-Summit-cloud-edition--After-banner.jpg", alt="Ignite Summit watch on demand")
@@ -187,47 +187,43 @@
 
     section.eventupcoming.container#upcoming 
         .capstext.pb-1 Upcoming Events Schedule
-        //.eventupcoming__wrap.py-4
-            h2.h4.eventupcoming__head.pb-5 Online events (2)
+        .eventupcoming__wrap.py-4
+            h2.h4.eventupcoming__head.pb-5 Online events (1)
             article.eventcomingitem.flexi 
                 .eventcomingitem__left
-                    p.eventcomingitem__num 9
-                    p.eventcomingitem__month November 
-                    p.eventcomingitem__year.pt-3 2021
+                    p.eventcomingitem__num 16
+                    p.eventcomingitem__month February
+                    p.eventcomingitem__year.pt-3 2022
                 .eventcomingitem__main
-                    p.eventcomingitem__title.h5 Apache Ignite 2.11: Improvements and .NET Upgrades, Apache Ignite 3 Alpha 3: The Journey Continues
-                    p.eventcomingitem__descr.pt-1 A quick overview of Apache Ignite 2.11. This release resolved a number of issues, problems with the internal architecture and technical bugs. Plus we will discuss Apache Ignite 2.11 updates related to .NET. Just now, the Apache Ignite community released the latest version of Ignite 3—Alpha 3! Val Kulichenko, the Ignite 3.0 Release manager, will demonstrate the updates and the latest API changes.
-                    a.eventcomingitem__more(href="https://www.meetup.com/Apache-Ignite-Virtual-Meetup/events/281596817", target="_blank") Learn more details
+                    p.eventcomingitem__title.h5 Apache Ignite Community Gathering: Ignite 3 Alpha 4
+                    p.eventcomingitem__descr.pt-1 During this community gathering, we will discuss the latest Ignite releases:
+                    ul
+                        li Apache Ignite 2.12 overview
+                        li Apache Ignite 3 Alpha 4: The Next Milestone
+                        li Transactions API in Apache Ignite 3
+                    p.eventcomingitem__descr.pt-1 Maxim Timonin, Apache Ignite Committer and Software Engineer at SberTech will present a brief overview of the Apache Ignite 2.12 release.
+                    p.eventcomingitem__descr.pt-1 Apache Ignite 3 Alpha 4: The Next Milestone
+                    p.eventcomingitem__descr.pt-1 Apache Ignite 3 is the next generation of the Apache Ignite platform. Ignite 3 modernizes and improves Ignite’s usability while retaining its power and flexibility. The Alpha 4 build is the latest release of the Ignite 3 project. Val Kulichenko, Apache Ignite PMC member and the Ignite 3.0 Release manager, will present the Ignite 3 Alpha 4 overview, including new features Object Mappings for Table Views and DDL.
+                    p.eventcomingitem__descr.pt-1 Transactions API in Ignite 3
+                    p.eventcomingitem__descr.pt-1 Alexey Scherbakov, Apache Ignite Committer, and architect at GridGain will show Ignite 3 just released in Alpha 4 build transactional API. We will take a glance over:
+                    p.eventcomingitem__descr.pt-1 Transactions API in Ignite 3
+                    ul
+                        li a transaction lifecycle
+                        li how to manage transactions
+                        li examples of synchronous and asynchronous transactions
+                    a.eventcomingitem__more(href="https://www.meetup.com/Apache-Ignite-Virtual-Meetup/events/283606359", target="_blank") Learn more details
                 .eventcomingitem__right
                     .eventcomingitem__mic
                         .eventcomingitem__speaker.
-                            Maxim Muzafarov<br>
-                            Pavel Tupitsyn<br>
-                            Val Kulichenko
+                            Maxim Timonin<br>
+                            Val Kulichenko<br>
+                            Alexey Scherbakov
                     .eventcomingitem__loc
                         .eventcomingitem__locblock
                             img(src="/img/events/content/meetup.svg", alt="")
                         .eventcomingitem__camera Online event
             // /.eventcomingitem
 
-            article.eventcomingitem.flexi 
-                .eventcomingitem__left
-                    p.eventcomingitem__num 15-16
-                    p.eventcomingitem__month November
-                    p.eventcomingitem__year.pt-3 2021
-                .eventcomingitem__main
-                    p.eventcomingitem__title.h5 Ignite Summit: Cloud Edition
-                    p.eventcomingitem__descr.pt-1 On November 15 and 16, 2021a free virtual event—Ignite Summit: Cloud Edition will be held. The conference is for architects and developers who use or are interested in using Apache Ignite in the cloud. On November 15, 2021, free training sessions for EMEA and the Americas will be offered. On November 16, 2021, Ignite experts will share architectural insights and practical tips for solving challenges in cloud environments.
-                    a.eventcomingitem__more(href="https://ignite-summit.org/", target="_blank") Learn more details
-                .eventcomingitem__right
-                    .eventcomingitem__mic
-                        .eventcomingitem__speaker Cloud Edition
-                    .eventcomingitem__loc
-                        .eventcomingitem__locblock
-                            img(src="/img/events/content/summit.svg", alt="")
-                        .eventcomingitem__camera Online event
-            // /.eventcomingitem
-
         .eventupcoming__wrap.py-4
             h2.h4.pb-4 Offline events (1)
             //article.eventcomingitem.flexi 
diff --git a/events.html b/events.html
index c53b34d..75bd40d 100644
--- a/events.html
+++ b/events.html
@@ -384,7 +384,7 @@
     <!-- /.cmtynavblock-->
     <section class="event-featured container">
       <p class="capstext">Featured Event</p>
-      <a class="event-featured__banner pt-5" href="https://ignite-summit.org/schedule/" target="_blank"
+      <a class="event-featured__banner pt-5" href="https://ignite-summit.org/" target="_blank"
         ><picture
           ><source srcset="/images/promos/ignite-Summit-cloud-edition--After-banner-375px.jpg" media="(max-width: 767px)" />
           <img src="/images/promos/ignite-Summit-cloud-edition--After-banner.jpg" alt="Ignite Summit watch on demand" /></picture
@@ -514,46 +514,54 @@
     <!-- /.eventyoucity-->
     <section class="eventupcoming container" id="upcoming">
       <div class="capstext pb-1">Upcoming Events Schedule</div>
-      <!--.eventupcoming__wrap.py-4h2.h4.eventupcoming__head.pb-5 Online events (2)
-article.eventcomingitem.flexi 
-    .eventcomingitem__left
-        p.eventcomingitem__num 9
-        p.eventcomingitem__month November 
-        p.eventcomingitem__year.pt-3 2021
-    .eventcomingitem__main
-        p.eventcomingitem__title.h5 Apache Ignite 2.11: Improvements and .NET Upgrades, Apache Ignite 3 Alpha 3: The Journey Continues
-        p.eventcomingitem__descr.pt-1 A quick overview of Apache Ignite 2.11. This release resolved a number of issues, problems with the internal architecture and technical bugs. Plus we will discuss Apache Ignite 2.11 updates related to .NET. Just now, the Apache Ignite community released the latest version of Ignite 3—Alpha 3! Val Kulichenko, the Ignite 3.0 Release manager, will demonstrate the updates and the latest API changes.
-        a.eventcomingitem__more(href="https://www.meetup.com/Apache-Ignite-Virtual-Meetup/events/281596817", target="_blank") Learn more details
-    .eventcomingitem__right
-        .eventcomingitem__mic
-            .eventcomingitem__speaker.
-                Maxim Muzafarov<br>
-                Pavel Tupitsyn<br>
-                Val Kulichenko
-        .eventcomingitem__loc
-            .eventcomingitem__locblock
-                img(src="/img/events/content/meetup.svg", alt="")
-            .eventcomingitem__camera Online event
-// /.eventcomingitem
-
-article.eventcomingitem.flexi 
-    .eventcomingitem__left
-        p.eventcomingitem__num 15-16
-        p.eventcomingitem__month November
-        p.eventcomingitem__year.pt-3 2021
-    .eventcomingitem__main
-        p.eventcomingitem__title.h5 Ignite Summit: Cloud Edition
-        p.eventcomingitem__descr.pt-1 On November 15 and 16, 2021a free virtual event—Ignite Summit: Cloud Edition will be held. The conference is for architects and developers who use or are interested in using Apache Ignite in the cloud. On November 15, 2021, free training sessions for EMEA and the Americas will be offered. On November 16, 2021, Ignite experts will share architectural insights and practical tips for solving challenges in cloud environments.
-        a.eventcomingitem__more(href="https://ignite-summit.org/", target="_blank") Learn more details
-    .eventcomingitem__right
-        .eventcomingitem__mic
-            .eventcomingitem__speaker Cloud Edition
-        .eventcomingitem__loc
-            .eventcomingitem__locblock
-                img(src="/img/events/content/summit.svg", alt="")
-            .eventcomingitem__camera Online event
-// /.eventcomingitem
--->
+      <div class="eventupcoming__wrap py-4">
+        <h2 class="h4 eventupcoming__head pb-5">Online events (1)</h2>
+        <article class="eventcomingitem flexi">
+          <div class="eventcomingitem__left">
+            <p class="eventcomingitem__num">16</p>
+            <p class="eventcomingitem__month">February</p>
+            <p class="eventcomingitem__year pt-3">2022</p>
+          </div>
+          <div class="eventcomingitem__main">
+            <p class="eventcomingitem__title h5">Apache Ignite Community Gathering: Ignite 3 Alpha 4</p>
+            <p class="eventcomingitem__descr pt-1">During this community gathering, we will discuss the latest Ignite releases:</p>
+            <ul>
+              <li>Apache Ignite 2.12 overview</li>
+              <li>Apache Ignite 3 Alpha 4: The Next Milestone</li>
+              <li>Transactions API in Apache Ignite 3</li>
+            </ul>
+            <p class="eventcomingitem__descr pt-1">Maxim Timonin, Apache Ignite Committer and Software Engineer at SberTech will present a brief overview of the Apache Ignite 2.12 release.</p>
+            <p class="eventcomingitem__descr pt-1">Apache Ignite 3 Alpha 4: The Next Milestone</p>
+            <p class="eventcomingitem__descr pt-1">
+              Apache Ignite 3 is the next generation of the Apache Ignite platform. Ignite 3 modernizes and improves Ignite’s usability while retaining its power and flexibility. The Alpha 4 build is the latest release of the Ignite 3
+              project. Val Kulichenko, Apache Ignite PMC member and the Ignite 3.0 Release manager, will present the Ignite 3 Alpha 4 overview, including new features Object Mappings for Table Views and DDL.
+            </p>
+            <p class="eventcomingitem__descr pt-1">Transactions API in Ignite 3</p>
+            <p class="eventcomingitem__descr pt-1">Alexey Scherbakov, Apache Ignite Committer, and architect at GridGain will show Ignite 3 just released in Alpha 4 build transactional API. We will take a glance over:</p>
+            <p class="eventcomingitem__descr pt-1">Transactions API in Ignite 3</p>
+            <ul>
+              <li>a transaction lifecycle</li>
+              <li>how to manage transactions</li>
+              <li>examples of synchronous and asynchronous transactions</li>
+            </ul>
+            <a class="eventcomingitem__more" href="https://www.meetup.com/Apache-Ignite-Virtual-Meetup/events/283606359" target="_blank">Learn more details</a>
+          </div>
+          <div class="eventcomingitem__right">
+            <div class="eventcomingitem__mic">
+              <div class="eventcomingitem__speaker">
+                Maxim Timonin<br />
+                Val Kulichenko<br />
+                Alexey Scherbakov
+              </div>
+            </div>
+            <div class="eventcomingitem__loc">
+              <div class="eventcomingitem__locblock"><img src="/img/events/content/meetup.svg" alt="" /></div>
+              <div class="eventcomingitem__camera">Online event</div>
+            </div>
+          </div>
+        </article>
+        <!-- /.eventcomingitem-->
+      </div>
       <div class="eventupcoming__wrap py-4">
         <h2 class="h4 pb-4">Offline events (1)</h2>
         <!--article.eventcomingitem.flexi .eventcomingitem__left
