Flutter Calendar Animation

Flutter Calendar Animation

Table Calendar

Pub Package Awesome Flutter

Highly customizable, feature-packed Flutter Calendar with gestures, animations and multiple formats.

Flutter Calendar Animation Flutter Calendar Animation
Table Calendar with custom styles Table Calendar with Builders


  • Extensive, yet easy to use API
  • Custom Builders for truly flexible UI
  • Complete programmatic control with CalendarController
  • Dynamic events
  • Interface for holidays
  • Locale support
  • Vertical autosizing
  • Beautiful animations
  • Gesture handling
  • Multiple Calendar formats
  • Multiple days of the week formats
  • Specifying available date range
  • Nice, configurable UI out of the box


Make sure to check out example project.
For additional info please refer to API docs.


Add to pubspec.yaml:

  table_calendar: ^2.2.3

Then import it to your project:

import 'package:table_calendar/table_calendar.dart';

And finally create the TableCalendar with a CalendarController:

void initState() {
  _calendarController = CalendarController();

void dispose() {

Widget build(BuildContext context) {
  return TableCalendar(
    calendarController: _calendarController,


Table Calendar supports locales. To display the Calendar in desired language, use locale property.
If you don’t specify it, a default locale will be used.


Before you can use a locale, you need to initialize the i18n formatting.

This is independent of Table Calendar package, so I encourage you to do your own research.

A simple way of doing it is as follows:

  • First of all, add intl package to your pubspec.yaml file
  • Then make modifications to your main():
import 'package:intl/date_symbol_data_local.dart';

void main() {
  initializeDateFormatting().then((_) => runApp(MyApp()));

After those two steps your app should be ready to use Table Calendar with different languages.

Specifying a language

To specify a language, simply pass it as a String code to locale property.

For example, this will make Table Calendar use Polish language:

  locale: 'pl_PL',
Flutter Calendar Animation Flutter Calendar Animation Flutter Calendar Animation Flutter Calendar Animation
'en_US' 'pl_PL' 'fr_FR' 'zh_CN'

Note, that if you want to change the language of FormatButton‘s text, you have to do this yourself. Use availableCalendarFormats property and pass the translated Strings there.
Use i18n method of your choice.

You can also hide the button altogether by setting formatButtonVisible to false.


Table Calendar provides a simple interface for displaying holidays. Here are a few steps to follow:

  • Fetch a map of holidays tied to dates. You can search for it manually, or perhaps use some online API
  • Convert it to a proper format – note that these are lists of holidays, since one date could have a couple of holidays:
    `DateTime A`: [`Holiday A1`, `Holiday A2`, ...],
    `DateTime B`: [`Holiday B1`, `Holiday B2`, ...],
  • Link it to Table Calendar. Use holidays property

And that’s your basic setup! Now you can add some styling:

  • By using CalendarStyle properties: holidayStyle and outsideHolidayStyle
  • By using CalendarBuilders for complete UI control over calendar cell

You can also add custom holiday markers thanks to improved marker API. Check out example project for more details.

markersBuilder: (context, date, events, holidays) {
  final children = <Widget>[];

  if (events.isNotEmpty) {
        right: 1,
        bottom: 1,
        child: _buildEventsMarker(date, events),

  if (holidays.isNotEmpty) {
        right: -2,
        top: -2,
        child: _buildHolidaysMarker(),

  return children;

Source Code

Please Visit Flutter Calendar Animation Source Code at GitHub