How to group and sort emails by month in Outlook?
By default, Outlook organizes emails in the Inbox according to the received date, typically sorted in chronological order. However, many users wish to analyze or manage emails on a monthly basis, such as reviewing correspondence trends, tracking activity, or auditing messages for a particular month. Unfortunately, Outlook does not provide a built-in command to directly sort or group all emails by the received month. In this article, you’ll find a practical solution to overcome this limitation by creating a custom field and using VBA code to categorize your messages by month, making monthly analysis much more efficient.
Grouping or sorting emails by month is especially useful when you need to check project activity, prepare monthly reports, or simply organize your mailbox in a more manageable way. It is equally applicable for both professional and personal mailbox management or when archiving emails for different periods.
Group or sort emails by month in Outlook by using VBA code
Alternative solution: If you prefer not to use VBA, you can use Outlook’s search function to find emails for a specific month or use custom filters to view monthly correspondence. See details in the alternative solutions section.
Group or sort emails by month in Outlook by using VBA code
This solution enables you to create a new column called 'Month' in your mail folder view. You then use VBA code to automatically populate the 'Month' column with the received month of every email. Once completed, you can easily sort or group your emails by this column. This method is ideal if you process large volumes of emails or need regular monthly summaries, saving time compared to manually filtering each message.
First, open the folder where you want to organize emails by month. Then, locate and click on the View Settings button, found on the View tab in Outlook 2010 and later versions. This opens the settings that allow you to customize how your emails are displayed.

Note: For Outlook 2007 users, navigate through View > Current View > Customize current view to reach the necessary settings.
When the Advanced View Settings/Customize View dialog opens, click the Columns button (sometimes labeled as Fields), which allows you to adjust and add columns to your current message view.

Within the Show Column/Fields dialog, select New Column (or New Field) to open the field creation window. Type Month into the Name field, and ensure both the Type and Format boxes are set to Text. Click OK to confirm. Assigning the type as Text is crucial because the upcoming macro writes the month name in text format (such as "Jan", "Feb", etc.).

After adding the new column, return to the Show Columns/Fields dialog. Select the Month entry in the Show these columns in this order list and use the Move Up button to place it directly below Received. Ordering columns in this way ensures that the received date and month appear together for easier comparison. Finally, click OK to save changes.

When you exit the dialog with OK, your folder view will now include the new Month column.
To apply the VBA macro to all emails in this folder, you need to select every message. Click any email within the folder and press Ctrl + A to highlight them all at once. Selecting all emails ensures the macro will process each item in the folder.
Note: If the Reading Pane is enabled, it’s recommended to turn it off for better performance. Go to View > Reading Pane > Off. This avoids display and selection issues while processing a large batch of emails.
Proceed to open the VBA editor by pressing Alt + F11 simultaneously. In the Microsoft Visual Basic for Applications window, click Insert > Module to create a new module for your code.
Copy and paste the following VBA macro into the newly created module. This code automatically reads the received date of each selected email, extracts the month, and writes it into the custom 'Month' field.
VBA: Sort or group emails by month
Sub ListSelectionMonth()
Dim aObj As Object
Dim oProp As Outlook.UserProperty
Dim sMonth
On Error Resume Next
For Each aObj In Application.ActiveExplorer.Selection
Set oMail = aObj
sMonth = Month(oMail.ReceivedTime)
Set oProp = oMail.UserProperties.Add("Month", olText, True)
oProp.Value = sMonth
oMail.Save
Err.Clear
Next
End Sub Once the code is in place, press F5 inside the VBA editor to run the macro. Ensure all relevant emails are selected before executing. If you see any prompt or permissions dialog, confirm to proceed.
After running the macro, you will see that the 'Month' column in your folder is filled for each email, showing the month in which each item was received. To sort emails by month, simply click the Month column header. Sorting by this column will arrange the emails by the month they were received. This feature is practical for reviewing correspondence trends or preparing archival reports.

If you want to group all emails by month instead of just sorting, right-click the header of the Month column and select Group By This Field from the context menu. This action will separate your emails into expandable groups for each month, improving the visibility of monthly correspondence volumes.

