diff --git a/languages/en_us/Vtiger.php b/languages/en_us/Vtiger.php
index b93df6ce8be8a4de9ee36c93ca9c84760a280e53..a2940edfe56bd8662dd212145fd6f97fcb6d6a71 100644
--- a/languages/en_us/Vtiger.php
+++ b/languages/en_us/Vtiger.php
@@ -1390,6 +1390,7 @@ $languageStrings = array(
 	'LBL_DEFAULT_DASHBOARD_TOOLTIP'=>'Make this dashboard as default by reordering it as the first tab!',
 	'LBL_RELATED_MODULES_PERMISSION_DENIED' => 'Related modules permission is denied',
 	'LBL_RECORD_PERMISSION_DENIED' => 'Record permissions denied',
+	'LBL_MASS_SELECT' => 'Mass Select',
 );
 
 $jsLanguageStrings = array(
diff --git a/layouts/v7/modules/Calendar/CalendarSharedUsers.tpl b/layouts/v7/modules/Calendar/CalendarSharedUsers.tpl
index daf591d71b5e41f5d4445320cf87b0ee7c5e7ccd..928a360eb6c10f7203c20adce283f41dda379bb6 100644
--- a/layouts/v7/modules/Calendar/CalendarSharedUsers.tpl
+++ b/layouts/v7/modules/Calendar/CalendarSharedUsers.tpl
@@ -14,6 +14,12 @@
 <div class="sidebar-widget-contents" name='calendarViewTypes'>
 	<div id="calendarview-feeds">
 		<ul class="list-group feedslist">
+			<li class="activitytype-indicator calendar-feed-indicator mass-edit-option" style="background-color:#2c3b49; color:#FFFFFF;">
+				<span>{vtranslate('LBL_MASS_SELECT')}</span>
+				<span class="activitytype-actions pull-right">
+					<input class="mass-select" type="checkbox">
+				</span>
+			</li>
 			<li class="activitytype-indicator calendar-feed-indicator" style="background-color: {$SHAREDUSERS_INFO[$CURRENT_USER_ID]['color']};">
 				<span>
 					{vtranslate('LBL_MINE',$MODULE)}
diff --git a/layouts/v7/modules/Calendar/CalendarViewTypes.tpl b/layouts/v7/modules/Calendar/CalendarViewTypes.tpl
index c381ed82564e7d0dc5cfd59e95be27f2f6f48348..04948d11102d191a2dad3a23a42366166fcc7281 100644
--- a/layouts/v7/modules/Calendar/CalendarViewTypes.tpl
+++ b/layouts/v7/modules/Calendar/CalendarViewTypes.tpl
@@ -11,6 +11,12 @@
 <div class="sidebar-widget-contents" name='calendarViewTypes'>
 	<div id="calendarview-feeds">
 		<ul class="list-group feedslist">
+			<li class="activitytype-indicator calendar-feed-indicator mass-edit-option" style="background-color:#2c3b49; color:#FFFFFF;">
+				<span>{vtranslate('LBL_MASS_SELECT')}</span>
+				<span class="activitytype-actions pull-right">
+					<input class="mass-select" type="checkbox">
+				</span>
+			</li>
 		{foreach item=VIEWINFO from=$VIEWTYPES['visible'] name=calendarview}
 			<li class="activitytype-indicator calendar-feed-indicator container-fluid" style="background-color: {$VIEWINFO['color']};">
 				<span>
@@ -51,4 +57,4 @@
 		</ul>
 	</div>
 </div>
-{/strip}
\ No newline at end of file
+{/strip}
diff --git a/layouts/v7/modules/Calendar/resources/Calendar.js b/layouts/v7/modules/Calendar/resources/Calendar.js
index e3926669f34b55c477b6773e68d6d8dad34ffa34..f96694335c6b001a81c38b49548e57f38f13394f 100644
--- a/layouts/v7/modules/Calendar/resources/Calendar.js
+++ b/layouts/v7/modules/Calendar/resources/Calendar.js
@@ -911,8 +911,30 @@ Vtiger.Class("Calendar_Calendar_Js", {
 					thisInstance.registerFeedChangeEvent();
 					thisInstance.registerFeedsColorEditEvent();
 					thisInstance.registerFeedDeleteEvent();
+					thisInstance.registerFeedMassSelectEvent();
 				});
 	},
+
+	/**
+	 * Event listener for change on mass select checkbox.
+	 * Click/set true/false on all non-matching checkboxes & 
+	 * trigger change event. Contributed by Libertus Solutions
+	**/
+	registerFeedMassSelectEvent : function() {
+		var container = jQuery('#calendarview-feeds');
+		var calendarFeeds = jQuery('ul.feedslist input.toggleCalendarFeed', container);
+		jQuery('input.mass-select', container).on('change', function() {
+			var massSelectchecked = this.checked;
+			calendarFeeds.each(function(i) {
+				// Only trigger change where necessary
+				if(this.checked != massSelectchecked) {
+					this.checked = massSelectchecked;
+					jQuery(this).change();
+				}
+			});
+		});
+	},
+
 	changeWidgetDisplayState: function (widget, state) {
 		var key = widget.data('widgetName') + '_WIDGET_DISPLAY_STATE';
 		app.storage.set(key, state);