If you know a little javascript, Weather Cal and the Scriptable app are pretty impressive. While this is technically a "weather" widget, I have it configured to show minimal weather (maybe 25% of the widget space), with the remaining used for calendar events and reminders. It's pretty configurable, and here are some (old) screenshots that give you an idea of what it can do: https://old.reddit.com/r/iOSsetups/comments/j6au3e/which_custom_widget_is_the_best/
Note: weather-cal uses the openweather API, and you have to register for an openweather key. Unfortunately, it can take openweather a few hours to activate the key, and so you'll get widget/scriptable errors until that happens.