middleware(['auth', 'verified']) ->name('dashboard'); Route::view('/settings', 'settings') ->middleware(['auth', 'verified']) ->name('settings'); Route::middleware('auth')->group(function () { /* User profile (generated by Breeze) */ Route::get ('/profile', [ProfileController::class, 'edit' ])->name('profile.edit'); Route::patch ('/profile', [ProfileController::class, 'update'])->name('profile.update'); Route::delete('/profile', [ProfileController::class, 'destroy'])->name('profile.destroy'); /* Calendars CRUD */ Route::resource('calendar', CalendarController::class); /* Nested Events CRUD */ Route::prefix('calendar/{calendar}') ->name('calendar.') ->group(function () { Route::get ('events/create', [EventController::class, 'create'])->name('events.create'); Route::post('events', [EventController::class, 'store' ])->name('events.store'); Route::get ('events/{event}/edit', [EventController::class, 'edit' ])->name('events.edit'); Route::put ('events/{event}', [EventController::class, 'update'])->name('events.update'); }); /** address books */ Route::resource('books', BookController::class) ->names('books') // books.index, books.create, … ->parameter('books', 'book'); // {book} binding /** contacts inside a book nested so urls look like /books/{book}/contacts/{contact} */ Route::resource('books.contacts', ContactController::class) ->names('books.contacts') ->parameter('contacts', 'contact') ->except(['index']) // you may add an index later ->shallow(); }); /* Breeze auth routes (login, register, password reset, etc.) */ require __DIR__.'/auth.php'; /* |-------------------------------------------------------------------------- | SabreDAV endpoint (CalDAV + CardDAV) |-------------------------------------------------------------------------- | Leave this outside the auth middleware; the SabreLaravelAuthPlugin handles | authentication for DAV clients. */ // default dav handling Route::match( ['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'OPTIONS', 'HEAD', 'PROPFIND', 'PROPPATCH', 'MKCOL', 'COPY', 'MOVE', 'REPORT', 'LOCK', 'UNLOCK'], '/dav/{any?}', [DavController::class, 'handle'] )->where('any', '.*') ->withoutMiddleware([VerifyCsrfToken::class]); // subscriptions Route::get('/subscriptions/{calendarUri}.ics', [SubscriptionController::class, 'download']);