GTasks has a good widget. You can set the app to display calendar events. Then, set widget to display "all", which will show tasks and upcoming calendar events sorted by date. After that, all un-dated tasks will be listed.
I tend to use GTI for tasks because I prefer the app, but it won't display calendar events like Gtasks. However, it DOES come with an extra (kind of odd) option to "Sync with Calendar". This actually doesn't sync your real task data, or bring calendar information into the app. This option creates an all-day calendar event for any task which you assign a date to. It's nice, because then these dated task events will show up in any calendar widget or app.
But there is something awkward about this "Sync to Calendar" option ? if you use the google calendar website to also display tasks, you will end up with duplicated dated tasks (google calendar can natively display your tasks on the calendar, and on top of this, GTI creates the second all-day event).