Every morning, emails one briefing on today's conditions and the days ahead for each place you list.

UsesGmailOpenWeatherMap

Morning weather briefing for the places you follow

ScheduleRun every day at 07:00.Run every day at 07:00.
ValuesSet locations to blank.Set locations to blank.
ValuesSet recipient to blank.Set recipient to blank.
ValuesSet units to metric.Set units to metric.
ValuesSet rainChancePercent to 50.Set rainChancePercent to 50.
ValuesSet windGustThreshold to 12.Set windGustThreshold to 12.
ValuesSet temperatureUnit to °C.Set temperatureUnit to °C.
ValuesSet windUnit to m/s.Set windUnit to m/s.
Decisions & LoopsIf units is imperialIf units is imperial
Yes
ValuesChange temperatureUnit to °F.Change temperatureUnit to °F.
ValuesChange windUnit to mph.Change windUnit to mph.
No
No steps
Decisions & LoopsIf units is standardIf units is standard
Yes
ValuesChange temperatureUnit to K.Change temperatureUnit to K.
No
No steps
TextSplit locations by ; and save it as places.Split locations by ; and save it as places.
ListsStart an empty list and save it as sections.Start an empty list and save it as sections.
ListsStart an empty list and save it as unreadable.Start an empty list and save it as unreadable.
ListsStart an empty list and save it as flaggedDays.Start an empty list and save it as flaggedDays.
Decisions & LoopsFor each place in places:For each place in places:
TextTrim place and save it as placeName.Trim place and save it as placeName.
Decisions & LoopsIf placeName is emptyIf placeName is empty
Yes
Decisions & LoopsSkip to the next item.Skip to the next item.
No
No steps
Decisions & LoopsIf a step below fails, save the error as lookupErrorIf a step below fails, save the error as lookupError
Try
OpenWeatherMapOpenWeatherMapGet the current weather. Save it as now.Get the current weather. Save it as now.
OpenWeatherMapOpenWeatherMapGet the 5-day forecast. Save it as forecast.Get the 5-day forecast. Save it as forecast.
ValuesSet heading to placeName.Set heading to placeName.
Decisions & LoopsIf now.location isn't emptyIf now.location isn't empty
Yes
Decisions & LoopsIf now.location isn't emptyIf now.location isn't empty
Yes
ValuesChange heading to now.location.Change heading to now.location.
No
No steps
No
No steps
ValuesSet nowLine to Now: .Set nowLine to Now: .
Decisions & LoopsIf now.conditions isn't emptyIf now.conditions isn't empty
Yes
Decisions & LoopsIf now.conditions isn't emptyIf now.conditions isn't empty
Yes
ValuesChange nowLine to nowLine@now.conditions, .Change nowLine to nowLine@now.conditions, .
No
No steps
No
No steps
Decisions & LoopsIf now.temperature isn't emptyIf now.temperature isn't empty
Yes
MathChange nowLine to nowLine plus now.temperature rounded to the nearest integer plus temperatureUnit.Change nowLine to nowLine plus now.temperature rounded to the nearest integer plus temperatureUnit.
Decisions & LoopsIf now.feels_like isn't emptyIf now.feels_like isn't empty
Yes
ValuesChange nowLine to nowLine (feels like now.feels_like rounded to the nearest integer@temperatureUnit).Change nowLine to nowLine (feels like now.feels_like rounded to the nearest integer@temperatureUnit).
No
No steps
No
No steps
Decisions & LoopsIf now.humidity isn't emptyIf now.humidity isn't empty
Yes
ValuesChange nowLine to nowLine, humidity now.humidity rounded to the nearest integer%.Change nowLine to nowLine, humidity now.humidity rounded to the nearest integer%.
No
No steps
Decisions & LoopsIf now.wind_speed isn't emptyIf now.wind_speed isn't empty
Yes
ValuesChange nowLine to nowLine, wind now.wind_speed rounded to the nearest integer windUnit.Change nowLine to nowLine, wind now.wind_speed rounded to the nearest integer windUnit.
No
No steps
Decisions & LoopsIf nowLine is Now: If nowLine is Now:
Yes
ValuesChange nowLine to Now: no current reading was returned for this location..Change nowLine to Now: no current reading was returned for this location..
No
No steps
ValuesSet steps to forecast.entries.Set steps to forecast.entries.
ListsStart an empty list and save it as forecastDays.Start an empty list and save it as forecastDays.
Decisions & LoopsFor each entry in steps:For each entry in steps:
Decisions & Loops If entry.time contains T If entry.time contains T
Yes
ListsAdd the first item of entry.time split by T to the end of forecastDays and save it as forecastDays.Add the first item of entry.time split by T to the end of forecastDays and save it as forecastDays.
No
No steps
ListsRemove duplicates from forecastDays and save it as forecastDays.Remove duplicates from forecastDays and save it as forecastDays.
ListsStart an empty list and save it as dayLines.Start an empty list and save it as dayLines.
Decisions & LoopsFor each day in forecastDays:For each day in forecastDays:
Values Set dayLow to nothing. Set dayLow to nothing.
Values Set dayHigh to nothing. Set dayHigh to nothing.
Values Set dayChance to -1. Set dayChance to -1.
Values Set dayGust to -1. Set dayGust to -1.
Values Set dayHeadline to blank. Set dayHeadline to blank.
Values Set daySnow to blank. Set daySnow to blank.
Decisions & Loops For each entry in steps: For each entry in steps:
Decisions & Loops If the first item of entry.time split by T is day If the first item of entry.time split by T is day
Yes
Decisions & LoopsIf entry.temperature isn't emptyIf entry.temperature isn't empty
Yes
Decisions & LoopsIf dayLow is emptyIf dayLow is empty
Yes
ValuesChange dayLow to entry.temperature.Change dayLow to entry.temperature.
No
No steps
Decisions & LoopsIf dayHigh is emptyIf dayHigh is empty
Yes
ValuesChange dayHigh to entry.temperature.Change dayHigh to entry.temperature.
No
No steps
Decisions & LoopsIf entry.temperature is less than dayLowIf entry.temperature is less than dayLow
Yes
ValuesChange dayLow to entry.temperature.Change dayLow to entry.temperature.
No
No steps
Decisions & LoopsIf entry.temperature is greater than dayHighIf entry.temperature is greater than dayHigh
Yes
ValuesChange dayHigh to entry.temperature.Change dayHigh to entry.temperature.
No
No steps
No
No steps
Decisions & LoopsIf entry.precipitation_probability isn't emptyIf entry.precipitation_probability isn't empty
Yes
Decisions & LoopsIf entry.precipitation_probability is greater than dayChanceIf entry.precipitation_probability is greater than dayChance
Yes
ValuesChange dayChance to entry.precipitation_probability.Change dayChance to entry.precipitation_probability.
Decisions & LoopsIf entry.conditions isn't emptyIf entry.conditions isn't empty
Yes
ValuesChange dayHeadline to entry.conditions.Change dayHeadline to entry.conditions.
No
No steps
No
No steps
No
No steps
Decisions & LoopsIf entry.wind_gust isn't emptyIf entry.wind_gust isn't empty
Yes
Decisions & LoopsIf entry.wind_gust is greater than dayGustIf entry.wind_gust is greater than dayGust
Yes
ValuesChange dayGust to entry.wind_gust.Change dayGust to entry.wind_gust.
No
No steps
No
No steps
Decisions & LoopsIf entry.condition_group is SnowIf entry.condition_group is Snow
Yes
ValuesChange daySnow to yes.Change daySnow to yes.
No
No steps
No
No steps
Values Set dayName to blank. Set dayName to blank.
Decisions & Loops If a step below fails, save the error as dateError If a step below fails, save the error as dateError
Try
Dates & TimesGet the day of the week for day and save it as dayName.Get the day of the week for day and save it as dayName.
On error
No steps
Values Set dayLabel to day. Set dayLabel to day.
Decisions & Loops If dayName isn't empty If dayName isn't empty
Yes
ValuesChange dayLabel to dayName day.Change dayLabel to dayName day.
No
No steps
Lists Start an empty list and save it as dayParts. Start an empty list and save it as dayParts.
Decisions & Loops If dayLow isn't empty If dayLow isn't empty
Yes
Decisions & LoopsIf dayHigh isn't emptyIf dayHigh isn't empty
Yes
Decisions & LoopsIf dayLow rounded to the nearest integer is dayHigh rounded to the nearest…If dayLow rounded to the nearest integer is dayHigh rounded to the nearest…
Yes
ListsAdd dayLow rounded to the nearest integer plus temperatureUnit to the end of dayParts and save it as dayParts.Add dayLow rounded to the nearest integer plus temperatureUnit to the end of dayParts and save it as dayParts.
No
ListsAdd dayLow rounded to the nearest integer to dayHigh rounded to the nearest integer@temperatureUnit to the end of dayParts and save it as dayParts.Add dayLow rounded to the nearest integer to dayHigh rounded to the nearest integer@temperatureUnit to the end of dayParts and save it as dayParts.
No
No steps
No
No steps
Decisions & Loops If dayHeadline isn't empty If dayHeadline isn't empty
Yes
ListsAdd dayHeadline to the end of dayParts and save it as dayParts.Add dayHeadline to the end of dayParts and save it as dayParts.
No
No steps
Decisions & Loops If dayChance is greater than or equal to 0 If dayChance is greater than or equal to 0
Yes
ListsAdd dayChance multiplied by 100 rounded to the nearest integer% chance of precipitation to the end of dayParts and save it as dayParts.Add dayChance multiplied by 100 rounded to the nearest integer% chance of precipitation to the end of dayParts and save it as dayParts.
No
No steps
Decisions & Loops If dayGust is greater than or equal to 0 If dayGust is greater than or equal to 0
Yes
ListsAdd gusts to dayGust rounded to the nearest integer windUnit to the end of dayParts and save it as dayParts.Add gusts to dayGust rounded to the nearest integer windUnit to the end of dayParts and save it as dayParts.
No
No steps
Values Set dayLine to dayLabel: no readings were returned for this day. Set dayLine to dayLabel: no readings were returned for this day.
Decisions & Loops If dayParts isn't empty If dayParts isn't empty
Yes
ValuesChange dayLine to dayLabel: dayParts joined by , .Change dayLine to dayLabel: dayParts joined by , .
No
No steps
Lists Start an empty list and save it as dayFlags. Start an empty list and save it as dayFlags.
Decisions & Loops If dayChance is greater than or equal to 0 If dayChance is greater than or equal to 0
Yes
Decisions & LoopsIf dayChance multiplied by 100 is greater than or equal to rainChancePercentIf dayChance multiplied by 100 is greater than or equal to rainChancePercent
Yes
ListsAdd high chance of precipitation to the end of dayFlags and save it as dayFlags.Add high chance of precipitation to the end of dayFlags and save it as dayFlags.
No
No steps
No
No steps
Decisions & Loops If dayGust is greater than or equal to 0 If dayGust is greater than or equal to 0
Yes
Decisions & LoopsIf dayGust is greater than or equal to windGustThresholdIf dayGust is greater than or equal to windGustThreshold
Yes
ListsAdd strong gusts to the end of dayFlags and save it as dayFlags.Add strong gusts to the end of dayFlags and save it as dayFlags.
No
No steps
No
No steps
Decisions & Loops If daySnow is yes If daySnow is yes
Yes
ListsAdd snow in the forecast to the end of dayFlags and save it as dayFlags.Add snow in the forecast to the end of dayFlags and save it as dayFlags.
No
No steps
Decisions & Loops If dayFlags isn't empty If dayFlags isn't empty
Yes
ValuesChange dayLine to dayLine [dayFlags joined by ; ].Change dayLine to dayLine [dayFlags joined by ; ].
ListsAdd heading day to the end of flaggedDays and save it as flaggedDays.Add heading day to the end of flaggedDays and save it as flaggedDays.
No
No steps
Lists Add dayLine to the end of dayLines and save it as dayLines. Add dayLine to the end of dayLines and save it as dayLines.
ValuesSet section to headingSet section to heading nowLine.
Decisions & LoopsIf dayLines isn't emptyIf dayLines isn't empty
Yes
ValuesChange section to sectionChange section to section Next five days: - dayLines joined by - .
No
ValuesChange section to sectionChange section to section No forecast steps were returned for the days ahead.
ListsAdd section to the end of sections and save it as sections.Add section to the end of sections and save it as sections.
On error
ListsAdd placeName to the end of unreadable and save it as unreadable.Add placeName to the end of unreadable and save it as unreadable.
ValuesShow in the output: Could not read the weather for placeName: lookupError as text.Show in the output: Could not read the weather for placeName: lookupError as text.
Decisions & LoopsIf sections is emptyIf sections is empty
Yes
ValuesSet failureMessage to No briefing was sent: none of the locations could be read. Check the 'locations' step - list places separated by semicolons, for example 'Berlin,DE; Lisbon,PT; 94103,US'..Set failureMessage to No briefing was sent: none of the locations could be read. Check the 'locations' step - list places separated by semicolons, for example 'Berlin,DE; Lisbon,PT; 94103,US'..
Decisions & LoopsIf unreadable isn't emptyIf unreadable isn't empty
Yes
ValuesChange failureMessage to failureMessage Could not read: unreadable joined by , .Change failureMessage to failureMessage Could not read: unreadable joined by , .
No
No steps
Decisions & LoopsStop and report a problem: failureMessage.Stop and report a problem: failureMessage.
No
No steps
ValuesSet briefing to Morning weather briefing.Set briefing to Morning weather briefing.
Decisions & LoopsIf flaggedDays isn't emptyIf flaggedDays isn't empty
Yes
ValuesChange briefing to briefingChange briefing to briefing Days above your thresholds: flaggedDays joined by ; .
No
ValuesChange briefing to briefingChange briefing to briefing No days above your thresholds in the next five days.
ValuesChange briefing to briefingChange briefing to briefing sections joined by a blank line.
Decisions & LoopsIf unreadable isn't emptyIf unreadable isn't empty
Yes
ValuesChange briefing to briefingChange briefing to briefing Could not read: unreadable joined by , . Check the spelling, or add a country code - for example 'Springfield,US'.
No
No steps
ValuesChange briefing to briefingChange briefing to briefing Thresholds: precipitation chance at or above rainChancePercent%, gusts at or above windGustThreshold windUnit.
ValuesSet subject to Morning weather briefing.Set subject to Morning weather briefing.
Decisions & LoopsIf flaggedDays isn't emptyIf flaggedDays isn't empty
Yes
ValuesChange subject to subject - the length of flaggedDays day(s) above your thresholds.Change subject to subject - the length of flaggedDays day(s) above your thresholds.
No
No steps
GmailGmailSend an email to recipient.Send an email to recipient. Subject: subjectbriefing