This functionality is commonly built in to the microcontroller itself. MSP430s, STM32s ATMegas, and many others have real time clock and gpio wakeup functionality, which effectively lets you power off almost the entire die until either a time period passes or a gpio changes state. Commonly you can do similar for more complex peripherals as well, eg power off the core until you receive a UART message, but typically this is not a full power down like RTC sleep as it requires some peripheral clocks to stay running.