July 27, 2026

Don't Forget to Sign up for our Newsletter

Prepositional Phrases for Place and Time

Where is the café? When does the lesson finish? English speakers answer questions like these using prepositional phrases for place and time every day.

Useful phrases for describing place and position include:

  • next to the bank
  • opposite the station
  • in front of the building
  • at the top of the hill
  • in the middle of the room

Others help us talk about time:

  • at the beginning of the lesson
  • at the end of the week
  • at the moment
  • from time to time
  • by the time we arrived

These phrases may look simple, but choosing the wrong preposition can make your English sound unnatural. It is therefore best to learn each expression as one complete chunk—not as several separate words.

Watch out for this useful difference

On time means at the scheduled time:

The train arrived on time.

In time for means early enough for something:

We arrived in time for dinner.

Practise, check and speak

Start with the interactive gapfill exercise below on prepositional phrases for place and time. 

Use the phrase box to complete all 20 sentences, then check your score. If an answer is incorrect, use the hint before opening the answer sheet.

Finally, try the follow-on speaking activity. Make each phrase personal by using it in a complete sentence and adding a detail. Ask and answer follow-up questions with a partner—or say your answers aloud if you are studying alone.

The more personally meaningful your examples are, the easier the phrases will be to remember.

learningenglish.tailtiu.org
B1+/B2 Vocabulary Practice

Prepositional Phrases: Place and Time

Practise 20 useful phrases, check your answers, and then use the language in conversation.

Complete the sentences

Type one phrase from the box into each gap. Use every phrase once. In the middle of is used twice.

Phrase box

  • at the moment
  • between
  • at the bottom of
  • in time for
  • opposite
  • at the beginning of
  • next to
  • during the course of
  • at the same time
  • in front of
  • at the top of
  • on time
  • from time to time
  • at the side of
  • at the end of
  • in the middle of ×2
  • by the time
  • on the corner of
  • at the back of

Need the answer sheet?

Click below to reveal the full answer key for this exercise.


Make it personal

Work with a partner. Use the target phrase to answer each challenge with a complete sentence. Your partner then asks one follow-up question. Working alone? Say your answer aloud and add one extra detail.

  • 1 point: use the phrase correctly.
  • 1 point: add a useful detail.
  • 1 point: answer the follow-up question.
Challenge 1 of 20 at the side of

Describe something you regularly see at the side of a road.

Use the phrase in a complete sentence, then add one detail.

