Send an APRS message to WXCAN with a location. That is all you need.
Want more detail? Add full or extra. Want tomorrow? Add tm. Everything combines freely: ottawa tm full gives a detailed forecast for tomorrow in Ottawa.
The general format is:
All three parts are optional and can appear in any order. If you omit everything, you get current brief weather at your APRS position.
| Example message | Result |
|---|---|
quebec | Current brief weather for Quebec City |
ottawa full | Current full weather for Ottawa |
montreal tm extra | Tomorrow extra weather for Montreal |
full | Current full weather at your APRS position |
7d calgary | 7-day compressed forecast for Calgary |
G1K2T8 | Current weather near that postal code |
FN35mr | Current weather at Maidenhead grid FN35mr |
45.5,-73.6 | Current weather at those coordinates |
extra tm | Tomorrow extra at your APRS position |
WXCAN understands many location types:
| Format | Example | Notes |
|---|---|---|
| City name | ottawa | Matched against the Environment Canada site list (about 700 cities) |
| Postal code | G1K2T8 or G1K 2T8 | Canadian format, space optional |
| Maidenhead grid | FN35 or FN35mr | 4-character (coarse, about 100 km) or 6-character (precise, about 5 km) |
| Lat/lon | 45.5,-73.6 | Decimal degrees, comma or space separated |
| ICAO code | CYUL | 4-letter airport code, resolves to nearest EC weather station |
| No location | full or tm | Looks up your last known position on aprs.fi |
full, tm, extra, or nothing at all.
Add a time keyword to get a forecast instead of current conditions. Shortcuts save keystrokes on APRS.
| Keyword | Shortcut | What it fetches |
|---|---|---|
now | (default) | Current observed conditions |
tonight | tn | Tonight forecast |
tomorrow | tm | Tomorrow daytime forecast |
afternoon | This afternoon | |
monday through sunday | Forecast for that weekday (prefers daytime period) | |
7d | Compressed 7-day outlook (see below) |
Three tiers. Each builds on the previous one. More detail means more APRS messages (responses are split to fit the 68-character limit).
The tiers are incremental: full contains everything in brief, and extra contains everything in full.
| Field | Example |
|---|---|
| Condition | Cond: Cloudy |
| Temperature | Temp: -5C |
| Wind speed and direction | Wind: 20 km/h NW |
| POP (if any) | POP: 30% |
Everything in brief, plus:
| Field | Example |
|---|---|
| Feels like (wind chill or humidex) | FeelsLike: -12C |
| Feels like forecast (am/pm) | FeelsLike FC: am:-15C pm:-8C |
| Visibility | Vis: 24 km |
| Pressure | Press: 101.2 kPa |
| Humidity | Hum: 65% |
| Gust | Gust: 35 km/h |
| Regional normals | Normals: Low -6C. High 4C |
| Precipitation | Precip: 30 percent chance of flurries |
Everything in full, plus non-weather environmental and planning data:
| Field | Example | Source |
|---|---|---|
| UV index | UV: moderate(4) | Environment Canada |
| Dew point | DewPt: -3C | Environment Canada |
| Frostbite warning | Risk of frostbite | Environment Canada |
| Kp geomagnetic index | Kp:3 0-3h:2 3-6h:5 | NOAA SWPC |
| Air quality (AQHI) | AQHI:4(Mod) | Environment Canada |
| Sunrise / sunset | Rise:6:42 Set:19:12 | Environment Canada |
| Wind forecast text | WindFC: Wind becoming N 20 this afternoon | Environment Canada |
Kp, AQHI, and sunrise/sunset only appear for current conditions requests, not for forecasts of future days.
When you request a forecast (tomorrow, tonight, a weekday), the same detail tiers apply. The data comes from the forecast period instead of current observations.
Forecast extra adds UV, frostbite warning, and wind forecast text for that period. Kp, AQHI, and sunrise/sunset are not included in forecasts since they are current-moment data.
The 7d command gives up to 7 daytime forecast periods compressed into one APRS-friendly line. Night periods are excluded.
Each entry reads as: Day+/-Temp:Condition
| Code | Meaning |
|---|---|
Tod | Today |
Tom | Tomorrow |
Tnt | Tonight |
Aft | This afternoon |
Mon | Monday |
Tue | Tuesday |
Wed | Wednesday |
Thu | Thursday |
Fri | Friday |
Sat | Saturday |
Sun | Sunday |
These short codes represent the forecasted weather condition for each day in the 7-day view:
| Code | Condition |
|---|---|
Sun | Clear or Sunny |
MSun | Mainly sunny or Mainly clear |
PCld | Partly cloudy or Mix of sun and cloud |
MCld | Mostly cloudy or Mainly cloudy |
Cld | Cloudy |
Rain | Rain |
Drzl | Drizzle |
Snow | Snow |
Flur | Flurries |
HvySn | Heavy snow or Snow squall |
BlwSn | Blowing snow |
FrzRn | Freezing rain |
IcePl | Ice pellets |
Fog | Fog |
Wndy | Windy (no cloud mention) |
Tstm | Thunderstorm |
Torn | Tornado |
Bliz | Blizzard |
Get raw METAR observation data for any ICAO airport worldwide.
Use any valid 4-letter ICAO code. Works for international airports too (metar KJFK). Data comes from NOAA/NWS.
Purpose-built weather report for drone and UAV operators.
drone and uav are interchangeable. The report includes:
! after the distance means the airport is within 5.6 km (3 nautical miles). You are likely inside controlled or restricted airspace. Always verify with Nav Canada CFS and current NOTAMs before flying.
Find all ICAO airports within a given radius.
drone srch works the same way. Alternate syntax: uav montreal srch 50 (location before srch) is also accepted. Only CY* and CZ* airports (Transport Canada certified or registered) are listed.
Look up GPS coordinates, Maidenhead grid square, and tower radio frequency for any Canadian CY/CZ airport.
Frequencies come from OurAirports with corrections from the Nav Canada Canada Flight Supplement (CFS). Multiple tower frequencies are separated by a slash.
Subscribe to receive automatic push notifications when Environment Canada issues weather alerts near your location. The location you provide when subscribing determines which EC alert region you are matched to. You will only receive alerts relevant to that area, not the entire province.
WXCAN pushes yellow, orange, and red level alerts only:
Special weather statements (grey level) are not pushed.
| Command | What it does |
|---|---|
wxsub montreal | Subscribe for alerts near Montreal |
wxsub | Subscribe using your APRS position |
wxsub K1A0B1 | Subscribe using a postal code |
wxsub FN35 | Subscribe using a grid square |
mysub or subinfo or substat | Check your subscription status |
unsub | Cancel your subscription |
wxsub trois-rivieres, you will only receive alerts for the Trois-Rivieres area, not for Montreal or Blanc-Sablon. To change your alert location, unsubscribe and resubscribe with a different location.
WXCAN checks all Environment Canada regional alert feeds for your province every 30 minutes. When a new alert is found near your subscribed location, you receive a compressed message:
What gets pushed and what does not:
| Alert type | Pushed? |
|---|---|
| Yellow/Orange/Red Warning | Yes |
| Watch | Yes (yellow level) |
| Advisory | Yes (yellow level) |
| Special weather statement | No (grey level, skipped) |
| Ended alerts | No |
Important details:
Subscriptions automatically expire after 60 days of inactivity. Any message you send to WXCAN resets the 60-day clock. It does not have to be a subscription command. A weather request, a help request, a METAR query, anything counts as activity.
If your subscription expires:
WX alerts unsubscribed (inactive 60d). Send wxsub to re-enable.wxsub againmontreal is enough.
Check for active weather alerts near any location without subscribing. Only yellow, orange, and red level alerts are returned. Special weather statements are excluded.
Accepts city name, grid square, or no location (uses your APRS position). The bot resolves your location to the nearest EC city and shows only alerts whose region matches that city.
alert to do a quick check before heading out. No subscription needed.
When you request weather for a location that has an active yellow, orange, or red alert in the EC city XML data, it is automatically prepended to the response. You do not need to request it separately.
The prefix indicates severity: WX!YLW: (yellow), WX!ORG: (orange), or WX!RED: (red). This is separate from the subscription push system and appears regardless of whether you are subscribed.
APRS messages are limited to 68 characters. When a response exceeds this, WXCAN splits it into numbered parts:
Each part is sent with a message ID requesting an ACK. The bot waits up to 5 seconds for your acknowledgment before sending the next part. There is a 2-second pause between parts. If no ACK is received after 2 attempts, the bot moves on. You may still receive the message even without ACK.
If you omit a location, WXCAN looks up your last known position on aprs.fi. This works if you have transmitted a position beacon recently.
If no position is found on aprs.fi, you will receive: No location provided & no APRS position found.
Some smaller Environment Canada stations do not report a text condition (Cloudy, Clear, Sunny, etc.) in their current observations. All numeric data (temperature, wind, pressure, humidity) is still available and accurate. This is an EC data gap at certain stations, not a bot error.
| Data | Source |
|---|---|
| Weather and forecasts | Environment Canada Citypage XML (dd.weather.gc.ca) |
| METAR | NOAA National Weather Service (tgftp.nws.noaa.gov) |
| Weather alerts (push) | EC Battleboard Atom feeds (weather.gc.ca) |
| Inline warnings | EC city XML warnings section |
| Kp geomagnetic index | NOAA Space Weather Prediction Center |
| Air quality (AQHI) | EC AQHI forecast XML (dd.weather.gc.ca) |
| Airport database | OurAirports open data + Nav Canada CFS corrections |
| Airport frequencies | OurAirports + manual CFS overrides |
| Geocoding | OpenStreetMap Nominatim + geocoder.ca |
| APRS position | aprs.fi API |
| Sunrise / sunset | EC city XML riseSet section |
Send help or ? to WXCAN to receive a compressed command reference via APRS. The help text is split across multiple messages.