diff --git a/datacenterlight/cms_models.py b/datacenterlight/cms_models.py
index e1703aaa..8c31696f 100644
--- a/datacenterlight/cms_models.py
+++ b/datacenterlight/cms_models.py
@@ -2,6 +2,8 @@ from cms.extensions import PageExtension
 from cms.extensions.extension_pool import extension_pool
 from cms.models.fields import PlaceholderField
 from cms.models.pluginmodel import CMSPlugin
+from django import forms
+from django.contrib.postgres.fields import ArrayField
 from django.contrib.sites.models import Site
 from django.db import models
 from django.utils.safestring import mark_safe
@@ -292,6 +294,34 @@ class DCLSectionPromoPluginModel(CMSPlugin):
         return extra_classes
 
 
+class MultipleChoiceArrayField(ArrayField):
+    """
+    A field that allows us to store an array of choices.
+    Uses Django's Postgres ArrayField
+    and a MultipleChoiceField for its formfield.
+    """
+    VMTemplateChoices = list(
+        (
+            str(obj.opennebula_vm_template_id),
+            (obj.name + ' - ' + VMTemplate.IPV6.title()
+                if obj.vm_type == VMTemplate.IPV6 else obj.name
+             )
+         )
+        for obj in VMTemplate.objects.all()
+    )
+
+    def formfield(self, **kwargs):
+        defaults = {
+            'form_class': forms.MultipleChoiceField,
+            'choices': self.VMTemplateChoices,
+        }
+        defaults.update(kwargs)
+        # Skip our parent's formfield implementation completely as we don't
+        # care for it.
+        # pylint:disable=bad-super-call
+        return super(ArrayField, self).formfield(**defaults)
+
+
 class DCLCalculatorPluginModel(CMSPlugin):
     pricing = models.ForeignKey(
         VMPricing,
@@ -303,3 +333,17 @@ class DCLCalculatorPluginModel(CMSPlugin):
         max_length=50, choices=VMTemplate.VM_TYPE_CHOICES,
         default=VMTemplate.PUBLIC
     )
+    vm_templates_to_show = MultipleChoiceArrayField(
+        base_field=models.CharField(
+            blank=True,
+            max_length=256,
+        ),
+        default=list,
+        blank=True,
+        help_text="Recommended: If you wish to show all templates of the "
+                  "corresponding VM Type (public/ipv6only), please do not "
+                  "select any of the items in the above field. "
+                  "This will allow any new template(s) added "
+                  "in the backend to be automatically listed in this "
+                  "calculator instance."
+    )
diff --git a/datacenterlight/cms_plugins.py b/datacenterlight/cms_plugins.py
index 769824e0..95a496d8 100644
--- a/datacenterlight/cms_plugins.py
+++ b/datacenterlight/cms_plugins.py
@@ -88,9 +88,15 @@ class DCLCalculatorPlugin(CMSPluginBase):
         context = super(DCLCalculatorPlugin, self).render(
             context, instance, placeholder
         )
-        context['templates'] = VMTemplate.objects.filter(
-            vm_type=instance.vm_type
-        )
+        ids = instance.vm_templates_to_show
+        if ids:
+            context['templates'] = VMTemplate.objects.filter(
+                vm_type=instance.vm_type
+            ).filter(opennebula_vm_template_id__in=ids)
+        else:
+            context['templates'] = VMTemplate.objects.filter(
+                vm_type=instance.vm_type
+            )
         return context
 
 
diff --git a/datacenterlight/migrations/0024_dclcalculatorpluginmodel_vm_templates_to_show.py b/datacenterlight/migrations/0024_dclcalculatorpluginmodel_vm_templates_to_show.py
new file mode 100644
index 00000000..65bfce21
--- /dev/null
+++ b/datacenterlight/migrations/0024_dclcalculatorpluginmodel_vm_templates_to_show.py
@@ -0,0 +1,21 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.4 on 2018-06-24 08:23
+from __future__ import unicode_literals
+
+import datacenterlight.cms_models
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('datacenterlight', '0023_auto_20180524_0349'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='dclcalculatorpluginmodel',
+            name='vm_templates_to_show',
+            field=datacenterlight.cms_models.MultipleChoiceArrayField(base_field=models.CharField(blank=True, max_length=256), blank=True, default=list, help_text='Recommended: If you wish to show all templates of the corresponding VM Type (public/ipv6only), please do not select any of the items in the above field. This will allow any new template(s) added in the backend to be automatically listed in this calculator instance.', size=None),
+        ),
+    ]