Slide up panel and future builder items

Hi,
I have a slide-up panel on my front page that loads some data from json, but we are finding it can take anywhere from 10 seconds to 8 mins to load the data, any reason for this as accessing data from other parts of the app work ok.

  _slidingUpMenu(),
        ],
        ),
      );
  }

Widget _slidingUpMenu(){
    BorderRadiusGeometry radius = BorderRadius.only(
    topLeft: Radius.circular(24.0),
    topRight: Radius.circular(24.0),
  );
return SlidingUpPanel(
     panelBuilder: (ScrollController sc) => _scrollingList(sc),
   renderPanelSheet: false,
      panel: _floatingPanel(),
      collapsed: _floatingCollapsed(),
      borderRadius: radius,
    );
}
Widget _scrollingList(ScrollController sc){
  return ListView.builder(
    controller: sc,
    itemCount: 50,
    itemBuilder: (BuildContext context, int i){
      return Container(
        padding: const EdgeInsets.all(12.0),
        child: Text("$i"),
      );
    },
  );
}
Widget _floatingCollapsed(){
  return Container(
    decoration: BoxDecoration(
      color: Colors.blueGrey,
      borderRadius: BorderRadius.only(topLeft: Radius.circular(24.0), topRight: Radius.circular(24.0)),
    ),
    margin: const EdgeInsets.fromLTRB(24.0, 44.0, 24.0, 0.0),
    child: Center(
      child: Text(
        "Upcoming Events",
        style: TextStyle(color: Colors.white),
      ),
    ),
  );
}

Widget _floatingPanel(){
  return Container(
    decoration: BoxDecoration(
      color: Colors.white,
      borderRadius: BorderRadius.all(Radius.circular(24.0)),
      boxShadow: [
        BoxShadow(
          blurRadius: 20.0,
          color: Colors.grey,
        ),
      ]
    ),
    margin: const EdgeInsets.fromLTRB(24.0, 44.0, 24.0, 0.0),
    child:Column(children: <Widget>[
   Padding(
          padding: EdgeInsets.fromLTRB(10.0, 30.0, 10.0, 10.0),
      child: Text("Here is the upcoming events for the next 7 days."),
    ),
_loadEvents(),
    ],
    ),
  );
}
_loadEvents(){
return FutureBuilder(
            future: getUpcomingEvents(),
            builder:(BuildContext context, AsyncSnapshot event){
    if (event.data ==null){
      return Container(child: Center(child: Text("Nothing to show at the moment...."),
      ),
      );
    }else{
          return Expanded(child: ListView.builder(
      controller: _scrollController,
      scrollDirection: Axis.vertical,
      itemCount: event.data.length,
      itemBuilder: (BuildContext context, int index){
       return 
         Container(
           
           margin: EdgeInsets.fromLTRB(10.0, 5.0, 10.0, 5.0),
           decoration: BoxDecoration(
    borderRadius: BorderRadius.circular(20),
   // color: Colors.white,
    boxShadow: [
      BoxShadow(color: setColor(event.data[index].priority),),
    ],
  ),
   //   color: Colors.blue[100],
      child: 
          ListTile(
            leading: Icon(
                      Icons.calendar_view_day,
                      color: Colors.white,   
                    ),
                    isThreeLine: true,
                     title: Text(event.data[index].eventdatetime + ' \n'+ event.data[index].title, style: TextStyle(fontWeight: FontWeight.w600)),
         subtitle: Column
         (children: <Widget>[
           Align(alignment: Alignment.topLeft,
           child:
           Text(event.data[index].description),
           ),
         ],),),
            
           );
      },
          ),
          );
            }
            }
);
}


Future<List<UpcomingEvents>>getUpcomingEvents() async {
  final  _baseURL = GlobalConfiguration().getString("BaseURL");
String url = _baseURL +'/myapi.php';
//Send Request
Map<String, dynamic> body = 
{
'uid':userid,
'authtoken':authtoken
};
List<UpcomingEvents> events = [];

  await http.post(url, body: body).then((http.Response response) {

    if (response.body =='{"message":"Something went wrong, please contact IT Support. error code:2"}'){
      return throw Exception('Error');
    }else{
        //Send Data to post to format.
       var jsonData = json.decode(response.body);
       for (var ev in jsonData){
         UpcomingEvents event = UpcomingEvents(
          eventid:ev['id']?? '',
           title: ev['title']??'',
           eventdate: ev['eventdate']??'',
           eventtime: ev['eventtime']??'',
           eventdatetime: ev['eventdatetime']??'',
           description: ev['description']??'',
           priority: ev['priority']??'',
           colour: ev['color']??'300FF00',
           
           );
         events.add(event);
       }    
    }           
});
 return events;
}