I am currently using a view filter to "snooze" email -- which means the email is hidden from view when a followup flag is placed on it until the flag is set for followup on "today." This is the basic view filter setup in the advanced tab of view filter in Outlook:
I often have email I want to hide until it is actionable later in the day. Ideally, I would be able to use a nice UI (eg Gmail) such as this one:
I have attempted to leverage the view-hide method to manage this by categorizing emails, running a rule to hide the email when categorized, then removing the categorization at a particular time, but I couldn't find a nice way to 1-run a rule on categorization that already exists (1- is outline in the comments), and 2-run a rule on the whole folder at a particular time (2-is now outlined below).
The other approach I tried was to move emails to a particular folder (ie, snooze until 2 PM, snooze until 4 pm, etc) and then have them move back to inbox at a particular time via a rule or a script. Unfortunately, the rule would run but only on incoming emails -- it didn't automatically process the emails that were already in the folder. I attempted adapting a few scripts, but I was unsuccessful enough that I won't include them here.
Suggestions on a better approach or fleshing out the approaches I tried?
UPDATE
The only thing I need to finish this project is VBA code that runs on a schedule, and possibly syntax to run a rule correctly. eg, if the rule is Snoozetill3, then how does one run Snoozetill3.execute()
correctly (that doesn't work)?
This code, per this SO post, will move all the Files from folder TODO to folder Test:
Sub MoveItems()
Dim myNameSpace As Outlook.NameSpace
Dim myInbox As Outlook.Folder
Dim myDestFolder As Outlook.Folder
Dim myItems As Outlook.Items
Dim myItem As Object
Set myNameSpace = Application.GetNamespace("MAPI")
Set myInbox = myNameSpace.GetDefaultFolder(olFolderInbox)
Set myItems = myInbox.Items
Set myDestFolder = myInbox.Folders("test")
Set myItems = myInbox.Folders("TODO").Items
'Debug.Print myItems.Count
For i = myItems.Count To 1 Step -1 'Iterates from the end backwards
myItems.Item(i).Move myDestFolder
Next
End Sub