View all 20 speaking challenges

    Final memory round

    Cover the phrase box. A partner reads a challenge without saying the target phrase. Recall the phrase and use it in a new sentence.

    [tcb-script] (function () { "use strict"; var root = document.getElementById("tl-prepositional-phrases-b1b2"); if (!root || root.dataset.initialised === "true") { return; } root.dataset.initialised = "true"; var form = root.querySelector(".tl-gapfill-form"); var inputs = Array.prototype.slice.call(root.querySelectorAll(".tl-gap-input")); var score = root.querySelector(".tl-score"); var resetButton = root.querySelector(".tl-reset-button"); var answerToggle = root.querySelector(".tl-answer-toggle"); var answerPanel = root.querySelector(".tl-answer-panel"); var answerList = root.querySelector(".tl-answer-list"); function normalise(value) { return value .toLowerCase() .replace(/[‘’]/g, "'") .replace(/\s+/g, " ") .trim() .replace(/[.!?]+$/g, ""); } function acceptedAnswers(input) { return input.dataset.answers.split("|").map(normalise); } function clearItemState(input) { var question = input.closest(".tl-question"); var feedback = question.querySelector(".tl-item-feedback"); question.classList.remove("is-correct", "is-incorrect"); input.removeAttribute("aria-invalid"); feedback.textContent = ""; } inputs.forEach(function (input) { var item = document.createElement("li"); var answer = input.dataset.answers.split("|")[0]; item.innerHTML = "<strong>" + answer + "</strong>"; answerList.appendChild(item); input.addEventListener("input", function () { clearItemState(input); score.textContent = ""; }); }); form.addEventListener("submit", function (event) { event.preventDefault(); var correct = 0; var firstIncorrect = null; inputs.forEach(function (input) { var question = input.closest(".tl-question"); var feedback = question.querySelector(".tl-item-feedback"); var response = normalise(input.value); var isCorrect = acceptedAnswers(input).indexOf(response) !== -1; question.classList.remove("is-correct", "is-incorrect"); if (isCorrect) { correct += 1; question.classList.add("is-correct"); input.setAttribute("aria-invalid", "false"); feedback.textContent = "✓ Correct"; } else { question.classList.add("is-incorrect"); input.setAttribute("aria-invalid", "true"); feedback.textContent = response ? "Try again. Hint: " + question.dataset.hint : "Not answered. Hint: " + question.dataset.hint; if (!firstIncorrect) { firstIncorrect = input; } } }); var message = ""; if (correct === inputs.length) { message = "Excellent — all 20 answers are correct!"; } else if (correct >= 16) { message = "Very good. Check the highlighted answers and try again."; } else if (correct >= 10) { message = "Good progress. Use the hints to improve your score."; } else { message = "Keep going. Recheck the phrase box and use the hints."; } score.textContent = "Score: " + correct + " / " + inputs.length + ". " + message; if (firstIncorrect) { firstIncorrect.focus({ preventScroll: true }); firstIncorrect.closest(".tl-question").scrollIntoView({ behavior: "smooth", block: "center" }); } }); resetButton.addEventListener("click", function () { form.reset(); inputs.forEach(clearItemState); score.textContent = ""; inputs[0].focus(); root.querySelector(".tl-phrase-bank").scrollIntoView({ behavior: "smooth", block: "start" }); }); answerToggle.addEventListener("click", function () { var isOpening = answerPanel.hidden; answerPanel.hidden = !isOpening; answerToggle.setAttribute("aria-expanded", String(isOpening)); answerToggle.textContent = isOpening ? "Hide the answers" : "Reveal the answers"; }); var challenges = [ { phrase: "at the side of", prompt: "Describe something you regularly see at the side of a road." }, { phrase: "in front of", prompt: "Say what is in front of your home, school or workplace." }, { phrase: "at the back of", prompt: "Describe something found at the back of a building you know." }, { phrase: "next to", prompt: "Say who or what you are sitting next to." }, { phrase: "opposite", prompt: "Describe something opposite a place you regularly visit." }, { phrase: "between", prompt: "Name something located between two other places or objects." }, { phrase: "in the middle of", prompt: "Describe something in the middle of a room or public space." }, { phrase: "at the top of", prompt: "Say what you might find at the top of a hill or building." }, { phrase: "at the bottom of", prompt: "Say what you might write at the bottom of a message or document." }, { phrase: "on the corner of", prompt: "Describe a shop, building or landmark situated on a street corner." }, { phrase: "at the beginning of", prompt: "Say what you normally do at the beginning of a class or working day." }, { phrase: "at the end of", prompt: "Describe something you plan to do at the end of this week." }, { phrase: "in the middle of", prompt: "Describe something that once happened in the middle of the night." }, { phrase: "at the moment", prompt: "Say what you are working on or thinking about now." }, { phrase: "at the same time", prompt: "Describe two things you sometimes do simultaneously." }, { phrase: "on time", prompt: "Say whether you usually arrive on time for appointments." }, { phrase: "in time for", prompt: "Describe a situation when you arrived just in time for something." }, { phrase: "during the course of", prompt: "Describe something that changed during the course of a meeting, lesson, journey or project." }, { phrase: "by the time", prompt: "Complete this sentence with a true or invented idea: “By the time I got home yesterday, …”" }, { phrase: "from time to time", prompt: "Describe something you do occasionally but not regularly." } ]; var challengeList = root.querySelector(".tl-challenge-list"); var targetPhrase = root.querySelector(".tl-target-phrase"); var challengePrompt = root.querySelector(".tl-challenge-prompt"); var challengeCount = root.querySelector(".tl-challenge-count"); var nextChallengeButton = root.querySelector(".tl-next-challenge"); var restartChallengesButton = root.querySelector(".tl-restart-challenges"); var challengeOrder = []; var challengePosition = 0; challenges.forEach(function (challenge) { var item = document.createElement("li"); var strong = document.createElement("strong"); strong.textContent = challenge.phrase + ": "; item.appendChild(strong); item.appendChild(document.createTextNode(challenge.prompt)); challengeList.appendChild(item); }); function shuffledIndices(length) { var indices = []; var i; for (i = 0; i < length; i += 1) { indices.push(i); } for (i = indices.length - 1; i > 0; i -= 1) { var randomIndex = Math.floor(Math.random() * (i + 1)); var temporary = indices[i]; indices[i] = indices[randomIndex]; indices[randomIndex] = temporary; } return indices; } function showChallenge() { var challenge = challenges[challengeOrder[challengePosition]]; targetPhrase.textContent = challenge.phrase; challengePrompt.textContent = challenge.prompt; challengeCount.textContent = "Challenge " + (challengePosition + 1) + " of " + challenges.length; nextChallengeButton.textContent = challengePosition === challenges.length - 1 ? "Finish Challenge Round" : "Next Random Challenge"; } function restartChallenges() { challengeOrder = shuffledIndices(challenges.length); challengePosition = 0; nextChallengeButton.disabled = false; showChallenge(); } nextChallengeButton.addEventListener("click", function () { if (challengePosition < challenges.length - 1) { challengePosition += 1; showChallenge(); return; } challengeCount.textContent = "20 of 20 challenges completed"; targetPhrase.textContent = "Memory round"; challengePrompt.textContent = "Cover the phrase box. Ask your partner to read a challenge again, recall the phrase and make a new sentence."; nextChallengeButton.textContent = "Round Complete"; nextChallengeButton.disabled = true; }); restartChallengesButton.addEventListener("click", restartChallenges); restartChallenges(); }()); [/tcb-script]

    About the author 

    Martin Tailtiu

    Writer, English-language tutoring and materials designer and provider.