Troubleshooting and tips: If you do not see the 'Month' column populated correctly, check that you used the exact field name and type as instructed. Remember, this macro only processes emails that are selected, so ensure nothing is filtered out unintentionally. Occasionally, large folders with thousands of emails might take longer to process; if Outlook becomes unresponsive, wait for completion or process emails in smaller batches.
Be cautious when running VBA macros, as Outlook’s security settings may require you to enable macros or adjust permissions. Always back up important data before running scripts that modify item properties. Additionally, re-running the macro after receiving new emails will update the 'Month' values for those new items.
Advantages and limitations: This approach is flexible and works with any Outlook folder, but it may require familiarization with the VBA editor for proper execution. The grouping ability enables quick monthly analysis without external tools. However, using VBA means changes are local to your Outlook profile and won’t automatically sync to other devices or users unless implemented separately.
Practical tip: After sorting or grouping by month, you can further filter, categorize, or export emails for each period. For recurring use, save the macro so you can update the 'Month' field on new emails as needed.
AI Mail Assistant in Outlook: Smarter Replies, Clearer Communication (one-click magic!)
Streamline your daily Outlook tasks with the AI Mail Assistant from Kutools for Outlook. This powerful tool learns from your past emails to offer intelligent and accurate responses, optimize your email content, and help you draft and refine messages effortlessly.

This feature supports:
- Smart Replies: Get responses crafted from your past conversations—tailored, precise, and ready to go.
- Enhanced Content: Automatically refine your email text for clarity and impact.
- Effortless Composition: Just provide keywords, and let AI handle the rest, with multiple writing styles.
- Intelligent Extensions: Expand your thoughts with context-aware suggestions.
- Summarization: Get concise overviews of long emails instantly.
- Global Reach: Translate your emails into any language with ease.
This feature supports:
- Smart email replies
- Optimized content
- Keyword-based drafts
- Intelligent content extension
- Email summarization
- Multi-language translation
Don’t wait—download AI Mail Assistant now and enjoy!
Alternative solution: Filter or search emails by received month
If you wish to avoid using VBA macros or prefer a built-in method, Outlook’s search and filter functions allow you to display emails from a specific month:
- Go to the search bar at the top of your mail folder.
- Type received: January 2024 (or adjust the month and year as required). Outlook will list emails received in that period.
- For more advanced filters, you can use the Search Tools > Search by Date commands, or add a filter in the View Settings to display messages within a specific date range (such as between January 1st and January 31st).
Another alternative is to use Outlook’s Conditional Formatting to emphasize emails received in a specific month visually, making them easier to review at a glance. To do this, go to View > View Settings > Conditional Formatting and add a rule based on the received date.
Best Office Productivity Tools
Experience the all-new Kutools for Outlook with 100+ incredible features! Click to download now!
📧 Email Automation: Auto Reply (Available for POP and IMAP) / Schedule Send Emails / Auto CC/BCC by Rules When Sending Email / Auto Forward (Advanced Rules) / Auto Add Greeting / Automatically Split Multi-Recipient Emails into Individual Messages ...
📨 Email Management: Recall Emails / Block Scam Emails by Subjects and Others / Delete Duplicate Emails / Advanced Search / Consolidate Folders ...
📁 Attachments Pro: Batch Save / Batch Detach / Batch Compress / Auto Save / Auto Detach / Auto Compress ...
🌟 Interface Magic: 😊More Pretty and Cool Emojis / Remind you when important emails come / Minimize Outlook Instead of Closing ...
👍 One-click Wonders: Reply All with Attachments / Anti-Phishing Emails / 🕘Show Sender's Time Zone ...
👩🏼🤝👩🏻 Contacts & Calendar: Batch Add Contacts From Selected Emails / Split a Contact Group to Individual Groups / Remove Birthday Reminders ...
Use Kutools in your preferred language – supports English, Spanish, German, French, Chinese, and 40+ others!


🚀 One-Click Download — Get All Office Add-ins
Strongly Recommended: Kutools for Office (5-in-1)
One click to download five installers at once — Kutools for Excel, Outlook, Word, PowerPoint and Office Tab Pro. Click to download now!
- ✅ One-click convenience: Download all five setup packages in a single action.
- 🚀 Ready for any Office task: Install the add-ins you need, when you need them.
- 🧰 Included: Kutools for Excel / Kutools for Outlook / Kutools for Word / Office Tab Pro / Kutools for PowerPoint