diff --git a/app/Http/Controllers/AvaliadorTaskTimeController.php b/app/Http/Controllers/AvaliadorTaskTimeController.php
new file mode 100644
index 0000000000000000000000000000000000000000..ecce6c9019de5ae2720432fc553289c9d13b85fd
--- /dev/null
+++ b/app/Http/Controllers/AvaliadorTaskTimeController.php
@@ -0,0 +1,22 @@
+<?php
+
+namespace App\Http\Controllers;
+
+use App\Models\Util\MenuItemsAvaliador;
+use Illuminate\Http\Request;
+use Illuminate\Support\Facades\Auth;
+
+class AvaliadorTaskTimeController extends Controller
+{
+    public function index()
+    {
+        $menu =  MenuItemsAvaliador::TASK_TIME;
+        $user = Auth::user();
+        // $userPads =
+        //         AvaliadorPad::where('user_id', '=', $user->id)
+        //         ->join('pad', 'avaliador_pad.pad_id', '=', 'pad.id')
+        //         ->get();
+
+        return view('avaliador-task-time.index', ['index_menu' => $menu]);
+    }
+}
diff --git a/app/Http/Controllers/PadController.php b/app/Http/Controllers/PadController.php
index 5d1039b8184867769015e9990ec5ff829f04de90..32c782d40a0d9a8a0d99a5c111dc01e43547ca3b 100644
--- a/app/Http/Controllers/PadController.php
+++ b/app/Http/Controllers/PadController.php
@@ -81,7 +81,7 @@ class PadController extends Controller
      * @return \Illuminate\Http\Response
      */
     public function view($id)
