Key:maxstay

From OpenStreetMap Wiki
Jump to navigation Jump to search
maxstay
Description
The maximum time allowed to park, stay, moor, or camp at a location. Edit this description in the wiki page. Edit this description in the data item.
Group: restrictions
Used on these elements
may be used on nodesmay be used on waysmay be used on areas (and multipolygon relations)should not be used on relations (except multipolygon relations)
Useful combination
Status: approvedPage for proposal

The key maxstay defines the maximum time a vehicle, boat, or person is allowed to stay in one place without leaving.

It is used to prevent people from staying too long and to make sure parking spaces, docks, and campsites stay available for new visitors:

  • Motor vehicle parking: Parking lots, individual spaces, and street parking (such as disc-parking zones)
  • Electric vehicle charging: Keeping amenity=charging_station spots free once a car finishes charging
  • Pick-up and drop-off: Short-term waiting at dedicated drop-off bays tagged with kiss_ride=yes and airport passenger lanes
  • Camping and outdoor accommodation: Limiting how many nights in a row campers can stay at tourism=camp_site and tourism=caravan_site locations
  • Boating and waterways: Docks, service pontoons, and canal moorings tagged with mooring=*

Values usually consist of a number followed by an English unit of time (such as 30 minutes, 2 hours, 1 day, or 3 nights). If there is no maximum stay limit, use maxstay=no or maxstay=unlimited. Both values mean the same thing. If time limits apply only on certain days or during specific hours, use maxstay:conditional, which is explained in #Parking limits active only at certain times.

Tagging

The tag specifies either a general limit or a conditional restriction:

Restriction values

The restriction value can be a standard duration or a special keyword.

Durations

Standard durations require a number above zero and a time unit:

  • Number: Positive whole numbers or decimals, such as 45 and 1.5. Remember to use a period instead of a comma as the decimal separator.
  • Time unit: Required, because there is no default unit for maxstay. Valid units include second, minute, hour, day, night, week, month, year, and their plural forms (such as 30 minutes, 2 hours, 3 nights). Do not abbreviate units and always leave a space between the number and the unit. For example, 30min breaks both rules; use 30 minutes instead.

The special value no (unlimited stay)

The keyword no (along with synonyms none and unlimited) means that no maximum stay applies, i.e. you are allowed to stay as long as you want.

  • maxstay=no does not mean that parking is not allowed. If parking or staying is completely forbidden, do not use maxstay=no or maxstay=0. Instead, leave out maxstay=* and use an access or parking restriction tag, such as access:conditional=no @ (...) or restriction:conditional=no_parking @ (...). Rules that forbid access always come before stay limits.
  • Off-hour exceptions: Many apps do not understand complex opening hours. To help them show a safe fallback, set the daytime limit on the main tag, and use no in the conditional tag to lift the limit at night or on weekends:
    maxstay=1 hour
    maxstay:conditional=no @ (18:00-08:00)

Other keywords

  • load-unload: You are only allowed to stop or dock while actively loading or unloading people or goods (common for boat docks and delivery bays).

Conditions

Main article: Conditional restrictions

Write conditions after the @ symbol:

  • Time and date: Follows standard opening hours syntax. If the condition contains a semicolon (;), wrap it inside round brackets:
    • @ (Mo-Fr 08:00-18:00; Sa 08:00-16:00)
    • @ (Mo-Sa 19:00-08:00; Su)
  • User or vehicle class:
    • @ customer
    • @ disabled

Examples

maxstay is used wherever people or vehicles are allowed to stay, but only for a limited time.

Basic parking (off-street and curbside)

Parking limits active only at certain times

UK traffic sign: 20-minute maximum stay from Monday to Saturday, 08:00-19:00.

When time limits apply only during certain hours of the day (such as business hours or daytime disc-parking zones), add time and date conditions using the conditional restrictions syntax.

There are two ways to tag the same maximum stay restriction that is shown on the sign in the image (20-minute limit from Monday to Saturday between 08:00 and 19:00, but no limit at night or on Sundays):

  • (Recommended) With both maxstay and maxstay:conditional: A 20-minute limit applies as the default, but the conditional tag further specifies that there is no maximum stay limit at night (Monday to Saturday 19:00-08:00) or on Sundays. Simpler apps that do not understand maxstay:conditional=* will still understand the 20-minute limit in the basic maxstay, preventing users from receiving parking fines:
    maxstay=20 minutes
    maxstay:conditional=no @ (Mo-Sa 19:00-08:00; Su)
  • With only maxstay:conditional: This method says that a 20-minute limit applies strictly between 08:00 and 19:00 Monday to Saturday, and that there is no maximum stay limit at other times because it is not specified. Simpler apps that cannot understand maxstay:conditional=* tags will not understand that there is a maximum stay limit and may assume parking is unrestricted at all times:
    maxstay:conditional=20 minutes @ (Mo-Sa 08:00-19:00)

When parking is forbidden at certain times

Rules that forbid parking always apply over maxstay. When parking is not allowed, any stay limit is ignored:

EV charging and drop-off zones

Short-term passenger pick-up and drop-off (Kiss & Ride):

Campsites and outdoor accommodation

Used to limit how many days or nights in a row visitors can stay:

Waterways and boat moorings

Used along canals, rivers, and marinas to limit docking time:

  • Boat mooring with a 2-hour limit (short stops to shop or refill fresh water):
    mooring=yes
    maxstay=2 hours
  • Boat mooring allowed only while actively loading or unloading:
    mooring=yes
    maxstay=load-unload

See also