Not sure if this is what you are looking for but we wrote a class that gets called by task agent. The class itself simply looks for the specified index and rebuilds it.
Sitecore.Search.SearchManager.GetIndex("custom_index").Rebuild()
You could also call it in publishing pipeline if you like to rebuild your custom indexes on publish event.