# Recycle bin events

You can subscribe for events that are raised every time an item is send to the *Recycle bin*, restored or permanently deleted. For more information about the Sitefinity CMS event system see [Event system: EventHub](https://www.progress.com/documentation/sitefinity-cms/for-developers-eventhub-events).

The following code demonstrates how to subscribe for *Recycle bin*-related data events. Thus, you get the item each time it is moved to, restored, or permanently deleted from the *Recycle bin*:

```C#
using System;
using Telerik.Sitefinity.Abstractions;
using Telerik.Sitefinity.Data.Events;
using Telerik.Sitefinity.RecycleBin;
using Telerik.Sitefinity.Services;

namespace SitefinityWebApp
{
   public class Global : System.Web.HttpApplication
   {
       protected void Application_Start(object sender, EventArgs e)
       {
           Bootstrapper.Bootstrapped += Bootstrapper_Bootstrapped;
       }

       private void Bootstrapper_Bootstrapped(object sender, EventArgs e)
       {
           EventHub.Subscribe<IRecyclableDataEvent>(evt => IRecyclableDataEventHandler(evt));
       }

       public void IRecyclableDataEventHandler(IRecyclableDataEvent e)
       {
           IRecycleBinManager recycleBinItemsManager = RecycleBinManagerFactory.GetManager();

           if (e.RecycleBinAction == RecycleBinAction.MoveToRecycleBin)
           {
               // Item was moved to the Recycle Bin 
               var getItem = recycleBinItemsManager.GetItem(e.ItemType, e.ItemId);
           }
           if (e.RecycleBinAction == RecycleBinAction.RestoreFromRecycleBin)
           {
               // Item was restored from the Recycle Bin
               var getItem = recycleBinItemsManager.GetItem(e.ItemType, e.ItemId);
           }
           if (e.RecycleBinAction == RecycleBinAction.PermanentDelete)
           {
               // Item was permanently deleted 
               var getItem = recycleBinItemsManager.GetItem(e.ItemType, e.ItemId);
           }
       }
   }
}
```
