You can create a PowerCLI script to do all these things.
The script will need to be run in the Windows Scheduler on either the vCenter or any other server that has access to the vCenter.
I'm no PowerCLI guru, but this should probably get you started in the right direction. All done with some PowerCLI googling.
Connect-VIServer 10.20.30.40 -Credential user -Password password
$task = Get-VM VMName | Shutdown-VMGuest
Wait-Task -Task $task
Get-VM VMName | Set-VM -MemoryGB 8
Get-VM VMName | Start-VM -VM VMName
Save as a .ps1 script/file.
You can also take that script snippet and post another question in the PowerCLI Board: https://communities.vmware.com/community/vmtn/automationtools/powercli
Hope this helps:
regards,
Larus.