diff --git a/src/Database/Models/ResourceModel.cs b/src/Database/Models/ResourceModel.cs
index 82e8744bd2960f498c87db9f3a20f6103d7d4c81..484096e81ca3f74870f2963d63ec060e515b5dbd 100644
--- a/src/Database/Models/ResourceModel.cs
+++ b/src/Database/Models/ResourceModel.cs
@@ -86,7 +86,7 @@ namespace Coscine.Database.Models
             }
         }
 
-        public Resource StoreFromObject(ResourceObject resourceObject)
+        public Resource StoreFromObject(ResourceObject resourceObject, User user)
         {
             if (!resourceObject.Disciplines.Any() || resourceObject.ResourceTypeOption == null)
             {
@@ -104,7 +104,8 @@ namespace Coscine.Database.Models
                 VisibilityId = resourceObject.Visibility.Id,
                 ApplicationProfile = resourceObject.ApplicationProfile,
                 FixedValues = resourceObject.FixedValues != null ? resourceObject.FixedValues.ToString() : "{}",
-                Creator = resourceObject.Creator
+                // DateCreated is skipped here. Value set automatically by the database.
+                Creator = user.Id
             };
             if (resourceObject.License != null)
             {
@@ -288,14 +289,10 @@ namespace Coscine.Database.Models
             {
                 resource.LicenseId = null;
             }
-
-            // the application profile can not be altered after creation
-            // resource.ApplicationProfile = resourceObject.ApplicationProfile;
-
             resource.FixedValues = resourceObject.FixedValues != null ? resourceObject.FixedValues.ToString() : "{}";
-
-            // the resource creator can not be altered after creation
-            // resource.Creator = resourceObject.Creator;
+            // Application Profile can not be altered after creation
+            // Resource DateCreated can not be altered after creation
+            // Creator can not be altered after creation
 
             SetDisciplines(resource, resourceObject.Disciplines);
 
@@ -441,6 +438,7 @@ namespace Coscine.Database.Models
                 resourceTypeOptionObject == null ? new JObject() : JObject.FromObject(resourceTypeOptionObject),
                 resource.ApplicationProfile,
                 JToken.Parse(resource.FixedValues ?? "{}"),
+                resource.DateCreated,
                 resource.Creator,
                 resource.Archived == "1"
             );
diff --git a/src/Database/ReturnObjects/ResourceObject.cs b/src/Database/ReturnObjects/ResourceObject.cs
index d7b4ec24371c9f423cc36f852ead47ec6275bd82..9bfd9f012effb1c6d2f70865ba7ef451d795e5d4 100644
--- a/src/Database/ReturnObjects/ResourceObject.cs
+++ b/src/Database/ReturnObjects/ResourceObject.cs
@@ -23,10 +23,11 @@ namespace Coscine.Database.ReturnObjects
         public JObject ResourceTypeOption { get; set; }
         public string ApplicationProfile { get; set; }
         public JToken FixedValues { get; set; }
+        public DateTime? DateCreated { get; set; }
         public Guid? Creator { get; set; }
         public bool Archived { get; set; }
 
-        public ResourceObject(Guid id,  string displayName, string resourceName, string description, string keywords, string usageRights, ResourceTypeObject type, IEnumerable<DisciplineObject> disciplines, VisibilityObject visibility, LicenseObject license, JObject resourceTypeOption, string applicationProfile, JToken fixedValues, Guid? creator = null, bool archived = false)
+        public ResourceObject(Guid id,  string displayName, string resourceName, string description, string keywords, string usageRights, ResourceTypeObject type, IEnumerable<DisciplineObject> disciplines, VisibilityObject visibility, LicenseObject license, JObject resourceTypeOption, string applicationProfile, JToken fixedValues, DateTime? dateCreated, Guid? creator = null, bool archived = false)
         {
             Id = id;
 
@@ -45,7 +46,7 @@ namespace Coscine.Database.ReturnObjects
 
             ApplicationProfile = applicationProfile;
             FixedValues = fixedValues;
-
+            DateCreated = dateCreated;
             Creator = creator;
             Archived = archived;
         }
diff --git a/src/Scaffolding/DataModel/Model.cs b/src/Scaffolding/DataModel/Model.cs
index 6581a174ab564b822a0024ee30030cafa1fcf5af..5c3a5f0f49166aa879b583423bf64f1457e74fb9 100644
--- a/src/Scaffolding/DataModel/Model.cs
+++ b/src/Scaffolding/DataModel/Model.cs
@@ -625,6 +625,10 @@ namespace Coscine.Database.DataModel
                     .HasMaxLength(255)
                     .HasDefaultValueSql("(N'0')");
 
+                entity.Property(e => e.DateCreated)
+                    .HasColumnType("datetime")
+                    .HasDefaultValueSql("(getutcdate())");
+
                 entity.Property(e => e.DisplayName).HasMaxLength(25);
 
                 entity.Property(e => e.Keywords).HasMaxLength(1000);
diff --git a/src/Scaffolding/DataModel/Resource.cs b/src/Scaffolding/DataModel/Resource.cs
index e47116fd4fefa022b164a810562409215018aba7..69cb6f23186d57d6de911e088baaba84bf5e9ac4 100644
--- a/src/Scaffolding/DataModel/Resource.cs
+++ b/src/Scaffolding/DataModel/Resource.cs
@@ -30,6 +30,7 @@ namespace Coscine.Database.DataModel
         public Guid? Creator { get; set; }
         public string Archived { get; set; }
         public bool Deleted { get; set; }
+        public DateTime? DateCreated { get; set; }
 
         public virtual License License { get; set; }
         public virtual ResourceType Type { get; set; }