Articles in this section
Category / Section

How to get the recurrence properties from RRule in the Flutter Calendar

In the Flutter Event Calendar, you can retrieve recurrence rule properties using the parseRRule method.

Inside the state initialize the default values for calendar.

String _recurrenceRule = 'FREQ=WEEKLY;INTERVAL=1;BYDAY=MO,WE;UNTIL=20210810';
DateTime _startTime = DateTime.now();

use the onPressed callback of the RaisedButton to show the alert dialog and get the recurrence properties of the recurrence rule.

child: Column(
  children: [
    Center(
      child: new RaisedButton(
        onPressed: _showDialog,
        child: new Text("Get recurrence rule"),
      ),
    ),
    Expanded(
        child: SfCalendar(
          view: CalendarView.month,
          dataSource: _getCalendarDataSource(),
        ))
  ],
),
 
_AppointmentDataSource _getCalendarDataSource() {
  List<Appointment> appointments = <Appointment>[];
  appointments.add(Appointment(
      startTime: _startTime,
      endTime: _startTime.add(Duration(hours: 1)),
      subject: 'Meeting',
      color: Colors.blue,
      recurrenceRule: _recurrenceRule));
 
  return _AppointmentDataSource(appointments);
}

In this alert dialog, retrieve the recurrence properties by using the parseRRule method of the calendar and displathy the recurrence properties in alert window.

_showDialog() async {
  RecurrenceProperties _recurrenceProperties =
  SfCalendar.parseRRule(_recurrenceRule, _startTime);
 
  await showDialog(
    context: context,
    // ignore: deprecated_member_use
 
     builder: (BuildContext context) {return AlertDialog(
       contentPadding: const EdgeInsets.all(16.0),
       content: Column(
         crossAxisAlignment: CrossAxisAlignment.start,
         children: [
           Text(
             'Type:' + _recurrenceProperties.recurrenceType.toString(),
           ),
           Text(
             'Count:' + _recurrenceProperties.recurrenceCount.toString(),
           ),
           Text(
             'StartDate:' + _recurrenceProperties.startDate.toString(),
           ),
           Text(
             'EndDate:' + _recurrenceProperties.endDate.toString(),
           ),
           Text(
             'Interval: ' + _recurrenceProperties.interval.toString(),
           ),
           Text(
             'Range:' + _recurrenceProperties.recurrenceRange.toString(),
           ),
           Text(
             'WeekDays:' + _recurrenceProperties.weekDays.toString(),
           ),
           Text(
             'Week:' + _recurrenceProperties.week.toString(),
           ),
           Text(
             'DayOfMonth:' + _recurrenceProperties.dayOfMonth.toString(),
           ),
           Text(
             'DayOfWeek:' + _recurrenceProperties.dayOfWeek.toString(),
           ),
           Text(
             'Month:' + _recurrenceProperties.month.toString(),
           ),
         ],
       ),
       actions: <Widget>[
         new FlatButton(
             child: const Text('CANCEL'),
             onPressed: () {
               Navigator.pop(context);
             }),
         new FlatButton(
             child: const Text('OK'),
             onPressed: () {
               Navigator.pop(context);
             })
       ],
     );},
  );
}

View the GitHub sample here

recurrence properties

 

Did you find this information helpful?
Yes
No
Help us improve this page
Please provide feedback or comments
Comments (0)
Access denied
Access denied