Notion Formula: Unix Timestamp to a Human Date
When you import data from platforms like Stripe, Shopify, or any modern API, date fields often arrive as a Unix timestamp - the number of seconds since January 1, 1970. Notion renders that integer as a plain number, which isn't helpful when you need to monitor payment dates, subscription renewals, or task deadlines.
Why APIs are using Unix timestamps?
Most APIs expose dates as seconds since the Unix epoch because it is compact, timezone-agnostic, and easy for code to calculate. When you sync it into Notion, the raw number lands in a text or number property. Without converting it, you can't filter by month, use date rollups, or display it in a timeline.
The good news: Notion's formula engine understands timestamps. As long as you multiply seconds by
1000
to convert them to milliseconds, Notion can turn the value into a Date object you can use
anywhere in your workspace.
Step-by-step: Build the conversion formula
-
Confirm your source property. In this example the timestamp sits in
status_transitions.paid_at.value
, the field Stripe returns for the moment an invoice was paid. If your property is named differently, note the exact name. - Add a new Formula property. Click + Add property in your database, choose Formula, and name it something like Paid Date.
- Paste the formula below. The property renders an actual Notion date you can display in calendar, timeline, or board views.
fromTimestamp(multiply(toNumber(status_transitions.paid_at.value),1000))

Let's break that down:
toNumber()
converts the stored text value into a numeric timestamp.multiply(..., 1000)
converts seconds into milliseconds. Notion expects milliseconds.fromTimestamp()
transforms the millisecond value into a Notion Date object.
Where this fits in your Notion workflow
If you use Note API Connector to sync API data into Notion, you will see Unix timestamps everywhere - finance platforms, help desks, time trackers, and CRMs all rely on them. Dropping this conversion formula into your master database means every view, rollup, and automation inherits a human-readable date without extra cleanup.
Once you have the date property in place you can filter for records paid this week, schedule reminders, or feed the value into a summary dashboard that surfaces aging invoices and upcoming renewals.
Frequently Asked Questions
Create a new Formula property inside the database that holds your timestamp. Paste the expression there and Notion will convert the number on every row automatically.
Most APIs return timestamps in seconds, but Notion's fromTimestamp
expects milliseconds. Multiplying by 1000
bridges that gap. If your API already returns milliseconds, remove the multiply step.
Yes. Wrap the conversion with formatDate()
and choose any Moment.js-style pattern such as "MMM DD, YYYY"
or "YYYY-MM-DD HH:mm"
.
Absolutely. Swap status_transitions.paid_at.value
with the property that holds your Unix timestamp -- perhaps last_synced
, closed_at
, or renewal_at
. The rest of the formula stays the same.