How to search iMessages by date on a Mac, 3 ways.
You know it was the week of the move, or Christmas 2021, but not the words. Messages has no date search, so here are the ways to get to a date anyway, from a free workaround to a search that understands plain dates.
Quick answer
Messages on the Mac has no date filter and no way to jump to a date. You can search for a word linked to that day and scroll from there, list every message in a date range with Terminal for free, or type a date such as during:march 2023 in Textlore.
| Way | Best for | Catch |
|---|---|---|
| Workarounds in Messages | Dates tied to an event or a word | Guesswork, then scrolling. |
| Terminal | Every message in a date range, free | Technical. Some text comes out blank. |
| Textlore | Plain dates combined with words and people | Paid app after a 14-day free trial. |
1. Get to a date in Messages with a word
Messages can't filter by date, but you can often reach a date through a word you know was used then.
- Pick something tied to the date: happy birthday, merry christmas, a flight number, a restaurant, a place you went, or the name of a new job.
- Click the search field at the top of the Messages sidebar, type the word and press Return.
- Click through the results until you find one from the right time. The conversation opens at that message.
- Scroll up or down to read the messages around it. Messages shows the date between groups of messages as you go.
Where it falls short
- You need a word. If nothing distinctive was said that day, there's nothing to search for.
- No range. You can't ask for everything from March 2023, or everything before you moved.
- Scrolling is slow. Messages loads older texts in batches, so moving a few months takes time.
2. List every message in a date range, free
Messages stores the date of every message in its database, chat.db. With the sqlite3 tool built into macOS you can list everything in a date range.
- Open System Settings > Privacy & Security > Full Disk Access and switch on Terminal.
- In Terminal, paste this to work on a copy of the database:
mkdir -p ~/Desktop/messages-copy && cp ~/Library/Messages/chat.db* ~/Desktop/messages-copy/
- Paste this, changing the 2 dates. The first is the start, and the second is the day after the end. This example lists March 2023:
sqlite3 ~/Desktop/messages-copy/chat.db "SELECT datetime(m.date/1000000000 + 978307200, 'unixepoch', 'localtime'), h.id, m.text FROM message m LEFT JOIN handle h ON h.ROWID = m.handle_id WHERE m.date >= (strftime('%s', '2023-03-01') - 978307200) * 1000000000 AND m.date < (strftime('%s', '2023-04-01') - 978307200) * 1000000000 ORDER BY m.date;"
- Each line shows the date and time, the phone number or email, and the text. Delete the copy on your desktop when you're done.
The range is worked out in UTC, so messages close to midnight can land a day either side. On recent versions of macOS, some messages keep their text in a coded column, so they show up blank here.
Prefer readable pages? Use imessage-exporter
The free command-line tool imessage-exporter has start and end date options. After installing it (for example with brew install imessage-exporter), this exports March 2023 as web pages with photos, one per conversation:
imessage-exporter -f html -c basic -s 2023-03-01 -e 2023-04-01 -o ~/Desktop/march-2023
3. Search with plain dates in Textlore
Textlore is a Mac app that searches your whole Messages history as you type, and it understands dates written the way you'd say them. It only reads: it never sends, edits or deletes a message, and nothing leaves your Mac.
- Install it. Download Textlore, open it and switch on Full Disk Access when it asks. macOS keeps your Messages history in a protected folder, and this lets Textlore read it. About 100,000 messages import in under a minute.
- Type a date. Press ⌘F and use
before:,after:orduring:.before:2023,after:march 2021andduring:summer 2024all work, and so do plain dates such as last week or christmas 2022. - Add words and people. Combine a date with anything else:
from:Jordan during:may 2022,cabin after:2023orhas:photo during:diwali 2024.


- Jump to a date in a chat. Open a conversation and press ⌘J to go straight to a date without scrolling.
- Export the range. Need those messages as a file? Export a date range of any conversation as PDF, HTML, plain text, Markdown or CSV.
See Searching in Help for every search word.
Questions
Can you search iMessages by date on a Mac?
Not in Messages. It has no date filter and no way to jump to a date. Search for a word from that day and scroll, list a date range in Terminal, or use a date search in an app such as Textlore.
Can I search iMessages by date on my iPhone?
Messages on iPhone has no date search either. With Messages in iCloud on, your iPhone texts are on your Mac, so the Mac methods on this page cover them too.
How do I see the exact time a message was sent?
On a Mac, Messages shows times between groups of messages. On an iPhone, swipe left in a conversation to show the time of each message.
Can I export messages from a date range?
Yes. imessage-exporter takes a start and end date for free, and Textlore exports a date range to PDF, HTML, text, Markdown or CSV. The PDF guide covers the steps.
Does searching by date change anything?
No. All 3 ways only read your messages. Textlore never sends, edits or deletes a message.
Any day in your texts, in one search.
Download Textlore and search your messages by date. Free for 14 days.