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.
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.
Answer Sheet
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.
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]