diff --git a/models/contact/src/index.ts b/models/contact/src/index.ts
index ded151543d..9857a69559 100644
--- a/models/contact/src/index.ts
+++ b/models/contact/src/index.ts
@@ -38,6 +38,7 @@ import {
   Index,
   Model,
   Prop,
+  ReadOnly,
   TypeDate,
   TypeRef,
   TypeString,
@@ -95,6 +96,7 @@ export class TContact extends TDoc implements Contact {
     city!: string
 
   @Prop(TypeTimestamp(), contact.string.CreatedOn)
+  @ReadOnly()
     createOn!: Timestamp
 }
 
diff --git a/models/recruit/src/index.ts b/models/recruit/src/index.ts
index 44f6cea666..d07facac97 100644
--- a/models/recruit/src/index.ts
+++ b/models/recruit/src/index.ts
@@ -157,6 +157,7 @@ export class TApplicant extends TTask implements Applicant {
   declare assignee: Ref<Employee> | null
 
   @Prop(TypeTimestamp(), contact.string.CreatedOn)
+  @ReadOnly()
     createOn!: Timestamp
 }
 
diff --git a/models/view/src/index.ts b/models/view/src/index.ts
index aeded039ec..0d84e2afd1 100644
--- a/models/view/src/index.ts
+++ b/models/view/src/index.ts
@@ -379,7 +379,12 @@ export function createModel (builder: Builder): void {
   })
 
   classPresenter(builder, core.class.TypeBoolean, view.component.BooleanPresenter, view.component.BooleanEditor)
-  classPresenter(builder, core.class.TypeTimestamp, view.component.TimestampPresenter)
+  classPresenter(
+    builder,
+    core.class.TypeTimestamp,
+    view.component.TimestampPresenter,
+    view.component.TimestampPresenter
+  )
   classPresenter(builder, core.class.TypeDate, view.component.DatePresenter, view.component.DateEditor)
   classPresenter(builder, core.class.Space, view.component.ObjectPresenter)
   classPresenter(builder, core.class.Class, view.component.ClassRefPresenter)
diff --git a/plugins/view-resources/src/components/TimestampPresenter.svelte b/plugins/view-resources/src/components/TimestampPresenter.svelte
index dcfb77b520..c1e6d40948 100644
--- a/plugins/view-resources/src/components/TimestampPresenter.svelte
+++ b/plugins/view-resources/src/components/TimestampPresenter.svelte
@@ -14,9 +14,22 @@
 // limitations under the License.
 -->
 <script lang="ts">
-  import { TimeSince } from '@hcengineering/ui'
+  import { Button, ButtonSize, TimeSince } from '@hcengineering/ui'
 
   export let value: number
+  export let kind: 'no-border' | 'link' = 'no-border'
+  export let readonly = false
+  export let size: ButtonSize = 'small'
+  export let justify: 'left' | 'center' = 'center'
+  export let width: string | undefined = 'fit-content'
 </script>
 
-<TimeSince {value} />
+{#if kind === 'link'}
+  <Button {kind} {size} {justify} {width}>
+    <svelte:fragment slot="content">
+      <TimeSince {value} />
+    </svelte:fragment>
+  </Button>
+{:else}
+  <TimeSince {value} />
+{/if}