Shashank Thigale

Framer CMS date filters: why past events still show

You add an events list to a Framer site, filter it by date, publish, and a week later last week's event is still at the top. Here is how Framer's date filters really compare dates, and the filters that keep a list current.

By Shashank Thigale, a Framer developer in Pune, India. Published November 9, 2026.

Why the list goes stale

A Collection List filter like "Date is after" needs a date to compare with. In Framer's filter settings you pick that date yourself, on the canvas, so it stays the same until you change it and publish again. The list doesn't know what today is. That's why an "upcoming events" list keeps showing events that ended weeks ago.

The usual workarounds are manual: delete or hide past items, flip a "Past" switch on each one, or republish with a new date every week. They work until someone forgets.

How Framer compares dates

I tested this on the canvas while building CMS Date Gate. Three details decide what a date filter shows:

  • "is after" and "is before" compare exact moments, down to the minute. An event on today's date at 7:00 PM is still "after now" at 6:59 PM.
  • "is between" compares whole calendar days and includes both ends. "Date is between Today and Today" matches anything on today's date, whatever the time.
  • CMS dates are stored as the time you typed, written as if it were UTC. An event you enter for 7:00 PM is saved as 7:00 PM UTC, not 7:00 PM in your city. Compared with the real current time, it can be off by your time zone's difference from UTC, so an event can drop off the list a few hours early or late.

Filter recipes that stay current

Each recipe needs a live date to compare with: a Date variable on the component that holds your list, kept up to date by a small code component. These are the filters and visibility conditions I use:

  • Upcoming events: Date is after Yesterday. Today's events stay on the list all day.
  • Events that stay until they end: End Date is after Now.
  • Offers that run on their own dates: Start Date is before Now, and End Date is after Now.
  • A Today badge: a visibility condition, Date is between Today and Today.
  • A Happening now badge: Date is before Now, on an item whose End Date is still after Now.
  • A New badge on posts: Date is after Recent, where Recent is a few days ago.

Three things to set before you publish

  • A time zone. Without one, each visitor's own clock decides what is past. For a venue or a clinic, use the venue's time zone, so everyone sees the same schedule.
  • Sensible default dates. Framer publishes the page as plain HTML first, so for a moment the list uses your Date variables' default values. Set them close to the day you publish.
  • Midnight defaults for dates without a time. A Date variable that doesn't show the time should default to midnight (00:00), so whole-day comparisons line up with the calendar day.

The short version

Framer's filters are good; they just need a date that moves. CMS Date Gate passes Now, Today, Yesterday, Tomorrow, Soon and Recent into your list's component, with a venue time zone, and Framer's own filters and visibility conditions do the rest. Your list and its design stay yours, with no API or plugin.

If you'd rather have someone build the whole site, I take on Framer projects too.