diff --git a/apps/files/lib/AppInfo/Application.php b/apps/files/lib/AppInfo/Application.php
index 7042af10ca2f992f23a98c3fc14c99162cf812fd..e55d1c549a5a970e31fd228f77dab13d291c42e4 100644
--- a/apps/files/lib/AppInfo/Application.php
+++ b/apps/files/lib/AppInfo/Application.php
@@ -81,13 +81,14 @@ class Application extends App {
 		$container->registerService('Tagger', function(IContainer $c)  {
 			return $c->query('ServerContainer')->getTagManager()->load('files');
 		});
-		$container->registerService('TagService', function(IContainer $c)  {
+		$container->registerService('TagService', function(IContainer $c) use ($server) {
 			$homeFolder = $c->query('ServerContainer')->getUserFolder();
 			return new TagService(
 				$c->query('ServerContainer')->getUserSession(),
 				$c->query('ServerContainer')->getActivityManager(),
 				$c->query('Tagger'),
-				$homeFolder
+				$homeFolder,
+				$server->getEventDispatcher()
 			);
 		});
 
diff --git a/apps/files/lib/Service/TagService.php b/apps/files/lib/Service/TagService.php
index d812b16c30e9bc9fb35248f84e8f858e5c1e594b..7437f0c31ad706fa1e797f4a75d86a2acd2a4c20 100644
--- a/apps/files/lib/Service/TagService.php
+++ b/apps/files/lib/Service/TagService.php
@@ -31,6 +31,8 @@ use OCP\Files\Folder;
 use OCP\ITags;
 use OCP\IUser;
 use OCP\IUserSession;
+use Symfony\Component\EventDispatcher\EventDispatcherInterface;
+use Symfony\Component\EventDispatcher\GenericEvent;
 
 /**
  * Service class to manage tags on files.
@@ -45,23 +47,28 @@ class TagService {
 	private $tagger;
 	/** @var Folder */
 	private $homeFolder;
+	/** @var EventDispatcherInterface */
+	private $dispatcher;
 
 	/**
 	 * @param IUserSession $userSession
 	 * @param IManager $activityManager
 	 * @param ITags $tagger
 	 * @param Folder $homeFolder
+	 * @param EventDispatcherInterface $dispatcher
 	 */
 	public function __construct(
 		IUserSession $userSession,
 		IManager $activityManager,
 		ITags $tagger,
-		Folder $homeFolder
+		Folder $homeFolder,
+		EventDispatcherInterface $dispatcher
 	) {
 		$this->userSession = $userSession;
 		$this->activityManager = $activityManager;
 		$this->tagger = $tagger;
 		$this->homeFolder = $homeFolder;
+		$this->dispatcher = $dispatcher;
 	}
 
 	/**
@@ -114,6 +121,13 @@ class TagService {
 			return;
 		}
 
+		$eventName = $addToFavorite ? 'addFavorite' : 'removeFavorite';
+		$this->dispatcher->dispatch(self::class . '::' . $eventName, new GenericEvent(null, [
+			'userId' => $user->getUID(),
+			'fileId' => $fileId,
+			'path' => $path,
+		]));
+
 		$event = $this->activityManager->generateEvent();
 		try {
 			$event->setApp('files')
diff --git a/apps/files/tests/Service/TagServiceTest.php b/apps/files/tests/Service/TagServiceTest.php
index 1c4ac2328ec9c70717a2807cdec93c313e9af3b7..4e2aeb842463adda8cfa7c92f9afcba06efe7296 100644
--- a/apps/files/tests/Service/TagServiceTest.php
+++ b/apps/files/tests/Service/TagServiceTest.php
@@ -28,6 +28,7 @@ use OC\Tags;
 use OCA\Files\Service\TagService;
 use OCP\Activity\IManager;
 use OCP\IUserSession;
+use Symfony\Component\EventDispatcher\EventDispatcherInterface;
 
 /**
  * Class TagServiceTest
@@ -54,6 +55,9 @@ class TagServiceTest extends \Test\TestCase {
 	 */
 	private $root;
 
+	/** @var EventDispatcherInterface|\PHPUnit_Framework_MockObject_MockObject */
+	private $dispatcher;
+
 	/**
 	 * @var \OCA\Files\Service\TagService|\PHPUnit_Framework_MockObject_MockObject
 	 */
@@ -66,7 +70,7 @@ class TagServiceTest extends \Test\TestCase {
 
 	protected function setUp() {
 		parent::setUp();
-		$this->user = $this->getUniqueID('user');
+		$this->user = static::getUniqueID('user');
 		$this->activityManager = $this->createMock(IManager::class);
 		\OC::$server->getUserManager()->createUser($this->user, 'test');
 		\OC_User::setUserId($this->user);
@@ -83,6 +87,7 @@ class TagServiceTest extends \Test\TestCase {
 			->will($this->returnValue($user));
 
 		$this->root = \OC::$server->getUserFolder();
+		$this->dispatcher = $this->createMock(EventDispatcherInterface::class);
 
 		$this->tagger = \OC::$server->getTagManager()->load('files');
 		$this->tagService = $this->getTagService(['addActivity']);
@@ -99,6 +104,7 @@ class TagServiceTest extends \Test\TestCase {
 				$this->activityManager,
 				$this->tagger,
 				$this->root,
+				$this->dispatcher,
 			])
 			->setMethods($methods)
 			->getMock();