Live Chat Icon For mobile
Live Chat Icon
Popular Categories.NET  (143).NET Core  (23)Angular  (39)ASP.NET  (47)ASP.NET Core  (53)ASP.NET MVC  (83)Azure  (27)Blazor  (49)DocIO  (18)Essential JS 2  (64)Essential Studio  (159)Flutter  (53)JavaScript  (134)Microsoft  (96)PDF  (48)React  (29)Succinctly series  (118)Syncfusion  (400)TypeScript  (30)Uno Platform  (2)UWP  (4)Vue  (25)Webinar  (14)Windows Forms  (52)WPF  (92)Xamarin  (105)XlsIO  (20)Other CategoriesBarcode  (4)BI  (29)Bold BI  (3)Build conference  (6)Business intelligence  (53)Button  (4)C#  (100)Chart  (40)Cloud  (8)Company  (445)Dashboard  (4)Data Science  (3)Data Validation  (2)DataGrid  (31)Development  (234)Doc  (7)eBook  (89)Enterprise  (22)Entity Framework  (5)Essential Tools  (14)Excel  (14)Extensions  (7)File Manager  (3)Gantt  (6)Gauge  (4)Git  (3)Grid  (24)HTML  (8)Installer  (1)Knockout  (2)LINQPad  (1)Linux  (1)M-Commerce  (1)Metro Studio  (11)Mobile  (140)Mobile MVC  (9)OLAP server  (1)Orubase  (12)Partners  (20)PDF viewer  (15)Performance  (2)PHP  (1)PivotGrid  (4)Predictive Analytics  (6)Report Server  (3)Reporting  (10)Reporting / Back Office  (11)Rich Text Editor  (5)Road Map  (9)Scheduler  (15)SfDataGrid  (7)Silverlight  (21)Sneak Peek  (12)Solution Services  (2)Spreadsheet  (2)SQL  (4)Stock Chart  (1)Surface  (4)Tablets  (5)Theme  (9)Tips and Tricks  (17)UI  (62)Uncategorized  (68)Unix  (2)User interface  (49)Visual State Manager  (1)Visual Studio  (12)Visual Studio Code  (7)Web  (99)What's new  (62)Windows 8  (19)Windows App  (1)Windows Phone  (15)Windows Phone 7  (9)WinRT  (26)
Share on twitter
Share on facebook
Share on linkedin
How to Load Appointments On Demand Using Web Services in Flutter Event Calendar

How to Load Appointments On Demand Using Web Services in Flutter Event Calendar

When developing Flutter applications, the most prevalent requirement is the ability to access data from web services. The Syncfusion Flutter Calendar control provides all the common scheduling functionalities that allow users to load appointments on demand from web services as custom appointments.

In this blog post, we are going to discuss loading appointments on demand via web services in the Flutter Calendar. If you are new to the Calendar control, please read this Getting Started article before proceeding.

Let’s get started!

Load appointments on demand using web services

We are going to load and display custom meeting appointments on demand for June 2017.

Step #1: Create a web API service

Web services are server-side applications that are meant to serve data or logic to various client-side applications. REST and SOAP are the widely used industry-standard web service architectures.

Refer to this tutorial to create an ASP.NET Core web API service and host it for public access. For this demo, we are going to use this hosted service.

Step #2: Create a class

Create a class named Meeting with a data structure similar to the web API service, containing the appointment’s subject, time, and other related information.

Refer to the following code example.

class Meeting {
  Meeting(
      {this.eventName,
      this.from,
      this.to,
      this.background,
      this.allDay = false});

  String eventName;
  DateTime from;
  DateTime to;
  Color background;
  bool allDay;
}

Step #3: Fetch data from the web service

To fetch the data from ejservices using the http.get() method:

  1. Create an asynchronous method getDataFromWeb and consume the API service URI (Uniform Resource Identifier).
  2. Use the decode method to retrieve the web appointment data as JSON.
  3. Use the await option to consume the value.
  4. Modify the received JSON data into a list of appointments.

Refer to the following code example.

Future<List<Meeting>> getDataFromWeb() async {
  var data = await http.get(
      "https://js.syncfusion.com/demos/ejservices/api/Schedule/LoadData");
  var jsonData = json.decode(data.body);

  final List<Meeting> appointmentData = [];
  final Random random = new Random();
  for (var data in jsonData) {
    Meeting meetingData = Meeting(
        eventName: data['Subject'],
        from: _convertDateFromString(
          data['StartTime'],
        ),
        to: _convertDateFromString(data['EndTime']),
        background: _colorCollection[random.nextInt(9)],
        allDay: data['AllDay']);
    appointmentData.add(meetingData);
  }
  return appointmentData;
}

DateTime _convertDateFromString(String date) {
  return DateTime.parse(date);
}

void _initializeEventColor() {
  this._colorCollection = new List<Color>();
  _colorCollection.add(const Color(0xFF0F8644));
  _colorCollection.add(const Color(0xFF8B1FA9));
  _colorCollection.add(const Color(0xFFD20100));
  _colorCollection.add(const Color(0xFFFC571D));
  _colorCollection.add(const Color(0xFF36B37B));
  _colorCollection.add(const Color(0xFF01A1EF));
  _colorCollection.add(const Color(0xFF3D4FB5));
  _colorCollection.add(const Color(0xFFE47C73));
  _colorCollection.add(const Color(0xFF636363));
  _colorCollection.add(const Color(0xFF0A8043));
}

Step #4: Display the data

Use the FutureBuilder widget to display the web appointment data on screen. It is easy to work with asynchronous data sources with the FutureBuilder widget.

Refer to the following code example.

FutureBuilder(
  future: getDataFromWeb(),
  builder: (BuildContext context, AsyncSnapshot snapshot) {
    if (snapshot.data != null) {
      return SafeArea(
        child: Container(
            child: SfCalendar(
          view: CalendarView.week,
          initialDisplayDate: DateTime(2017, 6, 01, 9, 0, 0),
          dataSource: MeetingDataSource(snapshot.data),
        )),
      );
    } else {
      return Container(
        child: Center(
          child: Text('$_networkStatusMsg'),
        ),
      );
    }
  },
),

Now, the Flutter Calendar control is configured to load appointments on demand via a web API service.

Running the sample produced by the previous steps will render the Flutter Calendar with appointments like the one in the following screenshot.

Flutter Calendar Loaded with Appointments via Web API Service
Flutter Calendar Loaded with Appointments
via Web API Service


Additional reference

The following blog post covers the same topic but for the Syncfusion Xamarin.Forms Scheduler component: https://www.syncfusion.com/blogs/post/how-to-load-appointments-on-demand-via-web-services-in-xamarin-forms-scheduler.aspx

Conclusion

In this blog post, we’ve discussed loading appointments on demand via web services in the Flutter Calendar control. With this, we can load appointments in our calendar only when we need them, along with some custom features. You can also check out our project samples in this GitHub repository. Feel free to try out this sample and share your feedback or questions in the comments section below.

You can also contact us through our support forumsDirect-Trac, or feedback portal. We are here to help you succeed!

Tags:

Share this post:

Share on twitter
Share on facebook
Share on linkedin

Leave a comment

Popular Now

Be the first to get updates

Subscribe RSS feed
Scroll To Top