Programmability is very limited. It has three heat settings. High, Low, and Warm. You can set it on High or Low for up to 20 hours, after which it drops to Warm which is just for holding but not for cooking. I expected to be able to set it to High for a time, then to Low for a time, then to Warm. But it is not that versatile: if you want To go from High to Low you must do it manually.