---
title: "The perfect tense: ik heb gewerkt"
level: A1
chapter: "Verbs in time"
canonical: https://www.dutchfluency.com/grammar/perfect-tense
updated: 2026-10-08
author: Dutch Fluency
license: CC BY-SA 4.0 (https://creativecommons.org/licenses/by-sa/4.0/)
---

# The perfect tense: ik heb gewerkt

When you talk about what you did, Dutch usually puts a form of _hebben_ (to have) in second place and a past participle (a past form like _gewerkt_, worked) at the end: _Ik heb gisteren gewerkt._ This is the perfect tense, and in everyday conversation it is the most common way to talk about the past. So where English uses the simple past (I worked), Dutch usually uses this form.

## The pattern

> In a statement, a form of _hebben_ (or sometimes _zijn_) goes in position two and the past participle goes to the end. Everything else sits in between.

- The participle (in Dutch, the _voltooid deelwoord_) often starts with _ge-_: _werken_ becomes _gewerkt_, _bellen_ becomes _gebeld_. The [next lesson](https://www.dutchfluency.com/grammar/regular-participles) shows how to build the regular ones.
- The form of _hebben_ changes with the subject: _ik heb_, _jij hebt_, _hij heeft_, _wij hebben_. The participle stays the same.
- Position two means the second part of the sentence, which is not always the second word: _Vorige week heb ik veel gewerkt._ See [verb second](https://www.dutchfluency.com/grammar/verb-second).
- Most verbs use _hebben_. A smaller group uses _zijn_, including _gaan_ and _komen_: _Ik ben naar huis gegaan._ More in [hebben or zijn](https://www.dutchfluency.com/grammar/hebben-or-zijn).
- In a yes or no question, the form of _hebben_ comes first: _Heb je Joris gebeld?_

## Examples

| Ik **heb** gisteren **gewerkt**. | I worked yesterday. |
| Fatima **heeft** de huisarts **gebeld**. | Fatima called the GP. |
| Gisteren **heb** ik pasta **gekookt**. | Yesterday I cooked pasta. |
| Daan **heeft** boodschappen **gedaan**. | Daan did the shopping. |
| Het **heeft** de hele dag **geregend**. | It rained all day. |
| Priya **heeft** drie jaar in Utrecht **gewoond**. | Priya lived in Utrecht for three years. |
| We **hebben** een uur op de trein **gewacht**. | We waited an hour for the train. |
| **Heb** je Joris **gebeld**? | Did you call Joris? |
| Ahmed **is** naar de gemeente **gegaan**. | Ahmed went to the town hall. |

## Why it works this way

Think of _heb_ and the participle as two slices of bread. _Heb_ is the top slice in position two, the participle is the bottom slice at the end, and the filling (when, what, where) goes in between: _Ik heb gisteren in de tuin gewerkt._ The action itself comes last, so Dutch listeners wait for it.

English splits the past into have worked and worked, and I have worked yesterday is wrong. Dutch uses one everyday form for both meanings, so it combines easily with _gisteren_ or _vorige week_:

- _Ik heb al gegeten._ I have already eaten.
- _Ik heb om zes uur gegeten._ I ate at six.

If you speak German, this works almost the same as the German perfect.

Dutch also has a simple past (_ik werkte_). It tends to appear in longer stories and in writing, and it is very common with _zijn_ and _hebben_ themselves: _Ik was ziek._ _Ik had geen tijd._ More in [perfect or simple past](https://www.dutchfluency.com/grammar/perfect-or-simple-past).

Remember: English keeps have and yesterday apart. Dutch happily puts them together: _Ik heb gisteren gewerkt._

## Watch out

- Not: _Ik heb gekookt pasta._ Say: _Ik heb pasta gekookt._ (the participle goes to the end)
- Not: _Gisteren ik heb gewerkt._ Say: _Gisteren heb ik gewerkt._ (_heb_ must stay in position two)
- Not: _Sanne gisteren gewerkt._ Say: _Sanne heeft gisteren gewerkt._ (a participle needs _heeft_ or _is_ next to the subject)
- Not: _Bas heb vandaag gewerkt._ Say: _Bas heeft vandaag gewerkt._ (with _hij_, _zij_ or a name, use _heeft_)
- Not: _Ik heb naar huis gegaan._ Say: _Ik ben naar huis gegaan._ (_gaan_ uses _zijn_)

## Quick check

1. Choose _heb_, _hebt_ or _heeft_: _Jij ... gisteren tot zes uur gewerkt._
2. Fix the word order and keep _Gisteren_ at the start: _Gisteren ik heb soep gekookt._
3. Fix the word order and keep _Fatima_ at the start: _Fatima heeft gebeld de huisarts._
4. Choose _heeft_ or _is_: _Ahmed ... naar de supermarkt gegaan._

## Answers

1. _hebt_ (with _jij_ in front, _hebben_ becomes _hebt_)
2. _Gisteren heb ik soep gekookt._ (_heb_ stays in position two, so _ik_ comes after it)
3. _Fatima heeft de huisarts gebeld._ (the participle goes to the end)
4. _is_ (_gaan_ uses _zijn_ in the perfect)

## Use it today

Tonight, tell someone (or your phone) three things you did today, each with _Ik heb_ and a participle from this lesson. For example: _Ik heb gewerkt_, _Ik heb gekookt_ and _Ik heb mijn moeder gebeld_.

## Questions learners ask

**How do you say "I worked yesterday" in Dutch?**

Say "Ik heb gisteren gewerkt." Dutch normally uses the perfect tense here, with heb in second place and the participle gewerkt at the end, where English uses the simple past.

**Where does the past participle go in a Dutch sentence?**

In a main sentence, the past participle usually goes at the very end, after the object and time words: "Ik heb gisteren pasta gekookt." The form of hebben or zijn stays in second position.

**Do Dutch people use the perfect tense or the simple past when speaking?**

In everyday conversation, Dutch speakers mostly use the perfect tense (ik heb gewerkt) to say what happened. The simple past (ik werkte) tends to appear in longer stories and in writing, and is very common with zijn and hebben themselves (ik was, ik had).

From the Dutch Fluency Grammar: https://www.dutchfluency.com/grammar. Shared under CC BY-SA 4.0.
