diff --git a/src/components/admin/cron-update-schedule/cron-update-schedule.component.html b/src/components/admin/cron-update-schedule/cron-update-schedule.component.html
new file mode 100644
index 0000000..a7757e5
--- /dev/null
+++ b/src/components/admin/cron-update-schedule/cron-update-schedule.component.html
@@ -0,0 +1,16 @@
+
+
+ cron
+
+
+
+ Следующие запуски:
+
+ @for (date of nextRunDates; track $index) {
+ - {{ date }}
+ }
+
+
diff --git a/src/components/admin/cron-update-schedule/cron-update-schedule.component.ts b/src/components/admin/cron-update-schedule/cron-update-schedule.component.ts
new file mode 100644
index 0000000..b0ed5a5
--- /dev/null
+++ b/src/components/admin/cron-update-schedule/cron-update-schedule.component.ts
@@ -0,0 +1,48 @@
+import {Component} from '@angular/core';
+import {ConfigurationCardComponent} from "@component/admin/configuration-card/configuration-card.component";
+import {ScheduleService} from "@api/v1/configuration/schedule.service";
+import {MatInputModule} from "@angular/material/input";
+import {FormsModule, ReactiveFormsModule} from "@angular/forms";
+import {Observable} from "rxjs";
+import {CronUpdateScheduleResponse} from "@api/v1/configuration/cronUpdateScheduleResponse";
+
+@Component({
+ selector: 'app-cron-update-schedule',
+ imports: [
+ ConfigurationCardComponent,
+ MatInputModule,
+ ReactiveFormsModule,
+ FormsModule
+ ],
+ templateUrl: './cron-update-schedule.component.html',
+ providers: [ScheduleService]
+})
+export class CronUpdateScheduleComponent {
+ protected nextRunDates: string[] = [];
+ protected cronExpression: string = '';
+ protected cronExpressionBefore: string = '';
+
+ constructor(private api: ScheduleService) {
+ api.getCronUpdateSchedule().subscribe(data => {
+ this.nextRunDates = data.nextStart?.map(x => this.convertDateToString(x)) ?? [];
+ this.cronExpression = data.cron;
+ this.cronExpressionBefore = data.cron;
+ });
+ }
+
+ private convertDateToString(data: Date): string {
+ data = new Date(data);
+ return data.toLocaleDateString() + ' ' + data.toLocaleTimeString();
+ }
+
+ protected saveFunction() {
+ return () => this.api.postCronUpdateSchedule(this.cronExpression);
+ }
+
+ protected onSave(data: Observable): void {
+ data.subscribe(apiData => {
+ this.nextRunDates = apiData.nextStart?.map(x => this.convertDateToString(x)) ?? [];
+ this.cronExpressionBefore = apiData.cron;
+ });
+ }
+}