-    {   
+    {
         $ensinoTotalHoras =
             EnsinoAtendimentoDiscente::whereUserPadId($id)->sum('ch_semanal')
             + EnsinoAula::whereUserPadId($id)->sum('ch_semanal')
diff --git a/app/Http/Controllers/TaskController.php b/app/Http/Controllers/TaskController.php
new file mode 100644
index 0000000000000000000000000000000000000000..1a3663d550e5e7f963f1eca0ebb11704cd3f13b2
--- /dev/null
+++ b/app/Http/Controllers/TaskController.php
@@ -0,0 +1,324 @@
+<?php
+
+namespace App\Http\Controllers;
+
+use App\Models\Tabelas\Ensino\EnsinoAtendimentoDiscente;
+use App\Models\Tabelas\Ensino\EnsinoCoordenacaoRegencia;
+use App\Models\Tabelas\Ensino\EnsinoOrientacao;
+use App\Models\Tabelas\Ensino\EnsinoParticipacao;
+use App\Models\Tabelas\Ensino\EnsinoSupervisao;
+use App\Models\Tabelas\Ensino\EnsinoAula;
+use App\Models\Tabelas\Ensino\EnsinoMembroDocente;
+use App\Models\Tabelas\Ensino\EnsinoOutros;
+use App\Models\Tabelas\Ensino\EnsinoProjeto;
+
+use App\Models\Tabelas\Pesquisa\PesquisaCoordenacao;
+use App\Models\Tabelas\Pesquisa\PesquisaLideranca;
+use App\Models\Tabelas\Pesquisa\PesquisaOrientacao;
+use App\Models\Tabelas\Pesquisa\PesquisaOutros;
+
+use App\Models\Tabelas\Extensao\ExtensaoCoordenacao;
+use App\Models\Tabelas\Extensao\ExtensaoOrientacao;
+use App\Models\Tabelas\Extensao\ExtensaoOutros;
+
+use App\Models\Tabelas\Gestao\GestaoCoordenacaoLaboratoriosDidaticos;
+use App\Models\Tabelas\Gestao\GestaoMembroCamaras;
+use App\Models\Tabelas\Gestao\GestaoMembroConselho;
+use App\Models\Tabelas\Gestao\GestaoOutros;
+use App\Models\Tabelas\Gestao\GestaoCoordenacaoProgramaInstitucional;
+use App\Models\Tabelas\Gestao\GestaoMembroComissao;
+use App\Models\Tabelas\Gestao\GestaoMembroTitularConselho;
+use App\Models\Tabelas\Gestao\GestaoRepresentanteUnidadeEducacao;
+use App\Models\TaskTime;
+use Illuminate\Http\Request;
+use Illuminate\Support\Collection;
+use Illuminate\Support\Facades\Response;
+
+class TaskController extends Controller
+{
+    public function search(Request $request) {
+
+        $q = $request->query('q'); 
+        $user_pad_id = $request->query('user_pad_id');
+
+        //ENSINO
+        //---------------------------------------------
+        $type_ensino_aula = TaskTime::TYPE_ENSINO_AULA;
+        $list_ensino_aula = 
+            EnsinoAula::whereUserPadId($user_pad_id)->get()->map(function(EnsinoAula $model) use ($type_ensino_aula) {
+                return [
+                    'id' => "id_{$model->id}|type_{$type_ensino_aula}",
+                    'text' => $model->componente_curricular
+                ];
+            });
+        
+        $type_ensino_coordenacao_regencia = TaskTime::TYPE_ENSINO_COORDENACAO_REGENCIA;
+        $list_ensino_coordenacao_regencia = 
+            EnsinoCoordenacaoRegencia::whereUserPadId($user_pad_id)->get()->map(function(EnsinoCoordenacaoRegencia $model) use ($type_ensino_coordenacao_regencia) {
+                return [
+                    'id' => "id_{$model->id}|type_{$type_ensino_coordenacao_regencia}",
+                    'text' => $model->componente_curricular
+                ];
+            });
+
+        $type_ensino_orientacao = TaskTime::TYPE_ENSINO_ORIENTACAO;
+        $list_ensino_orientacao = 
+            EnsinoOrientacao::whereUserPadId($user_pad_id)->get()->map(function(EnsinoOrientacao $model) use ($type_ensino_orientacao) {
+                return [
+                    'id' => "id_{$model->id}|type_{$type_ensino_orientacao}",
+                    'text' => $model->atividade
+                ];
+            });
+
+        $type_ensino_supervisao = TaskTime::TYPE_ENSINO_SUPERVISAO;
+        $list_ensino_supervisao = 
+            EnsinoSupervisao::whereUserPadId($user_pad_id)->get()->map(function(EnsinoSupervisao $model) use ($type_ensino_supervisao) {
+                return [
+                    'id' => "id_{$model->id}|type_{$type_ensino_supervisao}",
+                    'text' => $model->atividade
+                ];
+            });
+
+
+        $type_ensino_atendimento_discente = TaskTime::TYPE_ENSINO_ATENDIMENTO_DISCENTE;
+        $list_ensino_atendimento_discente = 
+            EnsinoAtendimentoDiscente::whereUserPadId($user_pad_id)->get()->map(function(EnsinoAtendimentoDiscente $model) use ($type_ensino_atendimento_discente) {
+                return [
+                    'id' => "id_{$model->id}|type_{$type_ensino_atendimento_discente}",
+                    'text' => $model->componente_curricular
+                ];
+            });
+
+        $type_ensino_projeto = TaskTime::TYPE_ENSINO_PROJETO;
+        $list_ensino_projeto = 
+            EnsinoProjeto::whereUserPadId($user_pad_id)->get()->map(function(EnsinoProjeto $model) use ($type_ensino_projeto) {
+                return [
+                    'id' => "id_{$model->id}|type_{$type_ensino_projeto}",
+                    'text' => $model->componente_curricular
+                ];
+            });
+
+        $type_ensino_participacao = TaskTime::TYPE_ENSINO_PARTICIPACAO;
+        $list_ensino_participacao = 
+            EnsinoParticipacao::whereUserPadId($user_pad_id)->get()->map(function(EnsinoParticipacao $model) use ($type_ensino_participacao) {
+                return [
+                    'id' => "id_{$model->id}|type_{$type_ensino_participacao}",
+                    'text' => $model->curso
+                ];
+            });
+
+        $type_ensino_membro_docente = TaskTime::TYPE_ENSINO_MEMBRO_DOCENTE;
+        $list_ensino_membro_docente = 
+            EnsinoMembroDocente::whereUserPadId($user_pad_id)->get()->map(function(EnsinoMembroDocente $model) use ($type_ensino_membro_docente) {
+                return [
+                    'id' => "id_{$model->id}|type_{$type_ensino_membro_docente}",
+                    'text' => $model->nucleo
+                ];
+            });
+
+        $type_ensino_outros = TaskTime::TYPE_ENSINO_OUTROS;
+        $list_ensino_outros = 
+            EnsinoOutros::whereUserPadId($user_pad_id)->get()->map(function(EnsinoOutros $model) use ($type_ensino_outros) {
+                return [
+                    'id' => "id_{$model->id}|type_{$type_ensino_outros}",
+                    'text' => $model->atividade
+                ];
+            });
+        //---------------------------------------------
+
+        //PESQUISA
+        //---------------------------------------------
+        $type_pesquisa_coordenacao = TaskTime::TYPE_PESQUISA_COORDENACAO;
+        $list_pesquisa_coordenacao = 
+            PesquisaCoordenacao::whereUserPadId($user_pad_id)->get()->map(function(PesquisaCoordenacao $model) use ($type_pesquisa_coordenacao) {
+                return [
+                    'id' => "id_{$model->id}|type_{$type_pesquisa_coordenacao}",
+                    'text' => $model->titulo_projeto
+                ];
+            });
+
+        $type_pesquisa_orientacao = TaskTime::TYPE_PESQUISA_ORIENTACAO;
+        $list_pesquisa_orientacao = 
+            PesquisaOrientacao::whereUserPadId($user_pad_id)->get()->map(function(PesquisaOrientacao $model) use ($type_pesquisa_orientacao) {
+                return [
+                    'id' => "id_{$model->id}|type_{$type_pesquisa_orientacao}",
+                    'text' => $model->titulo_projeto
+                ];
+            });
+
+        $type_pesquisa_lideranca = TaskTime::TYPE_PESQUISA_LIDERANCA;
+        $list_pesquisa_lideranca = 
+            PesquisaLideranca::whereUserPadId($user_pad_id)->get()->map(function(PesquisaLideranca $model) use ($type_pesquisa_lideranca) {
+                return [
+                    'id' => "id_{$model->id}|type_{$type_pesquisa_lideranca}",
+                    'text' => $model->grupo_pesquisa
+                ];
+            });
+
+        $type_pesquisa_outros = TaskTime::TYPE_PESQUISA_OUTROS;
+        $list_pesquisa_outros = 
+            PesquisaOutros::whereUserPadId($user_pad_id)->get()->map(function(PesquisaOutros $model) use ($type_pesquisa_outros) {
+                return [
+                    'id' => "id_{$model->id}|type_{$type_pesquisa_outros}",
+                    'text' => $model->atividade
+                ];
+            });
+        //---------------------------------------------
+
+        //EXTENSÃO
+        //---------------------------------------------
+        $type_extensao_coordenacao = TaskTime::TYPE_EXTENSAO_COORDENACAO;
+        $list_extensao_coordenacao = 
+            ExtensaoCoordenacao::whereUserPadId($user_pad_id)->get()->map(function(ExtensaoCoordenacao $model) use ($type_extensao_coordenacao) {
+                return [
+                    'id' => "id_{$model->id}|type_{$type_extensao_coordenacao}",
+                    'text' => $model->titulo_projeto
+                ];
+            });
+
+        $type_extensao_orientacao = TaskTime::TYPE_EXTENSAO_ORIENTACAO;
+        $list_extensao_orientacao = 
+            ExtensaoOrientacao::whereUserPadId($user_pad_id)->get()->map(function(ExtensaoOrientacao $model) use ($type_extensao_orientacao) {
+                return [
+                    'id' => "id_{$model->id}|type_{$type_extensao_orientacao}",
+                    'text' => $model->titulo_projeto
+                ];
+            });
+
+        $type_extensao_outros = TaskTime::TYPE_EXTENSAO_OUTROS;
+        $list_extensao_outros = 
+            ExtensaoOutros::whereUserPadId($user_pad_id)->get()->map(function(ExtensaoOutros $model) use ($type_extensao_outros) {
+                return [
+                    'id' => "id_{$model->id}|type_{$type_extensao_outros}",
+                    'text' => $model->atividade
+                ];
+            });
+        //---------------------------------------------
+
+        //GESTÃO
+        //---------------------------------------------
+
+        $type_gestao_coordenacao_laboratorios_didaticos = TaskTime::TYPE_GESTAO_COORDENACAO_LABORATORIOS_DIDATICOS;
+        $list_gestao_coordenacao_laboratorios_didaticos = 
+            GestaoCoordenacaoLaboratoriosDidaticos::whereUserPadId($user_pad_id)->get()->map(function(GestaoCoordenacaoLaboratoriosDidaticos $model) use ($type_gestao_coordenacao_laboratorios_didaticos) {
+                return [
+                    'id' => "id_{$model->id}|type_{$type_gestao_coordenacao_laboratorios_didaticos}",
+                    'text' => $model->nome
+                ];
+            });
+
+        $type_gestao_membro_conselho = TaskTime::TYPE_GESTAO_MEMBRO_CONSELHO;
+        $list_gestao_membro_conselho = 
+            GestaoMembroConselho::whereUserPadId($user_pad_id)->get()->map(function(GestaoMembroConselho $model) use ($type_gestao_membro_conselho) {
+                return [
+                    'id' => "id_{$model->id}|type_{$type_gestao_membro_conselho}",
+                    'text' => $model->nome
+                ];
+            });
+
+        $type_gestao_coordenacao_programa_institucional = TaskTime::TYPE_GESTAO_COORDENACAO_PROGRAMA_INSTITUCIONAL;
+        $list_gestao_coordenacao_programa_institucional = 
+            GestaoCoordenacaoProgramaInstitucional::whereUserPadId($user_pad_id)->get()->map(function(GestaoCoordenacaoProgramaInstitucional $model) use ($type_gestao_coordenacao_programa_institucional) {
+                return [
+                    'id' => "id_{$model->id}|type_{$type_gestao_coordenacao_programa_institucional}",
+                    'text' => $model->nome
+                ];
+            });
+
+        $type_gestao_membro_titular_conselho = TaskTime::TYPE_GESTAO_MEMBRO_TITULAR_CONSELHO;
+        $list_gestao_membro_titular_conselho = 
+            GestaoMembroTitularConselho::whereUserPadId($user_pad_id)->get()->map(function(GestaoMembroTitularConselho $model) use ($type_gestao_membro_titular_conselho) {
+                return [
+                    'id' => "id_{$model->id}|type_{$type_gestao_membro_titular_conselho}",
+                    'text' => $model->nome
+                ];
+            });
+
+        $type_gestao_membro_camaras = TaskTime::TYPE_GESTAO_MEMBRO_CAMARAS;
+        $list_gestao_membro_camaras = 
+            GestaoMembroCamaras::whereUserPadId($user_pad_id)->get()->map(function(GestaoMembroCamaras $model) use ($type_gestao_membro_camaras) {
+                return [
+                    'id' => "id_{$model->id}|type_{$type_gestao_membro_camaras}",
+                    'text' => $model->nome
+                ];
+            });
+
+        $type_gestao_representante_unidade_educacao = TaskTime::TYPE_GESTAO_REPRESENTANTE_UNIDADE_EDUCACAO;
+        $list_gestao_representante_unidade_educacao = 
+            GestaoRepresentanteUnidadeEducacao::whereUserPadId($user_pad_id)->get()->map(function(GestaoRepresentanteUnidadeEducacao $model) use ($type_gestao_representante_unidade_educacao) {
+                return [
+                    'id' => "id_{$model->id}|type_{$type_gestao_representante_unidade_educacao}",
+                    'text' => $model->nome
+                ];
+            });
+
+        $type_gestao_membro_comissao = TaskTime::TYPE_GESTAO_MEMBRO_COMISSAO;
+        $list_gestao_membro_comissao = 
+            GestaoMembroComissao::whereUserPadId($user_pad_id)->get()->map(function(GestaoMembroComissao $model) use ($type_gestao_membro_comissao) {
+                return [
+                    'id' => "id_{$model->id}|type_{$type_gestao_membro_comissao}",
+                    'text' => $model->nome
+                ];
+            });
+
+        $type_gestao_outros = TaskTime::TYPE_GESTAO_OUTROS;
+        $list_gestao_outros = 
+            GestaoOutros::whereUserPadId($user_pad_id)->get()->map(function(GestaoOutros $model) use ($type_gestao_outros) {
+                return [
+                    'id' => "id_{$model->id}|type_{$type_gestao_outros}",
+                    'text' => $model->atividade
+                ];
+            });
+        //---------------------------------------------
+
+        $dimension_collections = [
+            $list_ensino_aula,
+            $list_ensino_coordenacao_regencia,
+            $list_ensino_orientacao,
+            $list_ensino_supervisao,
+            $list_ensino_atendimento_discente,
+            $list_ensino_projeto,
+            $list_ensino_participacao,
+            $list_ensino_membro_docente,
+            $list_ensino_outros,
+
+            $list_pesquisa_coordenacao,
+            $list_pesquisa_orientacao, 
+            $list_pesquisa_lideranca, 
+            $list_pesquisa_outros,
+
+            $list_extensao_coordenacao,
+            $list_extensao_orientacao,
+            $list_extensao_outros,
+
+            $list_gestao_coordenacao_laboratorios_didaticos,
+            $list_gestao_membro_conselho,
+            $list_gestao_coordenacao_programa_institucional,
+            $list_gestao_membro_titular_conselho, 
+            $list_gestao_membro_camaras,
+            $list_gestao_representante_unidade_educacao,
+            $list_gestao_membro_comissao,
+            $list_gestao_outros,
+        ];
+
+        $combined_collections = collect([]);
+
+        $list_tasks =
+            collect($dimension_collections)
+                ->reduce(
+                    function ($carry, $collection) {
+                        return $carry->concat($collection);
+                    },
+                    $combined_collections
+                );
+
+        $results = ['results' => $list_tasks];
+
+        return Response::json($results);
+    }
+
+    public function searchById(Request $request) {
+        
+        dd($request->all());
+    }
+}
diff --git a/app/Http/Controllers/TaskTimeController.php b/app/Http/Controllers/TaskTimeController.php
index 25fb7572cf911b78dc10a5d40f144ad1dda026be..b01dea12654f333caa3564ce3d46f2aae9a7fcf7 100644
--- a/app/Http/Controllers/TaskTimeController.php
+++ b/app/Http/Controllers/TaskTimeController.php
@@ -2,31 +2,118 @@
 
 namespace App\Http\Controllers;
 
+use App\Models\TaskTime;
+use App\Models\Util\Menu;
 use Illuminate\Http\Request;
+use Illuminate\Support\Facades\Response;
+use Illuminate\Support\Facades\Validator;
 
 class TaskTimeController extends Controller
 {
-    public function index() {
+    public function index($user_pad_id)
+    {
+        $menu = Menu::PADS;
 
+        return view('task-time.index', [
+            'menu' => $menu,
+            'user_pad_id' => $user_pad_id
+        ]);
     }
 
-    public function createView() {
+    public function create($user_pad_id) {
+        return view('task-time.create', [
+            'user_pad_id' => $user_pad_id]
+        );
+    }
+
+    public function save(Request $request) {
+
+        $model = new TaskTime($request->all());
+
+        if($model->save()) {
+            return redirect()
+                ->route('TaskTimeIndex', ['user_pad_id' => $model->user_pad_id])
+                ->with('success', 'Cadastro realizado com sucesso!');
+        }
+    }
 
+    public function edit($id) {
+        $model = TaskTime::find($id);
+        return view('task-time.update', [
+            'model' => $model
+        ]);
     }
 
-    public function create() {
+    public function update($id, Request $request) {
 
+        $request->merge(['start_time' => TaskTime::traitHour($request->get('start_time'))]);
+        $request->merge(['end_time' => TaskTime::traitHour($request->get('end_time'))]);
+
+        $model = TaskTime::find($id);
+        $model->fill($request->all());
+
+        if($model->save()) {
+            return redirect()
+                ->route('TaskTimeIndex', ['user_pad_id' => $model->user_pad_id])
+                ->with('success', 'Atualizado com sucesso!');
+        }
+
+        return redirect()
+            ->route('TaskTimeIndex', ['user_pad_id' => $model->user_pad_id])
+            ->with('fail', 'Erro ao Atualizar!');
+        
     }
 
-    public function updateView() {
+    public function delete($id) {
+        
+        $model = TaskTime::find($id);
+
+        if($model->delete()) {
+            return redirect()
+                ->route('TaskTimeIndex', ['user_pad_id' => $model->user_pad_id])
+                ->with('success', 'Deletado com sucesso!');
+        }
+
+        return redirect()
+            ->route('TaskTimeIndex', ['user_pad_id' => $model->user_pad_id])
+            ->with('fail', 'Erro ao Deletar!');
 
     }
 
-    public function update() {
+    public function searchTask(Request $request) {
+
+        $type = $request->get('type');
+        $tarefa_id = $request->get('tarefa_id');
+
+        $model = new TaskTime();
+        $model->tarefa_id = $tarefa_id;
+        $model->type = $type;
+
+        $attributes = $model->tarefa->getAttributes();
 
+        return Response::json(['task' => $attributes]);
     }
 
-    public function delete() {
-        
+    public function ajaxValidation(Request $request)
+    {
+        $request->merge(['start_time' => TaskTime::traitHour($request->get('start_time'))]);
+        $request->merge(['end_time' => TaskTime::traitHour($request->get('end_time'))]);
+
+        $attributes = [
+            'id' => $request->get('id'),
+            'user_pad_id' => $request->get('user_pad_id'),
+            'tarefa_id' => $request->get('tarefa_id'),
+            'type' => $request->get('type'),
+            'start_time' => $request->get('start_time'),
+            'end_time' => $request->get('end_time'),
+        ];
+
+        $validator = Validator::make($request->all(), TaskTime::rules($attributes), TaskTime::messages());
+
+        if($validator->passes()) {
+            return Response::json(['message' => true, 'status' => 200]);
+        }
+
+        return Response::json(['errors' => $validator->errors(), 'status' => 400]);
     }
 }
diff --git a/app/Models/TaskTime.php b/app/Models/TaskTime.php
index 4d7a76426742e542b87559805237642a1a331262..9ccbe6ce97aeaea586bcaa66134e9c2421888bf4 100644
--- a/app/Models/TaskTime.php
+++ b/app/Models/TaskTime.php
@@ -2,7 +2,37 @@
 
 namespace App\Models;
 
+use Illuminate\Validation\Rule;
+
+use App\Models\Tabelas\Ensino\EnsinoAtendimentoDiscente;
+use App\Models\Tabelas\Ensino\EnsinoAula;
+use App\Models\Tabelas\Ensino\EnsinoCoordenacaoRegencia;
+use App\Models\Tabelas\Ensino\EnsinoMembroDocente;
+use App\Models\Tabelas\Ensino\EnsinoOrientacao;
+use App\Models\Tabelas\Ensino\EnsinoOutros;
+use App\Models\Tabelas\Ensino\EnsinoParticipacao;
+use App\Models\Tabelas\Ensino\EnsinoProjeto;
+use App\Models\Tabelas\Ensino\EnsinoSupervisao;
+use App\Models\Tabelas\Extensao\ExtensaoCoordenacao;
+use App\Models\Tabelas\Extensao\ExtensaoOrientacao;
+use App\Models\Tabelas\Extensao\ExtensaoOutros;
+use App\Models\Tabelas\Gestao\GestaoCoordenacaoLaboratoriosDidaticos;
+use App\Models\Tabelas\Gestao\GestaoCoordenacaoProgramaInstitucional;
+use App\Models\Tabelas\Gestao\GestaoMembroCamaras;
+use App\Models\Tabelas\Gestao\GestaoMembroComissao;
+use App\Models\Tabelas\Gestao\GestaoMembroConselho;
+use App\Models\Tabelas\Gestao\GestaoMembroTitularConselho;
+use App\Models\Tabelas\Gestao\GestaoOutros;
+use App\Models\Tabelas\Gestao\GestaoRepresentanteUnidadeEducacao;
+use App\Models\Tabelas\Pesquisa\PesquisaCoordenacao;
+use App\Models\Tabelas\Pesquisa\PesquisaLideranca;
+use App\Models\Tabelas\Pesquisa\PesquisaOrientacao;
+use App\Models\Tabelas\Pesquisa\PesquisaOutros;
+use App\Rules\ValidationLimitTime;
+use DateInterval;
+use DateTime;
 use Illuminate\Database\Eloquent\Model;
+use Illuminate\Database\Eloquent\Collection;
 
 class TaskTime extends Model
 {
@@ -39,6 +69,7 @@ class TaskTime extends Model
     CONST TYPE_GESTAO_MEMBRO_COMISSAO                       = 23;
     CONST TYPE_GESTAO_OUTROS                                = 24;
 
+    CONST WEEK_HOUR = 0;
     CONST WEEK_DAY_SUNDAY       = 1;
     CONST WEEK_DAY_MONDAY       = 2;
     CONST WEEK_DAY_TUESDAY      = 3;
@@ -49,114 +80,158 @@ class TaskTime extends Model
 
     protected $table = 'task_time';
 
-    protected $fillable = ['user_pad_upe', 'tarefa_id', 'type', 'weekday', 'start_time', 'end_time'];
+    protected $fillable = ['user_pad_id', 'tarefa_id', 'type', 'weekday', 'start_time', 'end_time'];
+
+    public static function rules($attributes)
+    {
+        return [
+            'cod_atividade' => ['required'],
+            'slct_tarefa_id' => ['required'],
+            'tarefa_id' => ['required', 'integer'],
+            'type' => ['required', 'integer', Rule::in(array_keys(self::listTaskTypes()))],
+            'weekday' => ['required', 'integer', Rule::in(array_keys(self::listWeekDays()))],
+            'start_time' => ['required', 'date_format:H:i', 'after_or_equal:07:30', 'before_or_equal:21:15'],
+            // 'end_time' => ['required', 'date_format:H:i', 'after_or_equal:07:30', 'before_or_equal:21:15'],
+            'end_time' => ['required', 'date_format:H:i', 'after_or_equal:07:30', 'before_or_equal:21:15', new ValidationLimitTime($attributes)],
+        ];
+    }
+
+
+    public static function messages()
+    {
+        return [
+            //cod_atividade
+            'cod_atividade.required' => '',
+
+            //tarefa_id
+            'slct_tarefa_id.required' => 'O campo "Atividade" é obrigatório!',
+
+            // //type
+            // 'type.required' => 'O campo "Atividade" é obrigatório!',
+
+            //weekday
+            'weekday.required' => 'O campo "Dia da Semana" é obrigatório!',
+            'weekday.in' => 'Selecione uma opção da lista de "Dia da Semana"!',
+            'weekday.integer' => 'O campo "Dia da Semana" deve cónter um inteiro!',
+
+            //start_time
+            'start_time.required' => 'O campo "Horário Inicial" é obrigatório!',
+            'start_time.after_or_equal' => 'O valor minímo do "Horário Inicial" é 07:30!',
+            'start_time.before_or_equal' => 'O valor máximo do "Horário Inicial" é 21:15!',
+
+            //end_time
+            'end_time.required' => 'O campo "Horário Final" é obrigatório!',
+            'end_time.after_or_equal' => 'O valor minímo do "Horário Final" é 07:30!',
+            'end_time.before_or_equal' => 'O valor máximo do "Horário Final" é 21:15!'
+        ];
+    }
 
     public function tarefa()
     {
         // Return Ensino Models
         // - - - - - - - - - - 
-        if($this->type === self::TYPE_ENSINO_ATENDIMENTO_DISCENTE) {
+        if($this->type == self::TYPE_ENSINO_ATENDIMENTO_DISCENTE) {
             return $this->hasOne(EnsinoAtendimentoDiscente::class, 'id', 'tarefa_id');
         }
 
-        if($this->type === self::TYPE_ENSINO_AULA) {
+        if($this->type == self::TYPE_ENSINO_AULA) {
             return $this->hasOne(EnsinoAula::class, 'id', 'tarefa_id');
         }
 
-        if($this->type === self::TYPE_ENSINO_COORDENACAO_REGENCIA) {
+        if($this->type == self::TYPE_ENSINO_COORDENACAO_REGENCIA) {
             return $this->hasOne(EnsinoCoordenacaoRegencia::class, 'id', 'tarefa_id');
         }
 
-        if($this->type === self::TYPE_ENSINO_MEMBRO_DOCENTE) {
+        if($this->type == self::TYPE_ENSINO_MEMBRO_DOCENTE) {
             return $this->hasOne(EnsinoMembroDocente::class, 'id', 'tarefa_id');
         }
 
-        if($this->type === self::TYPE_ENSINO_ORIENTACAO) {
+        if($this->type == self::TYPE_ENSINO_ORIENTACAO) {
             return $this->hasOne(EnsinoOrientacao::class, 'id', 'tarefa_id');
         }
 
-        if($this->type === self::TYPE_ENSINO_OUTROS) {
+        if($this->type == self::TYPE_ENSINO_OUTROS) {
             return $this->hasOne(EnsinoOutros::class, 'id', 'tarefa_id');
         }
 
-        if($this->type === self::TYPE_ENSINO_PARTICIPACAO) {
+        if($this->type == self::TYPE_ENSINO_PARTICIPACAO) {
             return $this->hasOne(EnsinoParticipacao::class, 'id', 'tarefa_id');
         }
 
-        if($this->type === self::TYPE_ENSINO_PROJETO) {
+        if($this->type == self::TYPE_ENSINO_PROJETO) {
             return $this->hasOne(EnsinoProjeto::class, 'id', 'tarefa_id');
         }
 
-        if($this->type === self::TYPE_ENSINO_SUPERVISAO) {
+        if($this->type == self::TYPE_ENSINO_SUPERVISAO) {
             return $this->hasOne(EnsinoSupervisao::class, 'id', 'tarefa_id');
         }
         // - - - - - - - - - - 
 
         // Return Pesquisa Models
         // - - - - - - - - - - 
-        if($this->type === self::TYPE_PESQUISA_COORDENACAO) {
+        if($this->type == self::TYPE_PESQUISA_COORDENACAO) {
             return $this->hasOne(PesquisaCoordenacao::class, 'id', 'tarefa_id');
         }
 
-        if($this->type === self::TYPE_PESQUISA_LIDERANCA) {
+        if($this->type == self::TYPE_PESQUISA_LIDERANCA) {
             return $this->hasOne(PesquisaLideranca::class, 'id', 'tarefa_id');
         }
 
-        if($this->type === self::TYPE_PESQUISA_ORIENTACAO) {
+        if($this->type == self::TYPE_PESQUISA_ORIENTACAO) {
             return $this->hasOne(PesquisaOrientacao::class, 'id', 'tarefa_id');
         }
 
-        if($this->type === self::TYPE_PESQUISA_OUTROS) {
+        if($this->type == self::TYPE_PESQUISA_OUTROS) {
             return $this->hasOne(PesquisaOutros::class, 'id', 'tarefa_id');
         }
         // - - - - - - - - - - 
 
         // Return Extensao Models
         // - - - - - - - - - - 
-        if($this->type === self::TYPE_EXTENSAO_COORDENACAO) {
+        if($this->type == self::TYPE_EXTENSAO_COORDENACAO) {
             return $this->hasOne(ExtensaoCoordenacao::class, 'id', 'tarefa_id');
         }
 
-        if($this->type === self::TYPE_EXTENSAO_ORIENTACAO) {
+        if($this->type == self::TYPE_EXTENSAO_ORIENTACAO) {
             return $this->hasOne(ExtensaoOrientacao::class, 'id', 'tarefa_id');
         }
 
-        if($this->type === self::TYPE_EXTENSAO_OUTROS) {
+        if($this->type == self::TYPE_EXTENSAO_OUTROS) {
             return $this->hasOne(ExtensaoOutros::class, 'id', 'tarefa_id');
         }
         // - - - - - - - - - - 
 
         // Return Gestao Models
         // - - - - - - - - - - 
-        if($this->type === self::TYPE_GESTAO_COORDENACAO_LABORATORIOS_DIDATICOS) {
+        if($this->type == self::TYPE_GESTAO_COORDENACAO_LABORATORIOS_DIDATICOS) {
             return $this->hasOne(GestaoCoordenacaoLaboratoriosDidaticos::class, 'id', 'tarefa_id');
         }
 
-        if($this->type === self::TYPE_GESTAO_COORDENACAO_PROGRAMA_INSTITUCIONAL) {
+        if($this->type == self::TYPE_GESTAO_COORDENACAO_PROGRAMA_INSTITUCIONAL) {
             return $this->hasOne(GestaoCoordenacaoProgramaInstitucional::class, 'id', 'tarefa_id');
         }
 
-        if($this->type === self::TYPE_GESTAO_MEMBRO_CAMARAS) {
+        if($this->type == self::TYPE_GESTAO_MEMBRO_CAMARAS) {
             return $this->hasOne(GestaoMembroCamaras::class, 'id', 'tarefa_id');
         }
 
-        if($this->type === self::TYPE_GESTAO_MEMBRO_COMISSAO) {
+        if($this->type == self::TYPE_GESTAO_MEMBRO_COMISSAO) {
             return $this->hasOne(GestaoMembroComissao::class, 'id', 'tarefa_id');
         }
 
-        if($this->type === self::TYPE_GESTAO_MEMBRO_CONSELHO) {
+        if($this->type == self::TYPE_GESTAO_MEMBRO_CONSELHO) {
             return $this->hasOne(GestaoMembroConselho::class, 'id', 'tarefa_id');
         }
 
-        if($this->type === self::TYPE_GESTAO_MEMBRO_TITULAR_CONSELHO) {
+        if($this->type == self::TYPE_GESTAO_MEMBRO_TITULAR_CONSELHO) {
             return $this->hasOne(GestaoMembroTitularConselho::class, 'id', 'tarefa_id');
         }
 
-        if($this->type === self::TYPE_GESTAO_OUTROS) {
+        if($this->type == self::TYPE_GESTAO_OUTROS) {
             return $this->hasOne(GestaoOutros::class, 'id', 'tarefa_id');
         }
 
-        if($this->type === self::TYPE_GESTAO_REPRESENTANTE_UNIDADE_EDUCACAO) {
+        if($this->type == self::TYPE_GESTAO_REPRESENTANTE_UNIDADE_EDUCACAO) {
             return $this->hasOne(GestaoRepresentanteUnidadeEducacao::class, 'id', 'tarefa_id');
         }
         // - - - - - - - - - - 
@@ -166,9 +241,164 @@ class TaskTime extends Model
         return $this->hasOne(UserPad::class, 'id', 'user_pad_id');
     }
 
-    public static function listWeekDays($value) {
+    /**
+     * @return string
+     */
+    public function getCode() {
+        return $this->tarefa->cod_atividade;
+    }
+
+    /**
+     * @return string
+     */
+    public function getName() {
+        // Return Ensino Models
+        // - - - - - - - - - - 
+        if($this->type == self::TYPE_ENSINO_ATENDIMENTO_DISCENTE) {
+            return $this->tarefa->componente_curricular;
+        }
+
+        if($this->type == self::TYPE_ENSINO_AULA) {
+            return $this->tarefa->componente_curricular;
+        }
+
+        if($this->type == self::TYPE_ENSINO_COORDENACAO_REGENCIA) {
+            return $this->tarefa->componente_curricular;
+        }
+
+        if($this->type == self::TYPE_ENSINO_MEMBRO_DOCENTE) {
+            return $this->tarefa->nucleo;
+        }
+
+        if($this->type == self::TYPE_ENSINO_ORIENTACAO) {
+            return $this->tarefa->atividade;
+        }
+
+        if($this->type == self::TYPE_ENSINO_OUTROS) {
+            return $this->tarefa->atividade;
+        }
+
+        if($this->type == self::TYPE_ENSINO_PARTICIPACAO) {
+            return $this->tarefa->curso;
+        }
+
+        if($this->type == self::TYPE_ENSINO_PROJETO) {
+            return $this->tarefa->componente_curricular;
+        }
+
+        if($this->type == self::TYPE_ENSINO_SUPERVISAO) {
+            return $this->tarefa->atividade;
+        }
+        // - - - - - - - - - - 
+
+        // Return Pesquisa Models
+        // - - - - - - - - - - 
+        if($this->type == self::TYPE_PESQUISA_COORDENACAO) {
+            return $this->tarefa->titulo_projeto;
+        }
+
+        if($this->type == self::TYPE_PESQUISA_LIDERANCA) {
+            return $this->tarefa->grupo_pesquisa;
+        }
+
+        if($this->type == self::TYPE_PESQUISA_ORIENTACAO) {
+            return $this->tarefa->titulo_projeto;
+        }
+
+        if($this->type == self::TYPE_PESQUISA_OUTROS) {
+            return $this->tarefa->atividade;
+        }
+        // - - - - - - - - - - 
+
+        // Return Extensao Models
+        // - - - - - - - - - - 
+        if($this->type == self::TYPE_EXTENSAO_COORDENACAO) {
+            return $this->tarefa->titulo_projeto;
+        }
+
+        if($this->type == self::TYPE_EXTENSAO_ORIENTACAO) {
+            return $this->tarefa->titulo_projeto;
+        }
+
+        if($this->type == self::TYPE_EXTENSAO_OUTROS) {
+            return $this->tarefa->atividade;
+        }
+        // - - - - - - - - - - 
+
+        // Return Gestao Models
+        // - - - - - - - - - - 
+        if($this->type == self::TYPE_GESTAO_COORDENACAO_LABORATORIOS_DIDATICOS) {
+            return $this->tarefa->nome;
+        }
+
+        if($this->type == self::TYPE_GESTAO_COORDENACAO_PROGRAMA_INSTITUCIONAL) {
+            return $this->tarefa->nome;
+        }
+
+        if($this->type == self::TYPE_GESTAO_MEMBRO_CAMARAS) {
+            return $this->tarefa->nome;
+        }
+
+        if($this->type == self::TYPE_GESTAO_MEMBRO_COMISSAO) {
+            return $this->tarefa->nome;
+        }
+
+        if($this->type == self::TYPE_GESTAO_MEMBRO_CONSELHO) {
+            return $this->tarefa->nome;
+        }
+
+        if($this->type == self::TYPE_GESTAO_MEMBRO_TITULAR_CONSELHO) {
+            return $this->tarefa->nome;
+        }
+
+        if($this->type == self::TYPE_GESTAO_OUTROS) {
+            return $this->tarefa->atividade;
+        }
+
+        if($this->type == self::TYPE_GESTAO_REPRESENTANTE_UNIDADE_EDUCACAO) {
+            return $this->tarefa->nome;
+        }
+        // - - - - - - - - - - 
+    }
+
+    /**
+     * @return string
+     */
+    public function intervalTime($format = 'H:i:s') {
+
+        $startTime = DateTime::createFromFormat('H:i:s', $this->start_time);
+        
+        $endTime = DateTime::createFromFormat('H:i:s', $this->end_time);
+
+        $interval = $startTime->diff($endTime);
+
+        $dateTime = new DateTime('00:00');
+        $dateTime->add($interval); // Popular com Interval
+
+        return $dateTime->format($format);
+    }
+
+    /**
+     * STATIC METHODS
+     */
+
+    public static function listWeekDaysTable($value = null) {
+        $values = [
+            self::WEEK_HOUR             => "HORÁRIO",
+            self::WEEK_DAY_MONDAY       => "SEGUNDA-FEIRA",
+            self::WEEK_DAY_TUESDAY      => "TERÇA-FEIRA",
+            self::WEEK_DAY_WEDNESDAY    => "QUARTA-FEIRA",
+            self::WEEK_DAY_THURSDAY     => "QUINTA-FEIRA",
+            self::WEEK_DAY_FRIDAY       => "SEXTA-FEIRA",
+            self::WEEK_DAY_SATURDAY     => "SÁBADO",
+        ];
+
+        return $value != null ? $values[$value] : $values;
+    }
+
+    public static function listWeekDays($value = null) {
         $values = [
-            self::WEEK_DAY_SUNDAY       => "DOMINGO",
+            // self::WEEK_DAY_SUNDAY       => "DOMINGO",
             self::WEEK_DAY_MONDAY       => "SEGUNDA-FEIRA",
             self::WEEK_DAY_TUESDAY      => "TERÇA-FEIRA",
             self::WEEK_DAY_WEDNESDAY    => "QUARTA-FEIRA",
@@ -180,4 +410,234 @@ class TaskTime extends Model
         return $value != null ? $values[$value] : $values;
     }
 
+    public static function listTaskTypes($value = null) {
+        $values = [
+            
+            self::TYPE_ENSINO_AULA => '',
+            self::TYPE_ENSINO_COORDENACAO_REGENCIA => '',
+            self::TYPE_ENSINO_ORIENTACAO => '',
+            self::TYPE_ENSINO_SUPERVISAO => '',
+            self::TYPE_ENSINO_ATENDIMENTO_DISCENTE => '',
+            self::TYPE_ENSINO_PROJETO => '',
+            self::TYPE_ENSINO_PARTICIPACAO => '',
+            self::TYPE_ENSINO_MEMBRO_DOCENTE => '',
+            self::TYPE_ENSINO_OUTROS => '',
+
+            self::TYPE_PESQUISA_COORDENACAO => '',
+            self::TYPE_PESQUISA_ORIENTACAO => '',
+            self::TYPE_PESQUISA_LIDERANCA => '',
+            self::TYPE_PESQUISA_OUTROS => '',
+
+            self::TYPE_EXTENSAO_COORDENACAO => '',
+            self::TYPE_EXTENSAO_ORIENTACAO => '',
+            self::TYPE_EXTENSAO_OUTROS => '',
+
+            self::TYPE_GESTAO_COORDENACAO_LABORATORIOS_DIDATICOS => '',
+            self::TYPE_GESTAO_MEMBRO_CONSELHO => '',
+            self::TYPE_GESTAO_COORDENACAO_PROGRAMA_INSTITUCIONAL => '',
+            self::TYPE_GESTAO_MEMBRO_TITULAR_CONSELHO => '',
+            self::TYPE_GESTAO_MEMBRO_CAMARAS => '',
+            self::TYPE_GESTAO_REPRESENTANTE_UNIDADE_EDUCACAO => '',
+            self::TYPE_GESTAO_MEMBRO_COMISSAO => '',
+            self::TYPE_GESTAO_OUTROS => '',
+        ];
+
+        return $value != null ? $values[$value] : $values;
+    }
+
+    /** 
+     * @param $floatValue 
+     * @return string|time
+    */
+    public static function convertFloatToHour($floatValue) {
+
+        $percent = $floatValue * 100.0; // float to percent
+        $one_percent_from_hour = 0.6;   // 0.6 min
+        
+        $minutes = $one_percent_from_hour * $percent; // minutes
+        
+        // Criar um objeto DateTime com um intervalo de minutos
+        $interval = new DateInterval('PT' . $minutes . 'M');
+
+        // Criar um objeto DateTime base com 0 horas e 0 minutos
+        $dateTime = new DateTime('00:00');
+        $dateTime->add($interval); // Popular com Interval
+
+        return $dateTime->format('H:i:s');
+    }
+
+    /**
+     * Recebe e formata uma string para formato H:i
+     * Pode ser recebido uma hora completa H:i:s ou uma hora padrão H:i
+     * @return string|date
+     */
+    public static function traitHour(string|null $hour = "")
+    {
+        if(!empty($hour)) {
+            $hour_splited = explode(':', $hour );
+
+            $hour_h_i = "{$hour_splited[0]}:$hour_splited[1]";
+
+            return $hour_h_i;
+        }
+
+        return $hour;
+    }
+
+    /** 
+     * @param $taskTimes
+     * @return DateTime
+     */
+    public static function sumIntervalTimes(Collection $taskTimes) {
+
+        $sumDateTime = new DateTime("00:00:00");
+
+        foreach($taskTimes as $taskTime) {
+
+            $split_time = explode(":", $taskTime->intervalTime());
+            
+            $hours = $split_time[0];
+            $minutes = $split_time[1];
+            $seconds = $split_time[2];
+
+            $sumDateTime->modify("+{$hours} hours +{$minutes} minutes +{$seconds} seconds");
+        }
+
+        return $sumDateTime;
+    }
+
+    /** 
+     * @param DateTime $dateTimeX
+     * @param DateTime $dateTimeY
+     * @return DateTime
+     */
+    public static function sumDateTimes(DateTime $dateTimeX, DateTime $dateTimeY)
+    {
+        $time_x = $dateTimeX->format("H:i:s");
+        $time_y = $dateTimeY->format("H:i:s");
+
+        $newDateTime = new DateTime($time_x);
+
+        $split_time = explode(":", $time_y);
+        
+        $hours = $split_time[0];
+        $minutes = $split_time[1];
+        $seconds = $split_time[2];
+
+        $newDateTime->modify("+{$hours} hours +{$minutes} minutes +{$seconds} seconds");
+        
+        return $newDateTime;
+    }
+
+    /** @return mixed */
+    public static function tarefaByStatic($type, $tarefa_id)
+    {
+        // Return Ensino Models
+        // - - - - - - - - - - 
+        if($type == self::TYPE_ENSINO_ATENDIMENTO_DISCENTE) {
+            return EnsinoAtendimentoDiscente::find($tarefa_id);
+        }
+
+        if($type == self::TYPE_ENSINO_AULA) {
+            return EnsinoAula::find($tarefa_id);
+        }
+
+        if($type == self::TYPE_ENSINO_COORDENACAO_REGENCIA) {
+            return EnsinoCoordenacaoRegencia::find($tarefa_id);
+        }
+
+        if($type == self::TYPE_ENSINO_MEMBRO_DOCENTE) {
+            return EnsinoMembroDocente::find($tarefa_id);
+        }
+
+        if($type == self::TYPE_ENSINO_ORIENTACAO) {
+            return EnsinoOrientacao::find($tarefa_id);
+        }
+
+        if($type == self::TYPE_ENSINO_OUTROS) {
+            return EnsinoOutros::find($tarefa_id);
+        }
+
+        if($type == self::TYPE_ENSINO_PARTICIPACAO) {
+            return EnsinoParticipacao::find($tarefa_id);
+        }
+
+        if($type == self::TYPE_ENSINO_PROJETO) {
+            return EnsinoProjeto::find($tarefa_id);
+        }
+
+        if($type == self::TYPE_ENSINO_SUPERVISAO) {
+            return EnsinoSupervisao::find($tarefa_id);
+        }
+        // - - - - - - - - - - 
+
+        // Return Pesquisa Models
+        // - - - - - - - - - - 
+        if($type == self::TYPE_PESQUISA_COORDENACAO) {
+            return PesquisaCoordenacao::find($tarefa_id);
+        }
+
+        if($type == self::TYPE_PESQUISA_LIDERANCA) {
+            return PesquisaLideranca::find($tarefa_id);
+        }
+
+        if($type == self::TYPE_PESQUISA_ORIENTACAO) {
+            return PesquisaOrientacao::find($tarefa_id);
+        }
+
+        if($type == self::TYPE_PESQUISA_OUTROS) {
+            return PesquisaOutros::find($tarefa_id);
+        }
+        // - - - - - - - - - - 
+
+        // Return Extensao Models
+        // - - - - - - - - - - 
+        if($type == self::TYPE_EXTENSAO_COORDENACAO) {
+            return ExtensaoCoordenacao::find($tarefa_id);
+        }
+
+        if($type == self::TYPE_EXTENSAO_ORIENTACAO) {
+            return ExtensaoOrientacao::find($tarefa_id);
+        }
+
+        if($type == self::TYPE_EXTENSAO_OUTROS) {
+            return ExtensaoOutros::find($tarefa_id);
+        }
+        // - - - - - - - - - - 
+
+        // Return Gestao Models
+        // - - - - - - - - - - 
+        if($type == self::TYPE_GESTAO_COORDENACAO_LABORATORIOS_DIDATICOS) {
+            return GestaoCoordenacaoLaboratoriosDidaticos::find($tarefa_id);
+        }
+
+        if($type == self::TYPE_GESTAO_COORDENACAO_PROGRAMA_INSTITUCIONAL) {
+            return GestaoCoordenacaoProgramaInstitucional::find($tarefa_id);
+        }
+
+        if($type == self::TYPE_GESTAO_MEMBRO_CAMARAS) {
+            return GestaoMembroCamaras::find($tarefa_id);
+        }
+
+        if($type == self::TYPE_GESTAO_MEMBRO_COMISSAO) {
+            return GestaoMembroComissao::find($tarefa_id);
+        }
+
+        if($type == self::TYPE_GESTAO_MEMBRO_CONSELHO) {
+            return GestaoMembroConselho::find($tarefa_id);
+        }
+
+        if($type == self::TYPE_GESTAO_MEMBRO_TITULAR_CONSELHO) {
+            return GestaoMembroTitularConselho::find($tarefa_id);
+        }
+
+        if($type == self::TYPE_GESTAO_OUTROS) {
+            return GestaoOutros::find($tarefa_id);
+        }
+
+        if($type == self::TYPE_GESTAO_REPRESENTANTE_UNIDADE_EDUCACAO) {
+            return GestaoRepresentanteUnidadeEducacao::find($tarefa_id);
+        }
+        // - - - - - - - - - - 
+    }
 }
diff --git a/app/Models/Util/MenuItemsAvaliador.php b/app/Models/Util/MenuItemsAvaliador.php
index 8d443c019113b10523240b1a77205151de90d568..6f8a1d1227a022b792615a40ed73f3e0d97e429c 100644
--- a/app/Models/Util/MenuItemsAvaliador.php
+++ b/app/Models/Util/MenuItemsAvaliador.php
@@ -8,4 +8,5 @@ class MenuItemsAvaliador
     const HOME = 0;
     const PADs = 1;
     const REPORT = 2;
+    const TASK_TIME = 3;
 }
diff --git a/app/Rules/ValidationLimitTime.php b/app/Rules/ValidationLimitTime.php
new file mode 100644
index 0000000000000000000000000000000000000000..efa151b4fcf1874deb9ae43b021cc509a75d9dc6
--- /dev/null
+++ b/app/Rules/ValidationLimitTime.php
@@ -0,0 +1,162 @@
+<?php
+
+namespace App\Rules;
+
+use App\Models\TaskTime;
+use DateTime;
+use Illuminate\Contracts\Validation\Rule;
+use Illuminate\Database\Eloquent\Collection;
+
+class ValidationLimitTime implements Rule
+{   
+    /** @var string|integer */
+    protected $id;
+
+    /** @var string|integer */
+    protected $user_pad_id;
+
+    /** @var string|integer */
+    protected $tarefa_id;
+
+    /** @var string|integer */
+    protected $type;
+
+    /** @var string|date */
+    protected $start_time;
+
+    /** @var string|date */
+    protected $end_time;
+
+    /** @var string */
+    protected $limit_hours;
+
+    /** @var DateInterval */
+    protected $outLineTime;
+    
+    /** @var mixed */
+    protected $task;
+
+    /** @var TaskTime */
+    protected $taskTime;
+    
+    /** @var Collection */
+    protected $taskTimes;
+
+    /**
+     * Create a new rule instance.
+     *
+     * @param array $attributes
+     * @return void
+     * 
+     * Example
+     * $attributes = ['user_pad_id' => $user_pad_id, 'tarefa_id' => $tarefa_id, 'type' => $type, 'start_time' => $start_time, 'end_time' => $end_time]
+     */
+    public function __construct($attributes = [])
+    {   
+        $this->id           = $attributes['id'];
+        $this->user_pad_id  = $attributes['user_pad_id'];
+        $this->tarefa_id    = $attributes['tarefa_id'];
+        $this->type         = $attributes['type'];
+        $this->start_time   = $attributes['start_time'];
+        $this->end_time     = $attributes['end_time'];
+
+        $this->task = TaskTime::tarefaByStatic($this->type, $this->tarefa_id);
+
+        $this->limit_hours = TaskTime::convertFloatToHour($this->task->ch_semanal);
+
+        $this->taskTimes = $this->getTaskTimes();
+
+        $this->taskTime = $this->createTaskTime();
+    }
+
+    /**
+     * Determine if the validation rule passes.
+     *
+     * @param  string  $attribute
+     * @param  mixed  $value
+     * @return bool
+     */
+    public function passes($attribute, $value)
+    {
+        $limitDateTime = new DateTime($this->limit_hours);
+        $sumDateTime = TaskTime::sumIntervalTimes($this->taskTimes);
+
+        $newDateTime = new DateTime($this->taskTime->intervalTime());
+
+        $totalDateTime = TaskTime::sumDateTimes($sumDateTime, $newDateTime);
+
+        $this->outLineTime = $totalDateTime->diff($limitDateTime);
+
+        // dd([
+        //     'limite' => $limitDateTime,
+        //     'total' => $totalDateTime,
+        //     'interval' => $this->outLineTime
+        // ]);
+
+        return $limitDateTime >= $totalDateTime;
+    }
+
+    /**
+     * Get the validation error message.
+     *
+     * @return string
+     */
+    public function message()
+    {   
+        $limitDateTime = new DateTime($this->limit_hours);
+
+        $sumDateTime = TaskTime::sumIntervalTimes($this->taskTimes);
+
+        $diffInterval = $sumDateTime->diff($limitDateTime);
+
+        $dateTime = new DateTime('00:00:00');
+
+        $dateTime->add($diffInterval);
+
+        $diff_time = $dateTime->format('H:i');
+
+        $taskTime = $this->createTaskTime();
+        $interval_time = $taskTime->intervalTime('H:i');
+
+        $msgError = "Carga horária disponível restante: {$diff_time} hora(s)!";
+        $msgError .= $diff_time == "00:00"? " Atividade Indisponível!" : " Intervalo entre inicio e fim : {$interval_time} hora(s)!";
+
+        return $msgError;
+    }
+
+    /**
+     * @return App\Models\TaskTime[]
+     */
+    public function getTaskTimes()
+    {
+        $id = $this->id;
+        
+        return (
+            TaskTime::where('user_pad_id', '=', $this->user_pad_id)
+                    ->where('tarefa_id', '=', $this->tarefa_id)
+                    ->where('type', '=', $this->type)
+                    ->get()
+                    ->reject(function(TaskTime $model, int $key) use ($id) {
+                        return $model->id == $id;
+                    })
+        );
+    }
+
+    /**
+     * @return App\Models\TaskTime
+     */
+    public function createTaskTime()
+    {
+        $model = new TaskTime();    
+        $model->user_pad_id = $this->user_pad_id;
+        $model->tarefa_id = $this->tarefa_id;
+        $model->type = $this->type;
+        $model->start_time = $this->start_time;
+        $model->end_time = $this->end_time;
+
+        $model->start_time = "{$model->start_time}:00";
+        $model->end_time = "{$model->end_time}:00";
+        
+        return $model;
+    }
+}
diff --git a/resources/views/avaliador-task-time/card_horario.blade.php b/resources/views/avaliador-task-time/card_horario.blade.php
new file mode 100644
index 0000000000000000000000000000000000000000..020965cc3c0bbdbad3e6983e35653fa8fec32cb5
--- /dev/null
+++ b/resources/views/avaliador-task-time/card_horario.blade.php
@@ -0,0 +1,8 @@
+<div class="card mx-2" style="width: 12rem;">
+    <div class="card-body">
+        <h3 class="text-center"> <i class="bi bi-clock-fill"></i> </h3>
+        <h5 class="text-center"> PAD: {{ $userPad->pad->nome }} </h4>
+        <h5 class="text-center"> Status: {{ $userPad->pad->statusAsString() }} </h4>
+        <a class="stretched-link" href="{{ route('pad_relatório', ['id' => $userPad->id]) }}"></a>
+    </div>
+</div>
diff --git a/resources/views/avaliador-task-time/index.blade.php b/resources/views/avaliador-task-time/index.blade.php
new file mode 100644
index 0000000000000000000000000000000000000000..084e021cf2b693e7fa306d34fece8b1cce445595
--- /dev/null
+++ b/resources/views/avaliador-task-time/index.blade.php
@@ -0,0 +1,34 @@
+@extends('layouts.main')
+
+@section('header')
+    @include('layouts.header', [
+        'user' => Auth::user(),
+    ])
+@endsection
+
+@section('nav')
+    @include('layouts.navigation', ['menu' => $index_menu])
+@endsection
+@section('title', 'Horários')
+@section('body')
+        <div class="tab-content">
+            
+            <div class="tab-pane active" id="home" role="tabpanel" aria-labelledby="home-tab">
+                <div class="d-flex justify-content-between flex-wrap flex-md-nowrap align-items-center pt-3 pb-2 mb-3 border-bottom">
+                    <h1 class="h2">Horários</h1>
+                </div>
+                <div class="d-flex justify-content-between flex-wrap flex-md-nowrap align-items-center pt-3 pb-2 mb-3">
+                    <h3> <i class="bi bi-clock-fill"></i> Horários Disponíveis </h3>
+                </div>
+                <div class="d-flex">
+                    {{-- @foreach($userPads as $userPad)
+                        @include('avaliador-task-time.card_horario', ['userPad' => $userPad])
+                    @endforeach --}}
+                </div>
+            </div>
+
+
+        </div>
+
+
+@endsection
\ No newline at end of file
diff --git a/resources/views/components/buttons/btn-delete-by-alert.blade.php b/resources/views/components/buttons/btn-delete-by-alert.blade.php
new file mode 100644
index 0000000000000000000000000000000000000000..5fe980ea70d4919e787254afb9fe80f4a84cd15c
--- /dev/null
+++ b/resources/views/components/buttons/btn-delete-by-alert.blade.php
@@ -0,0 +1,24 @@
+{{-- 
+  @include('components.buttons.btn-delete-by-alert', [
+    '_id' => '',
+    '_class' => '',
+    '_route' => route('')
+  ])
+--}}
+
+<!-- Button trigger alert -->
+<button type="button" id="{{ $_id }}" class="btn btn-danger {{$_class}}">
+    <i class="bi bi-trash"></i>
+</button>
+
+<script>
+  $('.{{$_class}}').click(function(e)
+  {
+      const _id = $(this).attr('id')
+      const is_delete = confirm('Você tem certeza que deseja excluir esse item?')
+
+      if(is_delete) {
+        $('#form-delete-'+_id).submit()
+      }
+  })
+</script>
\ No newline at end of file
diff --git a/resources/views/components/buttons/btn-show-modal.blade.php b/resources/views/components/buttons/btn-show-modal.blade.php
new file mode 100644
index 0000000000000000000000000000000000000000..06ecbadd9d8e4b427e31e4e7708edbf3921eb8fc
--- /dev/null
+++ b/resources/views/components/buttons/btn-show-modal.blade.php
@@ -0,0 +1,25 @@
+{{--
+    @include('components.buttons.btn-show-modal', [
+        '_id' => '',
+        '_icon' => '',
+        '_class' => '',
+        '_content' => '',
+        '_target_class' => '',
+    ])
+--}}
+
+@php
+    $_id = !isset($_id) ? '' : $_id;
+
+    $_icon = !isset($_icon) ? '' : "bi bi-{$_icon}";
+
+    $_class = !isset($_class) ? "btn {$_target_class}" : "btn {$_class} {$_target_class}";
+
+    $_content = !isset($_content) ? '' : $_content;
+@endphp
+
+<div class="btn-show-modal">
+    <button type="button" id="{{$_id}}" class="{{$_class}}">
+        <i class="{{$_icon}}"></i> {{$_content}}
+    </button>
+</div>
\ No newline at end of file
diff --git a/resources/views/components/cards/relatorio_pad.blade.php b/resources/views/components/cards/relatorio_pad.blade.php
index 8fdc35ab4cba4fb6a02ffd0bfd9a4b6fa46d691e..50c2da77c6a1da40a7952ff1f07d1a742dcd62ac 100644
--- a/resources/views/components/cards/relatorio_pad.blade.php
+++ b/resources/views/components/cards/relatorio_pad.blade.php
@@ -1,7 +1,8 @@
 <div class="card mx-2" style="width: 12rem;">
     <div class="card-body">
-        <h3 class="text-center"> <i class="bi bi-file-bar-graph-fill"></i> </h3>
-        <h5 class="text-center"> PDA: {{ $userPad->pad->nome }} </h4>
+        <h3 class="text-center"> <i class="bi bi-file-earmark-word-fill"></i> </h3>
+        <h5 class="text-center"> PAD: {{ $userPad->pad->nome }} </h4>
+
         <h5 class="text-center"> Status: {{ $userPad->pad->statusAsString() }} </h4>
         <a class="stretched-link" href="{{ route('pad_relatório', ['id' => $userPad->id]) }}"></a>
     </div>
diff --git a/resources/views/layouts/user-navigation/navigation_avaliador.blade.php b/resources/views/layouts/user-navigation/navigation_avaliador.blade.php
index fac25d3199e111e80b80abf7ceb01c0fda2bfc36..831fd56be05600664db990c9694415e01f8a48ab 100644
--- a/resources/views/layouts/user-navigation/navigation_avaliador.blade.php
+++ b/resources/views/layouts/user-navigation/navigation_avaliador.blade.php
@@ -7,6 +7,7 @@
 
     $home_active = $index_menu === MenuItemsAvaliador::HOME ? 'active' : '';
     $report_active = $index_menu === MenuItemsAvaliador::REPORT ? 'active' : '';    
+    $task_time_active = $index_menu === MenuItemsAvaliador::TASK_TIME ? 'active' : '';    
 @endphp
 
 <!-- SidebarMenu :  Vertical Options -->
@@ -19,10 +20,12 @@
     </li>
     <li class="nav-item">
         <a href="{{ route('avaliador_relatorio') }}" class="custom-nav-link {{ $report_active }}">
-            <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-file-bar-graph-fill" viewBox="0 0 16 16">
-                <path d="M12 0H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2zm-2 11.5v-6a.5.5 0 0 1 .5-.5h1a.5.5 0 0 1 .5.5v6a.5.5 0 0 1-.5.5h-1a.5.5 0 0 1-.5-.5zm-2.5.5a.5.5 0 0 1-.5-.5v-4a.5.5 0 0 1 .5-.5h1a.5.5 0 0 1 .5.5v4a.5.5 0 0 1-.5.5h-1zm-3 0a.5.5 0 0 1-.5-.5v-2a.5.5 0 0 1 .5-.5h1a.5.5 0 0 1 .5.5v2a.5.5 0 0 1-.5.5h-1z"/>
-            </svg>
-            Relatórios
+            <i class="bi bi-file-earmark-word-fill"></i> Relatórios
         </a>
     </li>
+    {{-- <li class="nav-item">
+        <a href="{{ route('avaliador_task_time_index') }}" class="custom-nav-link {{ $task_time_active }}">
+            <i class="bi bi-clock-fill"></i> Horários
+        </a>
+    </li> --}}
 </ul>
\ No newline at end of file
diff --git a/resources/views/pad/anexo/_form.blade.php b/resources/views/pad/anexo/_form.blade.php
index d4d7a80a911a9a25abeec6494bf4d0824f4e7707..f8f0c417c070072a00fbad837de86f31307cc637 100644
--- a/resources/views/pad/anexo/_form.blade.php
+++ b/resources/views/pad/anexo/_form.blade.php
@@ -177,9 +177,9 @@
     $yes = YesOrNo::YES;
     $no = YesOrNo::NO;
 @endphp
-
 <script type="text/javascript">
 
+
     /** Interpolação: PHP => JS*/
     const yes = "{{ $yes }}"
     const no = "{{ $no }}"
diff --git a/resources/views/pad/components/scripts/dimensao/ensino/show_modal.blade.php b/resources/views/pad/components/scripts/dimensao/ensino/show_modal.blade.php
index c38a38bafaaf5059ba8983b28bddfc5d3cc1265e..e953f065e1228e615aec2b98af74dea99cda3197 100644
--- a/resources/views/pad/components/scripts/dimensao/ensino/show_modal.blade.php
+++ b/resources/views/pad/components/scripts/dimensao/ensino/show_modal.blade.php
@@ -6,7 +6,6 @@
     ])
 --}}
 
-
 <script type="text/javascript">
     $('.{{ $btn_class }}').click(function(e) {
 
diff --git a/resources/views/pad/teacher/view.blade.php b/resources/views/pad/teacher/view.blade.php
index a71bc4efcccb90be92c482acc43f64a9df65a3e9..3c97e230a953d7f416e5aeb746b079540870054e 100644
--- a/resources/views/pad/teacher/view.blade.php
+++ b/resources/views/pad/teacher/view.blade.php
@@ -71,6 +71,14 @@
         </div>
     </div>
 
+    <div class="card mx-2" style="width: 10rem;">
+        <div class="card-body">
+            <h2 class="text-center"> <i class="bi bi-clock"></i> </h2>
+            <h3 class="text-center">Horário</h3>
+            <a class="stretched-link btn-pad-horario" href="{{ route('TaskTimeIndex', ['user_pad_id' => $user_pad_id]) }}"></a>
+        </div>
+    </div>
+
     <div class="card mx-2" style="width: 10rem;">
         <div class="card-body">
             <h2 class="text-center"> <i class="bi bi-exclamation-circle-fill"></i> </h2>
diff --git a/resources/views/task-time/create.blade.php b/resources/views/task-time/create.blade.php
new file mode 100644
index 0000000000000000000000000000000000000000..2a7d96e914f964f24d2e09793aa82d0a8018f6e9
--- /dev/null
+++ b/resources/views/task-time/create.blade.php
@@ -0,0 +1,171 @@
+@php
+    use App\Models\TaskTime;
+@endphp
+
+<form id="task-time-form" action="{{ route('TaskTimeSave') }}" method="post">
+    @csrf
+    @method('POST')
+
+    <div class="row">
+
+        <input type="hidden" id="user_pad_id" name="user_pad_id" value="{{ $user_pad_id }}">
+
+        <input type="hidden" id="tarefa_id" name="tarefa_id" value="">
+
+        <input type="hidden" id="type" name="type" value="">
+
+        <input type="hidden" id="id" name="id" value="">
+
+        <div class="mb-4 col-sm-2">
+            <div class="">
+                <label class="form-label" for="cod_atividade">Cód. Atividade</label>
+                <input class="form-control @error('cod_atividade') is-invalid @enderror ajax-errors" type="text" name="cod_atividade" id="cod_atividade" readonly>
+            </div>
+
+            @include('components.divs.errors', [
+                'field' => 'cod_atividade_create'
+            ])
+        </div>
+
+        <div class="col-sm-10">
+            <div class="mt-3">
+                <label for="weekday">Dia da Semana</label>
+                <select name="weekday" id="weekday" class="form-select @error('weekday') is-invalid @enderror ajax-errors">
+                    @foreach(TaskTime::listWeekDays() as $id => $text)
+                        <option value="{{$id}}">{{$text}}</option>
+                    @endforeach
+                </select>
+
+                @include('components.divs.errors', [
+                    'field' => 'weekday_create'
+                ])
+            </div>
+        </div>
+
+        <div class="col-sm-12">
+            <div class="">
+                <label for="slct_tarefa_id">Atividade</label>
+                <select name="slct_tarefa_id" id="slct_tarefa_id" class="form-select @error('slct_tarefa_id') is-invalid @enderror ajax-errors">
+                </select>
+            </div>
+
+            @include('components.divs.errors', [
+                'field' => 'slct_tarefa_id_create'
+            ])
+        </div>
+
+        <div class="col-sm-6">
+            <div class="mt-3">
+                <label class="form-label" for="start_time">Horário Inicial</label>
+                <input type="time" min="07:30" max="21:15" name="start_time" id="start_time" class="form-control @error('start_time') is-invalid @enderror ajax-errors" >
+                
+                @include('components.divs.errors', [
+                    'field' => 'start_time_create',
+                ])
+            </div>
+        </div>
+
+        <div class="col-sm-6">
+            <div class="mt-3">
+                <label class="form-label" for="end_time">Horário Final</label>
+                <input type="time" min="07:30" max="21:15" name="end_time" id="end_time" class="form-control @error('end_time') is-invalid @enderror ajax-errors" >
+                
+                @include('components.divs.errors', [
+                    'field' => 'end_time_create',
+                ])
+            </div>
+        </div>
+
+    </div>
+
+    <div class="mt-1 text-end">
+        <div class="modal-footer">
+            @include('components.buttons.btn-save', [
+                'id' => 'btn_submit',
+                'content' => 'Cadastrar',
+            ])
+
+            @include('components.buttons.btn-close_modal')
+        </div>
+    </div>
+
+</form>
+
+@include('pad.components.scripts.ajaxValidation', [
+    'btn_submit_id' => 'btn_submit',
+    'form_id' => 'task-time-form',
+    'route' => route('TaskTimeValidation'),
+    'form_type' => 'create',
+])
+
+<script type="text/javascript">
+
+    $('#weekday').select2(
+    {   
+        allowClear: true,
+        placeholder: 'Dia da Semana',
+        dropdownParent: $('#modal')
+    })
+
+    $('#slct_tarefa_id').select2(
+    {
+        allowClear: true,
+        placeholder: 'Tarefa',
+        language: {
+            noResults: function() {
+                return "Resultados não Encontrados";
+            }
+        },
+        ajax: {
+            url: '{{ route("TaskSearch") }}',
+            data: function(params) {
+                return {
+                    q: params.term,
+                    user_pad_id : {{$user_pad_id}}
+                }
+            },
+            dataType: 'json'
+        },
+        dropdownParent: $('#modal')
+    })
+
+    $('#slct_tarefa_id').on('change', function(e)
+    {
+        const type = $('#type')
+        const tarefa_id = $('#tarefa_id')
+
+        $('#cod_atividade').val('')
+
+        if($(this).val()) {
+            const value = $(this).val()
+            const split_data = value.split('|')
+
+            const split_tarefa_id = split_data[0].split('_')
+            const split_type = split_data[1].split('_')
+
+            const _tarefa_id = split_tarefa_id[1]
+            const _type = split_type[1]
+
+            type.val(_type)
+            tarefa_id.val(_tarefa_id)
+
+            $.ajax({
+                url: '{{ route("TaskTimeSearchTask") }}',
+                type: 'GET',
+                data: {
+                    tarefa_id: _tarefa_id,
+                    type: _type
+                },
+                dataType: 'json',
+                success: (response) => {
+                    const cod_atividade = response.task.cod_atividade
+                    $('#cod_atividade').val(cod_atividade)
+                },
+                error: (xhr, status, error) => {
+                    console.error('Erro na requisição!');
+                }
+            });   
+        }
+    })
+
+</script>
diff --git a/resources/views/task-time/index.blade.php b/resources/views/task-time/index.blade.php
new file mode 100644
index 0000000000000000000000000000000000000000..08de9e3fa6ef012f727b0a46d677196053bea9aa
--- /dev/null
+++ b/resources/views/task-time/index.blade.php
@@ -0,0 +1,157 @@
+@extends('layouts.main')
+
+@section('title', 'Início')
+
+@section('header')
+    @include('layouts.header', [
+        'user' => Auth::user(),
+    ])
+@endsection
+
+@section('nav')
+    @include('layouts.navigation', ['menu' => $menu])
+@endsection
+
+@section('body')
+
+<div class="container">
+
+    @include('components.alerts')
+
+    @include('components.buttons.btn-show-modal', [
+        '_class' => 'btn-success',
+        '_content' => 'Cadastrar',
+        '_target_class' => 'task-time-create',
+    ])
+
+    @php
+        use App\Models\TaskTime;
+
+        // $hours = ['07:30', '08:20', '09:10', '10:00', '10:50', '11:40', '12:30', '13:30', '14:30', '15:30', '16:30', '17:30', '19:00', '19:45', '20:30', '21:15'];
+
+        $rangeHours = [
+            ['07:30', '08:20'],
+            ['08:20', '09:10'],
+            ['09:10', '10:00'],
+            ['10:00', '10:50'],
+            ['10:50', '11:40'],
+            ['11:40', '12:30'],
+            ['12:30', '13:30'],
+            ['13:30', '14:30'],
+            ['14:30', '15:30'],
+            ['15:30', '16:30'],
+            ['16:30', '17:30'],
+            ['17:30', '19:00'],
+            ['19:00', '19:45'],
+            ['19:45', '20:30'],
+            ['20:30', '21:15'],
+            ['21:15', '21:15'],
+        ];
+
+        $calendar = [];
+
+        $row = [];
+
+        foreach ($rangeHours as $rangeHour)
+        {   
+            $start_time = $rangeHour[0];
+            $end_time = $rangeHour[1];
+
+            $row[0] = $start_time;
+
+            foreach (array_keys(TaskTime::listWeekDays()) as $weekday)
+            {   
+                $row[$weekday] = 
+                    TaskTime::where('user_pad_id', '=', $user_pad_id)
+                            ->where('weekday', '=', $weekday)
+                            ->where(function($query) use ($rangeHour) {
+                                $query->orWhereBetween('start_time', $rangeHour)->orWhereBetween('end_time', $rangeHour);
+                            })->first();
+                
+                $row[$weekday] = $row[$weekday] ? $row[$weekday] : '';
+            }
+
+            $calendar[] = $row;
+        }
+    @endphp
+
+    <div class="my-4">
+
+        <table class="table table-hover">
+            <thead>
+                <tr>
+                    @foreach(TaskTime::listWeekDaysTable() as $key => $weekday)
+                        <th scope="col">{{$weekday}}</th>
+                    @endforeach
+                </tr>
+            </thead>
+            <tbody>
+                @foreach($calendar as $rowHour)
+                    <tr>
+                    @foreach ($rowHour as $model)
+
+                        @if(gettype($model) == 'string')
+                            <th scope="col">{{ $model }}</th>
+                        @endif
+
+                        @if(gettype($model) == 'object')
+                            <td>
+                                <a href="#modal" class="btn btn-edit_task" id="{{ $model->id }}">
+                                    {{ "{$model->getCode()} : {$model->getName()}" }}
+                                </a>
+                            </td>
+                        @endif
+
+                    @endforeach
+                    </tr>
+                @endforeach
+            </tbody>
+          </table>
+    </div>
+
+    @include('components.modal', ['size' => 'modal-lg', 'header' => ''])
+
+</div>
+
+@endsection
+
+@section('scripts')
+
+    @include('pad.components.scripts.dimensao.ensino.show_modal', [
+        'modal_id' => 'modal',
+        'route' => route('TaskTimeCreate', ['user_pad_id' => $user_pad_id]),
+        'btn_class' => 'task-time-create',
+    ])
+
+    @include('pad.components.scripts.dimensao.ensino.show_modal', [
+        'modal_id' => 'modal',
+        'route' => route('TaskTimeEdit'),
+        'btn_class' => 'btn-edit_task',
+    ])
+
+@endsection
+
+{{-- @include('components.buttons.btn-edit', [
+    'route' => route('TaskTimeEdit', ['id' => $model->id])
+])
+
+@include('components.buttons.btn-delete', [
+    'id' => $model->id,
+    'route' => route('TaskTimeDelete', ['id' => $model->id])
+]) --}}
+
+{{-- @foreach($listTaskTime as $key => $taskTimes)
+<tr>
+    @foreach($taskTimes as $model)
+        
+            @if(gettype($model) == 'string')
+                <th>{{ $model }}</th>
+            @endif
+                
+            @if(gettype($model) == 'object')
+                
+            @endif
+        
+    @endforeach
+</tr>
+@endforeach --}}
\ No newline at end of file
diff --git a/resources/views/task-time/update.blade.php b/resources/views/task-time/update.blade.php
new file mode 100644
index 0000000000000000000000000000000000000000..f1c19f60956650b2b525d825f6cfe35ba1746a47
--- /dev/null
+++ b/resources/views/task-time/update.blade.php
@@ -0,0 +1,192 @@
+@php
+    use App\Models\TaskTime;
+
+    /**
+     * @var App\Models\TaskTime $model
+    */
+@endphp
+
+<form id="form-delete-{{$model->id}}" action="{{ route('TaskTimeDelete', ['id' => $model->id]) }}" method="post">
+    @method('DELETE')
+    @csrf
+</form>
+
+<form id="task-time-update-form" action="{{ route('TaskTimeUpdate', ['id' => $model->id]) }}" method="post">
+    @csrf
+    @method('POST')
+
+    <div class="row">
+
+        <input type="hidden" id="user_pad_id" name="user_pad_id" value="{{ $model->user_pad_id }}">
+
+        <input type="hidden" id="tarefa_id" name="tarefa_id" value="{{ $model->tarefa_id }}">
+
+        <input type="hidden" id="type" name="type" value="{{ $model->type }}">´
+
+        <input type="hidden" id="id" name="id" value="{{ $model->id }}">
+
+        <div class="mb-4 col-sm-2">
+            <div class="">
+                <label class="form-label" for="cod_atividade">Cód. Atividade</label>
+                <input type="text" id="cod_atividade" name="cod_atividade" value="{{ $model->tarefa->cod_atividade }}" readonly class="form-control @error('cod_atividade') is-invalid @enderror ajax-errors">
+            </div>
+
+            @include('components.divs.errors', [
+                'field' => 'cod_atividade_update'
+            ])
+        </div>
+
+        <div class="col-sm-10">
+            <div class="mt-3">
+                <label for="weekday">Dia da Semana</label>
+                <select name="weekday" id="weekday" class="form-select @error('weekday') is-invalid @enderror ajax-errors">
+                    @foreach(TaskTime::listWeekDays() as $id => $text)
+                        @if( $model->weekday == $id)
+                            <option selected value="{{$id}}">{{$text}}</option>
+                        @else
+                            <option value="{{$id}}">{{$text}}</option>
+                        @endif
+                    @endforeach
+                </select>
+
+                @include('components.divs.errors', [
+                    'field' => 'weekday_update'
+                ])
+            </div>
+        </div>
+
+        <div class="col-sm-12">
+            <div class="">
+                <label for="slct_tarefa_id">Atividade</label>
+                <select name="slct_tarefa_id" id="slct_tarefa_id" class="form-select @error('slct_tarefa_id') is-invalid @enderror ajax-errors">
+                    <option selected value="{{$model->tarefa_id}}">{{$model->getName()}}</option>
+                </select>
+            </div>
+
+            @include('components.divs.errors', [
+                'field' => 'slct_tarefa_id'
+            ])
+        </div>
+
+        <div class="col-sm-6">
+            <div class="mt-3">
+                <label class="form-label" for="start_time">Horário Inicial</label>
+                <input type="time" name="start_time" id="start_time" value="{{$model->start_time}}" class="form-control @error('start_time') is-invalid @enderror ajax-errors" >
+                
+                @include('components.divs.errors', [
+                    'field' => 'start_time_update',
+                ])
+            </div>
+        </div>
+
+        <div class="col-sm-6">
+            <div class="mt-3">
+                <label class="form-label" for="end_time">Horário Final</label>
+                <input type="time" name="end_time" id="end_time" value="{{$model->end_time}}" class="form-control @error('end_time') is-invalid @enderror ajax-errors" >
+                
+                @include('components.divs.errors', [
+                    'field' => 'end_time_update',
+                ])
+            </div>
+        </div>
+    </div>
+    
+    <div class="mt-4">
+        <div class="modal-footer">
+            <div class="text-start">
+                @include('components.buttons.btn-delete-by-alert', [
+                    '_id' => $model->id,
+                    '_class' => "delete_task_time",
+                ])
+            </div>
+            <div class="text-end">
+                @include('components.buttons.btn-save', [
+                    'id' => 'btn_submit',
+                    'content' => 'Atualizar',
+                ])
+
+                @include('components.buttons.btn-close_modal')
+            </div>
+        </div>
+    </div>
+
+</form>
+
+@include('pad.components.scripts.ajaxValidation', [
+    'btn_submit_id' => 'btn_submit',
+    'form_id' => 'task-time-update-form',
+    'route' => route('TaskTimeValidation'),
+    'form_type' => 'update',
+])
+
+<script type="text/javascript">
+
+    $('#weekday').select2(
+    {   
+        allowClear: true,
+        placeholder: 'Dia da Semana',
+        dropdownParent: $('#modal')
+    })
+
+    $('#slct_tarefa_id').select2(
+    {
+        allowClear: true,
+        placeholder: 'Tarefa',
+        language: {
+            noResults: function() {
+                return "Resultados não Encontrados";
+            }
+        },
+        ajax: {
+            url: '{{ route("TaskSearch") }}',
+            data: function(params) {
+                return {
+                    q: params.term,
+                    user_pad_id : {{$model->user_pad_id}}
+                }
+            },
+            dataType: 'json'
+        },
+        dropdownParent: $('#modal')
+    })
+
+    $('#slct_tarefa_id').on('change', function(e)
+    {   
+        const type = $('#type')
+        const tarefa_id = $('#tarefa_id')
+
+        $('#cod_atividade').val('')
+
+        if($(this).val()) {
+            const value = $(this).val()
+            const split_data = value.split('|')
+
+            const split_tarefa_id = split_data[0].split('_')
+            const split_type = split_data[1].split('_')
+
+            const _tarefa_id = split_tarefa_id[1]
+            const _type = split_type[1]
+
+            type.val(_type)
+            tarefa_id.val(_tarefa_id)
+
+            $.ajax({
+                url: '{{ route("TaskTimeSearchTask") }}',
+                type: 'GET',
+                data: {
+                    tarefa_id: _tarefa_id,
+                    type: _type
+                },
+                dataType: 'json',
+                success: (response) => {
+                    const cod_atividade = response.task.cod_atividade
+                    $('#cod_atividade').val(cod_atividade)
+                },
+                error: (xhr, status, error) => {
+                    console.error('Erro na requisição!');
+                }
+            });   
+        }
+    })
+
+</script>
diff --git a/routes/Task.php b/routes/Task.php
new file mode 100644
index 0000000000000000000000000000000000000000..dd14d7065f87c3257b5c7d3bceec967af8eda8c6
--- /dev/null
+++ b/routes/Task.php
@@ -0,0 +1,9 @@
+<?php
+
+use App\Http\Controllers\TaskController;
+use Illuminate\Support\Facades\Route;
+
+Route::prefix('/tarefa/geral')->group(function () {
+    Route::get('/search', [TaskController::class, 'search'])->name('TaskSearch');
+    Route::get('/search-by-id', [TaskController::class, 'searchById'])->name('TaskSearchById');
+});
\ No newline at end of file
diff --git a/routes/TaskTime.php b/routes/TaskTime.php
new file mode 100644
index 0000000000000000000000000000000000000000..eb560106530cf44b9c0895abb043c152c7e7cb27
--- /dev/null
+++ b/routes/TaskTime.php
@@ -0,0 +1,15 @@
+<?php
+
+use App\Http\Controllers\TaskTimeController;
+use Illuminate\Support\Facades\Route;
+
+Route::prefix('/tarefa/horario')->group(function () {
+    Route::get('/index/{user_pad_id}', [TaskTimeController::class, 'index'])->name('TaskTimeIndex');
+    Route::get('/create/{user_pad_id}', [TaskTimeController::class, 'create'])->name('TaskTimeCreate');
+    Route::post('/save', [TaskTimeController::class, 'save'])->name('TaskTimeSave');
+    Route::get('/edit/{id?}', [TaskTimeController::class, 'edit'])->name('TaskTimeEdit');
+    Route::post('/update/{id}', [TaskTimeController::class, 'update'])->name('TaskTimeUpdate');
+    Route::delete('/delete/{id}', [TaskTimeController::class, 'delete'])->name('TaskTimeDelete');
+    Route::get('/search-task', [TaskTimeController::class, 'searchTask'])->name('TaskTimeSearchTask');
+    Route::post('/validation', [TaskTimeController::class, 'ajaxValidation'])->name('TaskTimeValidation');
+});
diff --git a/routes/avaliador.php b/routes/avaliador.php
new file mode 100644
index 0000000000000000000000000000000000000000..4edaa30d11771fc937c4a1997a6e6e5a530afcbf
--- /dev/null
+++ b/routes/avaliador.php
@@ -0,0 +1,21 @@
+<?php
+
+use App\Http\Controllers\AvaliadorController;
+use App\Http\Controllers\AvaliadorTaskTimeController;
+use App\Http\Controllers\PadController;
+use Illuminate\Support\Facades\Route;
+
+Route::prefix('/avaliador')->group(function () {
+    Route::get('/index', [AvaliadorController::class, 'index'])->name('avaliador_index');
+    Route::put('/avaliar', [AvaliadorController::class, 'avaliar'])->name('avaliador_avaliar');
+    Route::get('/create', [AvaliadorController::class, 'create'])->name('avaliador_create');
+    Route::post('/store', [AvaliadorController::class, 'store'])->name('avaliador_store');
+    Route::get('/edit/{id}', [AvaliadorController::class, 'edit'])->name('avaliador_edit');
+    Route::post('/update/{id}', [AvaliadorController::class, 'update'])->name('avaliador_update');
+    Route::delete('/delete/{id}', [AvaliadorController::class, 'destroy'])->name('avaliador_delete');
+    Route::get('/relatorio', [AvaliadorController::class, 'relatorio'])->name('avaliador_relatorio');
+    Route::get('/relatorio/{id}', [PadController::class, 'relatorio'])->name('pad_relatório');
+    Route::get('/relatorio/{id}/pdf', [PadController::class, 'generatePDF'])->name('pad_relatório_pdf');
+
+    Route::get('/horario/index', [AvaliadorTaskTimeController::class, 'index'])->name('avaliador_task_time_index');
+});
diff --git a/routes/web.php b/routes/web.php
index 8b2f322caf5951bd123313575d3a0c4ac3c9ac57..56a1ad8e613a7f20e489b18cae55b2caf7fd3fb2 100644
--- a/routes/web.php
+++ b/routes/web.php
@@ -30,7 +30,11 @@ require __DIR__ . '/auth.php';
 require __DIR__ . '/profile.php';
 
 require __DIR__ . '/pad.php';
+
+require __DIR__ . '/avaliador.php';
+
 require __DIR__ . '/avaliador_pad.php';
+
 require __DIR__ . '/professor_pad.php';
 
 require __DIR__ . '/unidade.php';
@@ -43,6 +47,10 @@ require __DIR__ . '/users.php';
 
 require __DIR__ . '/user_type.php';
 
+require __DIR__ . '/Task.php';
+
+require __DIR__ . '/TaskTime.php';
+
 require __DIR__ . '/dimensao/dimensao.php';
 
 require __DIR__ . '/dimensao/ensino.php';
@@ -94,19 +102,6 @@ Route::prefix('/professor')->group(function () {
     Route::delete('/delete/{id}', [ProfessorController::class, 'destroy'])->name('professor_delete');
 });
 
-Route::prefix('/avaliador')->group(function () {
-    Route::get('/index', [AvaliadorController::class, 'index'])->name('avaliador_index');
-    Route::put('/avaliar', [AvaliadorController::class, 'avaliar'])->name('avaliador_avaliar');
-    Route::get('/create', [AvaliadorController::class, 'create'])->name('avaliador_create');
-    Route::post('/store', [AvaliadorController::class, 'store'])->name('avaliador_store');
-    Route::get('/edit/{id}', [AvaliadorController::class, 'edit'])->name('avaliador_edit');
-    Route::post('/update/{id}', [AvaliadorController::class, 'update'])->name('avaliador_update');
-    Route::delete('/delete/{id}', [AvaliadorController::class, 'destroy'])->name('avaliador_delete');
-    Route::get('/relatorio', [AvaliadorController::class, 'relatorio'])->name('avaliador_relatorio');
-    Route::get('/relatorio/{id}', [PadController::class, 'relatorio'])->name('pad_relatório');
-    Route::get('/relatorio/{id}/pdf', [PadController::class, 'generatePDF'])->name('pad_relatório_pdf');
-});
-
 Route::prefix('/user')->group(function () {
     Route::get('/edit/perfil/{tab?}', [UserController::class, 'editPerfil'])->name('edit_perfil');
     Route::post('/update/perfil', [UserController::class, 'updatePerfil'])->name('update_perfil');