You should make use of the other Sitecore item events. For your case, you will need to add a handler on the below events:
Note that you can check
web.config if you are still on Sitecore v6.x to v7.2 and
Sitecore.config for Sitecore v8.x to see the different events that are available.
The same code you applied on the item save event can be applied on the above event. All you need to do is to use the same handler as the one you used for the save event.
You can also directly publish the item when the user updates / creates or rename an item. Please see below code.
public class PublishingOnSaved
public void OnSavedItem(object sender, EventArgs args)
var currentItem = Event.ExtractParameter(args, 0) as Item;
if (currentItem == null)
var targetDatabase = Factory.GetDatabase("your target database name");
// The publishOptions determine the source and target database,
// the publish mode and language, and the publish date
Sitecore.Publishing.PublishOptions publishOptions = new Sitecore.Publishing.PublishOptions
// Create a publisher with the publishoptions
Sitecore.Publishing.Publisher publisher = new Sitecore.Publishing.Publisher(publishOptions);
// Choose where to publish from
publisher.Options.RootItem = currentItem;
// Publish children as well?
publisher.Options.Deep = true;
// Do the publish!
Then you need to bind this piece of code to the event.
<handler type="YourNamespaceWithClass, YourAssembly" method="OnSavedItem">