---
title: "weather(for:including:_:_:_:_:)"
framework: weatherkit
role: symbol
role_heading: Instance Method
path: "weatherkit/weatherservice/weather(for:including:_:_:_:_:)"
---

# weather(for:including:_:_:_:_:)

Returns the weather forecast for the requested location.

## Declaration

```swift
@preconcurrency final func weather<T1, T2, T3, T4, T5>(for location: CLLocation, including dataSet1: WeatherQuery<T1>, _ dataSet2: WeatherQuery<T2>, _ dataSet3: WeatherQuery<T3>, _ dataSet4: WeatherQuery<T4>, _ dataSet5: WeatherQuery<T5>) async throws -> (T1, T2, T3, T4, T5) where T1 : Sendable, T2 : Sendable, T3 : Sendable, T4 : Sendable, T5 : Sendable
```

## Parameters

- `location`: The requested location.

## Return Value

Return Value The requested weather data set.

## Discussion

Discussion note: Weather data error WeatherError This is a variadic API in which any combination of data sets can be requested and returned as a tuple. Here’s an example: let (current, minute, hourly, daily, alerts) = try await service.weather(for: newYork, including: .current, .minute, .hourly, .daily, .alerts)

## See Also

### Obtaining forecasts

- [weather(for:)](weatherkit/weatherservice/weather(for:).md)
- [weather(for:including:_:)](weatherkit/weatherservice/weather(for:including:_:).md)
- [weather(for:including:_:_:)](weatherkit/weatherservice/weather(for:including:_:_:).md)
- [weather(for:including:_:_:_:)](weatherkit/weatherservice/weather(for:including:_:_:_:).md)
- [weather(for:including:_:_:_:_:_:)](weatherkit/weatherservice/weather(for:including:_:_:_:_:_:).md)
- [shared](weatherkit/weatherservice/shared.md)
