diff --git a/README.md b/README.md
index 3cbadd2..63df195 100644
--- a/README.md
+++ b/README.md
@@ -175,7 +175,6 @@
 
   // Create a list of official groups and launch their queries
   var getApexGroupsDfd = $.getJSON("https://api.meetup.com/pro/apacheapex/groups?callback=?&format=json&page=1000&upcoming_events_min=1&sig_id=195396513&sig=abcb7c913f581e4f2efaaaeeac60a5ad0175cce9");
-  var getIngestGroupsDfd = $.getJSON("https://api.meetup.com/pro/BigDataHadoopIngestTransform/groups?callback=?&format=json&page=1000&upcoming_events_min=1&sig_id=203734787&sig=e59b141fca93ddf432efa4b7bb5f3173cce4add6");
 
   mup_widget.with_jquery(function($, ctx) {
     var group = '',
@@ -198,11 +197,10 @@
           if (events.results.length > 0) {
 
               // Load the list of official groups to filter out non-relevant events
-              $.when(getApexGroupsDfd, getIngestGroupsDfd).done(function(apexGroupsRsp, ingestGroupsRsp){
+              $.when(getApexGroupsDfd).done(function(apexGroupsRsp){
 
-                var apexGroups = (apexGroupsRsp && apexGroupsRsp[0].data) ? apexGroupsRsp[0].data : [];
-                var ingestGroups = (ingestGroupsRsp && ingestGroupsRsp[0].data) ? ingestGroupsRsp[0].data : [];
-                var officialGroups = apexGroups.concat(ingestGroups).map(function(g) {
+                var apexGroups = (apexGroupsRsp && apexGroupsRsp.data) ? apexGroupsRsp.data : [];
+                var officialGroups = apexGroups.map(function(g) {
                   return g.urlname;
                 });
                 console.log({"Official Meetup Groups": officialGroups});
diff --git a/src/md/upcoming-meetups.md b/src/md/upcoming-meetups.md
index d1b2907..c8256a9 100644
--- a/src/md/upcoming-meetups.md
+++ b/src/md/upcoming-meetups.md
@@ -1,15 +1,15 @@
 ## Upcoming Meetups
 
-<div id="1464317047809"></div>
+<div id="1466739839082"></div>
 <script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
 <script>jQuery.noConflict();</script>
 <script>
   jQuery(function() {
-    var scripts = ["var%20%24parameters%20%3D%20%7B%22topic%22%3A%22apache-apex%22%2C%22width%22%3A%22250%22%2C%22height%22%3A%221000%22%7D%3B%0Avar%20%24queries%20%3D%20%7B%20events%3A%20function%28%29%20%7B%20return%20%22https%3A//api.meetup.com/2/open_events%3Fand_text%3DFalse%26offset%3D0%26format%3Djson%26limited_events%3DFalse%26sig%3D3b7decaeff772cd10cb65730b81a845f8533cc8b%26topic%3Dapache-apex%26callback%3D%3F%26page%3D1000%26radius%3D25.0%26sig_id%3D87819142%26desc%3DFalse%26status%3Dupcoming%26_%3D1464317046648%26user_agent%3Dmeetup.widget%3Amug_stats%22%3B%20%7D%20%7D%3B%0A","%0Avar%20getApexGroupsDfd%3D%24.getJSON%28%22https%3A//api.meetup.com/pro/apacheapex/groups%3Fcallback%3D%3F%26format%3Djson%26page%3D1000%26upcoming_events_min%3D1%26sig_id%3D195396513%26sig%3Dabcb7c913f581e4f2efaaaeeac60a5ad0175cce9%22%29%3Bvar%20getIngestGroupsDfd%3D%24.getJSON%28%22https%3A//api.meetup.com/pro/BigDataHadoopIngestTransform/groups%3Fcallback%3D%3F%26format%3Djson%26page%3D1000%26upcoming_events_min%3D1%26sig_id%3D203734787%26sig%3De59b141fca93ddf432efa4b7bb5f3173cce4add6%22%29%3Bmup_widget.with_jquery%28function%28%24%2Cctx%29%7Bvar%20group%3D%27%27%2Cmonths%3D%5B%27Jan%27%2C%27Feb%27%2C%27Mar%27%2C%27Apr%27%2C%27May%27%2C%27Jun%27%2C%27Jul%27%2C%27Aug%27%2C%27Sep%27%2C%27Oct%27%2C%27Nov%27%2C%27Dec%27%5D%2CaddLink%3Dfunction%28content%2Clink%29%7Breturn%27%3Ca%20target%3D%22_blank%22%20href%3D%22%27+link+%27%22%3E%27+content+%27%3C/a%3E%27%3B%7D%2CaddLeadingZero%3Dfunction%28num%29%7Breturn%28num%3C10%29%3F%28%270%27+num%29%3Anum%3B%7D%2CgetFormattedDate%3Dfunction%28millis%29%7Bvar%20date%3Dnew%20Date%28millis%29%3Breturn%20months%5Bdate.getMonth%28%29%5D+%27%20%27+addLeadingZero%28date.getDate%28%29%29+%27%2C%20%27+date.getFullYear%28%29.toString%28%29%3B%7D%3B%24.getJSON%28%24queries.events%28%29%2Cfunction%28events%29%7Bif%28events.status%26%26events.status.match%28/%5E200/%29%3D%3Dnull%29%7Bconsole.log%28%22Error%20loading%20Meetups%20events%3A%20%22%2Cevents.status+%22%3A%20%22+events.details%29%3B%7Delse%7Bif%28events.results.length%3E0%29%7B%24.when%28getApexGroupsDfd%2CgetIngestGroupsDfd%29.done%28function%28apexGroupsRsp%2CingestGroupsRsp%29%7Bvar%20apexGroups%3D%28apexGroupsRsp%26%26apexGroupsRsp%5B0%5D.data%29%3FapexGroupsRsp%5B0%5D.data%3A%5B%5D%3Bvar%20ingestGroups%3D%28ingestGroupsRsp%26%26ingestGroupsRsp%5B0%5D.data%29%3FingestGroupsRsp%5B0%5D.data%3A%5B%5D%3Bvar%20officialGroups%3DapexGroups.concat%28ingestGroups%29.map%28function%28g%29%7Breturn%20g.urlname%3B%7D%29%3Bconsole.log%28%7B%22Official%20Meetup%20Groups%22%3AofficialGroups%7D%29%3Bvar%20officialEvents%3Devents.results.filter%28function%28event%29%7Bif%28event.group%26%26officialGroups.indexOf%28event.group.urlname%29%3E%3D0%29%7Breturn%20true%3B%7Delse%7Bconsole.log%28%22UNOFFICIAL%20GROUP%20EVENT%20%28skipped%29%3A%20%22%2Cevent.event_url%2C%22%20group%20urlname%3A%20%22%2Cevent.group.urlname%29%3Breturn%20false%3B%7D%7D%29%3Bvar%20onlineVenues%3D%5B%27Live%20Webcast%27%2C%27Webinar%27%2C%27Webcast%27%5D%3Bvar%20venueNameSortOrder%3DonlineVenues%3BofficialEvents.sort%28function%28a%2Cb%29%7Bif%28a.time%3Eb.time%29%7Breturn%201%3B%7Dif%28a.time%3Cb.time%29%7Breturn-1%3B%7Dif%28a.time%3D%3D%3Db.time%29%7Bif%28a.venue%26%26a.venue.name%26%26b.venue%26%26b.venue.name%29%7Breturn%20venueNameSortOrder.indexOf%28a.venue.name%29-venueNameSortOrder.indexOf%28b.venue.name%29%3B%7Dreturn%200%3B%7Dreturn%200%3B%7D%29%3Bvar%20uniqueEventsByKey%3D%7B%7D%3Bfor%28var%20i%3D0%3Bi%3CofficialEvents.length%3Bi++%29%7Bvar%20event%3DofficialEvents%5Bi%5D%3Bvar%20venue%3Devent.venue%3Bvar%20city%3D%28venue%26%26venue.city%29%3Fvenue.city%3A%27TBD%27%3Bvar%20state_country%3D%28venue%29%3Fvenue.state%7C%7Cvenue.country%3A%27%27%3Bvar%20location%3D%28state_country%29%3Fcity+%22%2C%20%22+state_country.toUpperCase%28%29%3Acity%3Bif%28venue%26%26venue.name%26%26onlineVenues.indexOf%28venue.name%29%3E%3D0%29%7Blocation%3Dvenue.name%3B%7Devent.location%3Dlocation%3Bvar%20eventKey%3Devent.time%3Fevent.time%3Aevent.name%3Bif%28uniqueEventsByKey%5BeventKey%5D%29%7Bconsole.log%28%22DUPLICATE%20EVENT%20%28skipped%29%3A%20%22%2Cevent.event_url%2C%22%20matches%20previous%20event%20%22%2CuniqueEventsByKey%5BeventKey%5D.event_url%2C%22%20with%20date%3A%22%2CgetFormattedDate%28event.time%29%2C%22%20and%20name%20%22%2Cevent.name%29%3B%7Delse%7Bconsole.log%28%22VALID%20EVENT%20%28added%29%3A%20%22%2Cevent.event_url%2Cevent%29%3BuniqueEventsByKey%5BeventKey%5D%3Devent%3B%24%28%27.next-events%27%2Cctx%29.append%28%27%3Cp%3E%27+addLink%28getFormattedDate%28event.time%29+%22%20-%20%22+event.location%2Cevent.event_url%29+%22%20-%20%22+event.name+%22%3C/p%3E%22%29%3B%7D%7D%7D%29%3B%7D%7D%7D%29%3B%7D%29%3B"];
-    jQuery("#1464317047809").append(unescape("%3Clink%20rel%3D%22stylesheet%22%20type%3D%22text/css%22%20href%3D%22https%3A//a248.e.akamai.net/secure.meetupstatic.com/style/widget.css%22/%3E%0A%0A%3C/head%3E%3Cdiv%20class%3D%22next-events%22%3E%3C/div%3E"));
+    var scripts = ["var%20%24parameters%20%3D%20%7B%22topic%22%3A%22apache-apex%22%2C%22width%22%3A%22250%22%2C%22height%22%3A%221000%22%7D%3B%0Avar%20%24queries%20%3D%20%7B%20events%3A%20function%28%29%20%7B%20return%20%22https%3A//api.meetup.com/2/open_events%3Fand_text%3DFalse%26offset%3D0%26format%3Djson%26limited_events%3DFalse%26sig%3Da64bfdefbe8592779794a2b4fb67391f917ff9b8%26topic%3Dapache-apex%26callback%3D%3F%26page%3D1000%26radius%3D25.0%26sig_id%3D30167402%26desc%3DFalse%26status%3Dupcoming%26_%3D1466739837973%26user_agent%3Dmeetup.widget%3Amug_stats%22%3B%20%7D%20%7D%3B%0A","%0Avar%20getApexGroupsDfd%3D%24.getJSON%28%22https%3A//api.meetup.com/pro/apacheapex/groups%3Fcallback%3D%3F%26format%3Djson%26page%3D1000%26upcoming_events_min%3D1%26sig_id%3D195396513%26sig%3Dabcb7c913f581e4f2efaaaeeac60a5ad0175cce9%22%29%3Bmup_widget.with_jquery%28function%28%24%2Cctx%29%7Bvar%20group%3D%27%27%2Cmonths%3D%5B%27Jan%27%2C%27Feb%27%2C%27Mar%27%2C%27Apr%27%2C%27May%27%2C%27Jun%27%2C%27Jul%27%2C%27Aug%27%2C%27Sep%27%2C%27Oct%27%2C%27Nov%27%2C%27Dec%27%5D%2CaddLink%3Dfunction%28content%2Clink%29%7Breturn%27%3Ca%20target%3D%22_blank%22%20href%3D%22%27+link+%27%22%3E%27+content+%27%3C/a%3E%27%3B%7D%2CaddLeadingZero%3Dfunction%28num%29%7Breturn%28num%3C10%29%3F%28%270%27+num%29%3Anum%3B%7D%2CgetFormattedDate%3Dfunction%28millis%29%7Bvar%20date%3Dnew%20Date%28millis%29%3Breturn%20months%5Bdate.getMonth%28%29%5D+%27%20%27+addLeadingZero%28date.getDate%28%29%29+%27%2C%20%27+date.getFullYear%28%29.toString%28%29%3B%7D%3B%24.getJSON%28%24queries.events%28%29%2Cfunction%28events%29%7Bif%28events.status%26%26events.status.match%28/%5E200/%29%3D%3Dnull%29%7Bconsole.log%28%22Error%20loading%20Meetups%20events%3A%20%22%2Cevents.status+%22%3A%20%22+events.details%29%3B%7Delse%7Bif%28events.results.length%3E0%29%7B%24.when%28getApexGroupsDfd%29.done%28function%28apexGroupsRsp%29%7Bvar%20apexGroups%3D%28apexGroupsRsp%26%26apexGroupsRsp.data%29%3FapexGroupsRsp.data%3A%5B%5D%3Bvar%20officialGroups%3DapexGroups.map%28function%28g%29%7Breturn%20g.urlname%3B%7D%29%3Bconsole.log%28%7B%22Official%20Meetup%20Groups%22%3AofficialGroups%7D%29%3Bvar%20officialEvents%3Devents.results.filter%28function%28event%29%7Bif%28event.group%26%26officialGroups.indexOf%28event.group.urlname%29%3E%3D0%29%7Breturn%20true%3B%7Delse%7Bconsole.log%28%22UNOFFICIAL%20GROUP%20EVENT%20%28skipped%29%3A%20%22%2Cevent.event_url%2C%22%20group%20urlname%3A%20%22%2Cevent.group.urlname%29%3Breturn%20false%3B%7D%7D%29%3Bvar%20onlineVenues%3D%5B%27Live%20Webcast%27%2C%27Webinar%27%2C%27Webcast%27%5D%3Bvar%20venueNameSortOrder%3DonlineVenues%3BofficialEvents.sort%28function%28a%2Cb%29%7Bif%28a.time%3Eb.time%29%7Breturn%201%3B%7Dif%28a.time%3Cb.time%29%7Breturn-1%3B%7Dif%28a.time%3D%3D%3Db.time%29%7Bif%28a.venue%26%26a.venue.name%26%26b.venue%26%26b.venue.name%29%7Breturn%20venueNameSortOrder.indexOf%28a.venue.name%29-venueNameSortOrder.indexOf%28b.venue.name%29%3B%7Dreturn%200%3B%7Dreturn%200%3B%7D%29%3Bvar%20uniqueEventsByKey%3D%7B%7D%3Bfor%28var%20i%3D0%3Bi%3CofficialEvents.length%3Bi++%29%7Bvar%20event%3DofficialEvents%5Bi%5D%3Bvar%20venue%3Devent.venue%3Bvar%20city%3D%28venue%26%26venue.city%29%3Fvenue.city%3A%27TBD%27%3Bvar%20state_country%3D%28venue%29%3Fvenue.state%7C%7Cvenue.country%3A%27%27%3Bvar%20location%3D%28state_country%29%3Fcity+%22%2C%20%22+state_country.toUpperCase%28%29%3Acity%3Bif%28venue%26%26venue.name%26%26onlineVenues.indexOf%28venue.name%29%3E%3D0%29%7Blocation%3Dvenue.name%3B%7Devent.location%3Dlocation%3Bvar%20eventKey%3Devent.time%3Fevent.time%3Aevent.name%3Bif%28uniqueEventsByKey%5BeventKey%5D%29%7Bconsole.log%28%22DUPLICATE%20EVENT%20%28skipped%29%3A%20%22%2Cevent.event_url%2C%22%20matches%20previous%20event%20%22%2CuniqueEventsByKey%5BeventKey%5D.event_url%2C%22%20with%20date%3A%22%2CgetFormattedDate%28event.time%29%2C%22%20and%20name%20%22%2Cevent.name%29%3B%7Delse%7Bconsole.log%28%22VALID%20EVENT%20%28added%29%3A%20%22%2Cevent.event_url%2Cevent%29%3BuniqueEventsByKey%5BeventKey%5D%3Devent%3B%24%28%27.next-events%27%2Cctx%29.append%28%27%3Cp%3E%27+addLink%28getFormattedDate%28event.time%29+%22%20-%20%22+event.location%2Cevent.event_url%29+%22%20-%20%22+event.name+%22%3C/p%3E%22%29%3B%7D%7D%7D%29%3B%7D%7D%7D%29%3B%7D%29%3B"];
+    jQuery("#1466739839082").append(unescape("%3Clink%20rel%3D%22stylesheet%22%20type%3D%22text/css%22%20href%3D%22https%3A//a248.e.akamai.net/secure.meetupstatic.com/style/widget.css%22/%3E%0A%0A%3C/head%3E%3Cdiv%20class%3D%22next-events%22%3E%3C/div%3E"));
     var mup_widget = {
       with_jquery: function(block) {
-        block(jQuery, document.getElementById("1464317047809"));
+        block(jQuery, document.getElementById("1466739839082"));
       }
     };
     for (i in scripts) { eval(unescape(scripts[i])) }
