# Use laps to detect intervals doesnt work if there is no laps?

**URL:** <https://forum.intervals.icu/t/use-laps-to-detect-intervals-doesnt-work-if-there-is-no-laps/130880>\
**Category:** Questions & Help\
**Created:** [3 August 2026 12:36 UTC](https://forum.intervals.icu/t/use-laps-to-detect-intervals-doesnt-work-if-there-is-no-laps/130880 "2026-08-03T12:36:33Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![Johan\_Andreasson](https://forum.intervals.icu/letter_avatar_proxy/v4/letter/j/ecccb3/32.png) [@Johan\_Andreasson](https://forum.intervals.icu/u/Johan_Andreasson)\
**Post date:** [3 August 2026 12:36 UTC](https://forum.intervals.icu/t/use-laps-to-detect-intervals-doesnt-work-if-there-is-no-laps/130880/1 "2026-08-03T12:36:33Z")

</div>

![image](https://forum.intervals.icu/uploads/default/original/3X/7/e/7e4517695c7f748a9f0a45a5e0a17556da0ec9e3.png)

 ![image](https://forum.intervals.icu/uploads/default/original/3X/d/6/d61a6cff6c5ed29ece7c6f608a0f2a57a760d304.png)

Hi, I have a problem with runs that doesnt have any laps. I have no auto-laps on my garmin or anything like that, so i have to press the lap button to create a lap. Alternatively if i do a workout, laps are created. The problem is that my uploaded runs still get intervals eventhough i have settings like “use laps for intervals” and “keep all laps” unticked. Now i have to manually do “clear intervals” on all activites without laps. Is this a bug?

---

<div class="post-metadata">

**Author:** ![MedTechCD](https://forum.intervals.icu/user_avatar/forum.intervals.icu/medtechcd/32/40383_2.png) [@MedTechCD](https://forum.intervals.icu/u/MedTechCD)\
**Post date:** [4 August 2026 19:19 UTC](https://forum.intervals.icu/t/use-laps-to-detect-intervals-doesnt-work-if-there-is-no-laps/130880/2 "2026-08-04T19:19:38Z")

</div>

If you keep ‘Use laps for intervals’ checked and the rest unchecked, I would expect (at least that’s how it works from my side with a Edge 840), that you either have no laps at all, or you have the entire activity as one big lap. I don’t know why it is sometimes none and sometimes all, but that’s what I’m seeing. The result with one big lap, is from my side, the expected one, because starting and stopping an activity is a ‘lap event’.  
If you have all options unchecked, Intervals will try to auto-detect intervals. So maybe, in the first case where nothing is detected, Intervals switches to auto-detection???  
This may be different on running activities or by device, but I just wanted to inform you of what I’m seeing.

---

<div class="post-metadata">

**Author:** ![Johan\_Andreasson](https://forum.intervals.icu/letter_avatar_proxy/v4/letter/j/ecccb3/32.png) [@Johan\_Andreasson](https://forum.intervals.icu/u/Johan_Andreasson)\
**Post date:** [5 August 2026 08:15 UTC](https://forum.intervals.icu/t/use-laps-to-detect-intervals-doesnt-work-if-there-is-no-laps/130880/3 "2026-08-05T08:15:11Z")

</div>

Thanks for your reply. My assumption was the same as yours; if no laps = either one big interval or none at all. But as you can see on the screenshot, intervals.icu creates intervals automaticly eventhough i have only selected “Use laps instead of detecting intervals”. I have re-analyzed the file several times with the same outcome. I have a garmin forerunner 965 if that helps.

---

<div class="post-metadata">

**Author:** ![Johan\_Andreasson](https://forum.intervals.icu/letter_avatar_proxy/v4/letter/j/ecccb3/32.png) [@Johan\_Andreasson](https://forum.intervals.icu/u/Johan_Andreasson)\
**Post date:** [5 August 2026 08:40 UTC](https://forum.intervals.icu/t/use-laps-to-detect-intervals-doesnt-work-if-there-is-no-laps/130880/4 "2026-08-05T08:40:48Z")

</div>

I opened 2 different .fit files in fitfileviewer to see how the laps was recorded.

In the file with no manual laps added it looked like this:

 ![image](https://forum.intervals.icu/uploads/default/original/3X/0/4/048790981334f7ba7a99c373feefacaebdae8d3e.png)

In the file where i manually added 2 lap presses it looked like this:

 ![image](https://forum.intervals.icu/uploads/default/original/3X/7/d/7d3b74d25d9afa8873758a82d920f8e12f107378.png)

As you can see in the column “start time”, the first row always includes a date before the timestamp. Could it be that the code that reads and calculates intervals cant read the first line because of the different format? That could explain why no laps can be detected if there is only one line. But its just a guess. Maybe @david can confirm/reject this theory?

---

<div class="post-metadata">

**Author:** ![Johan\_Andreasson](https://forum.intervals.icu/letter_avatar_proxy/v4/letter/j/ecccb3/32.png) [@Johan\_Andreasson](https://forum.intervals.icu/u/Johan_Andreasson)\
**Post date:** [21 August 2026 13:55 UTC](https://forum.intervals.icu/t/use-laps-to-detect-intervals-doesnt-work-if-there-is-no-laps/130880/5 "2026-08-21T13:55:54Z")

</div>

No help with this issue?

---

<div class="post-metadata">

**Author:** ![R2Tom](https://forum.intervals.icu/user_avatar/forum.intervals.icu/r2tom/32/50144_2.png) [@R2Tom](https://forum.intervals.icu/u/R2Tom)\
**Post date:** [21 August 2026 14:11 UTC](https://forum.intervals.icu/t/use-laps-to-detect-intervals-doesnt-work-if-there-is-no-laps/130880/6 "2026-08-21T14:11:08Z")

</div>

Did you try the “keep all laps” option ticked?

---

<div class="post-metadata">

**Author:** ![MedTechCD](https://forum.intervals.icu/user_avatar/forum.intervals.icu/medtechcd/32/40383_2.png) [@MedTechCD](https://forum.intervals.icu/u/MedTechCD)\
**Post date:** [21 August 2026 14:33 UTC](https://forum.intervals.icu/t/use-laps-to-detect-intervals-doesnt-work-if-there-is-no-laps/130880/7 "2026-08-21T14:33:37Z")

</div>

I think I discovered something that could lead to an explanation:

- If you re-analyze with Use Laps only, no lap is detected
- If you re-analyze with Use Laps and Keep all Laps, one big lap is detected
- If you simply click Use Laps directly from the Actions menu, you also get one big lap

 ![image](https://forum.intervals.icu/uploads/default/original/3X/8/2/822bc691faa35318c322beab599987314d408ae6.png)

Seems like when Intervals detects no minimal effort, the entire activity is treated as a recovery interval (basically no interval). That’s the logic for the auto-detected intervals, you either only keep the effort intervals or you keep all of them.  
In the case of using Laps, this should not be the case! Every lap event should start a new interval.

---

<div class="post-metadata">

**Author:** ![Johan\_Andreasson](https://forum.intervals.icu/letter_avatar_proxy/v4/letter/j/ecccb3/32.png) [@Johan\_Andreasson](https://forum.intervals.icu/u/Johan_Andreasson)\
**Post date:** [21 August 2026 15:19 UTC](https://forum.intervals.icu/t/use-laps-to-detect-intervals-doesnt-work-if-there-is-no-laps/130880/8 "2026-08-21T15:19:00Z")

</div>

Like i have explained before, non of the above alternatives solves this problem. I get auto-detected laps eventhough the correct settings are applied (and re-analyze doesnt affect this either)

---

<div class="post-metadata">

**Author:** ![Johan\_Andreasson](https://forum.intervals.icu/letter_avatar_proxy/v4/letter/j/ecccb3/32.png) [@Johan\_Andreasson](https://forum.intervals.icu/u/Johan_Andreasson)\
**Post date:** [21 August 2026 15:20 UTC](https://forum.intervals.icu/t/use-laps-to-detect-intervals-doesnt-work-if-there-is-no-laps/130880/9 "2026-08-21T15:20:12Z")

</div>

And to be clear; this only happens when no manual laps are added for a run. If i press lap button at least 1 time, it works like intended.

---

<div class="post-metadata">

**Author:** ![Johan\_Andreasson](https://forum.intervals.icu/letter_avatar_proxy/v4/letter/j/ecccb3/32.png) [@Johan\_Andreasson](https://forum.intervals.icu/u/Johan_Andreasson)\
**Post date:** [21 August 2026 15:21 UTC](https://forum.intervals.icu/t/use-laps-to-detect-intervals-doesnt-work-if-there-is-no-laps/130880/10 "2026-08-21T15:21:39Z")

</div>

Yes, doesnt help.

---

<div class="post-metadata">

**Author:** ![MedTechCD](https://forum.intervals.icu/user_avatar/forum.intervals.icu/medtechcd/32/40383_2.png) [@MedTechCD](https://forum.intervals.icu/u/MedTechCD)\
**Post date:** [21 August 2026 15:41 UTC](https://forum.intervals.icu/t/use-laps-to-detect-intervals-doesnt-work-if-there-is-no-laps/130880/11 "2026-08-21T15:41:32Z")

</div>

Please pm me a download link to one of those files.

---

<div class="post-metadata">

**Author:** ![MedTechCD](https://forum.intervals.icu/user_avatar/forum.intervals.icu/medtechcd/32/40383_2.png) [@MedTechCD](https://forum.intervals.icu/u/MedTechCD)\
**Post date:** [21 August 2026 16:24 UTC](https://forum.intervals.icu/t/use-laps-to-detect-intervals-doesnt-work-if-there-is-no-laps/130880/12 "2026-08-21T16:24:19Z")

</div>

> [@Johan\_Andreasson](#):
>
> Like i have explained before, non of the above alternatives solves this problem. I get auto-detected laps eventhough the correct settings are applied (and re-analyze doesnt affect this either)

I’m no longer talking alternatives. I think I may be up to the root of this issue.  
What I’m asking is to try the Use Laps from the Actions menu directly. Not a change in the settings or re-analyze or anything else. Just the command from the screenshot in my former post.  
This, in my testing now, is NOT acting the same way as the Setting for Use Laps or the settings when re-analyzing.

---

<div class="post-metadata">

**Author:** ![Johan\_Andreasson](https://forum.intervals.icu/letter_avatar_proxy/v4/letter/j/ecccb3/32.png) [@Johan\_Andreasson](https://forum.intervals.icu/u/Johan_Andreasson)\
**Post date:** [21 August 2026 16:37 UTC](https://forum.intervals.icu/t/use-laps-to-detect-intervals-doesnt-work-if-there-is-no-laps/130880/13 "2026-08-21T16:37:36Z")

</div>

I have tried that as well, doesnt work. Do you want the .FIT file?

---

<div class="post-metadata">

**Author:** ![MedTechCD](https://forum.intervals.icu/user_avatar/forum.intervals.icu/medtechcd/32/40383_2.png) [@MedTechCD](https://forum.intervals.icu/u/MedTechCD)\
**Post date:** [21 August 2026 16:47 UTC](https://forum.intervals.icu/t/use-laps-to-detect-intervals-doesnt-work-if-there-is-no-laps/130880/14 "2026-08-21T16:47:14Z")

</div>

Yes please, the original one that comes to your account. Not promising anything, but I would like to know what is going on.

---

<div class="post-metadata">

**Author:** ![MedTechCD](https://forum.intervals.icu/user_avatar/forum.intervals.icu/medtechcd/32/40383_2.png) [@MedTechCD](https://forum.intervals.icu/u/MedTechCD)\
**Post date:** [21 August 2026 18:54 UTC](https://forum.intervals.icu/t/use-laps-to-detect-intervals-doesnt-work-if-there-is-no-laps/130880/15 "2026-08-21T18:54:05Z")

</div>

Well, I can only confirm what you said. No matter what options on import or re-analysing with or without whatever option, this activity always gets auto-detected intervals…  
Very strange and I can’t see why.  
@david @eva Can you have a look at todays activity from @Johan_Andreasson ?

---

<div class="post-metadata">

**Author:** ![Johan\_Andreasson](https://forum.intervals.icu/letter_avatar_proxy/v4/letter/j/ecccb3/32.png) [@Johan\_Andreasson](https://forum.intervals.icu/u/Johan_Andreasson)\
**Post date:** [21 August 2026 19:18 UTC](https://forum.intervals.icu/t/use-laps-to-detect-intervals-doesnt-work-if-there-is-no-laps/130880/16 "2026-08-21T19:18:04Z")

</div>

and just to be extra clear, its not just this activity, its every activity without a manual lap

---

<div class="post-metadata">

**Author:** ![pepe](https://forum.intervals.icu/user_avatar/forum.intervals.icu/pepe/32/36539_2.png) [@pepe](https://forum.intervals.icu/u/pepe)\
**Post date:** [21 August 2026 22:07 UTC](https://forum.intervals.icu/t/use-laps-to-detect-intervals-doesnt-work-if-there-is-no-laps/130880/17 "2026-08-21T22:07:40Z")

</div>

**Intervals.icu** has three collections of **time indexes** :

**Laps:**  **Processed** / **Derived** from the original source FIT file laps. If present, this collection is **static**.

Other called **Interval** s a collection of **calculated** indexes that can be interacted with, edited, and customized through the UI.

The third collection of indexes is icu.fit.laps, The **original, unaltered** FIT file indexes.

If the original FIT file does not contain lap messages (`m_19`), Intervals.icu will not generate **Laps** or **icu.fit.laps** for that activity. In such cases, only **Intervals** indexes will be present, as these are calculated automatically, as you noticed.

What you see in the UI is simply a window into this underlying framework.

Laps

```auto
if (icu && icu.activity && Array.isArray(icu.activity.laps)) {
  var laps = icu.activity.laps;
  var timeStream = icu.activity.time; // Array of timestamps in seconds

  for (var i = 0; i < laps.length; i++) {
    var lap = laps[i];
    var start = lap.start_index;
    var end = lap.end_index;
    var name = lap.name || ('Lap ' + (i + 1));
    var durationSec = '?';

    if (timeStream && start !== undefined && end !== undefined) {
      // Time at end index minus time at start index
      durationSec = timeStream[end] - timeStream[start];
    } else if (start !== undefined && end !== undefined) {
      // Fallback: Index count (assumes 1Hz recording)
      durationSec = end - start;
    }

    console.log(
      '[' + i + '] ' +
      'start_index=' + start + ' ' +
      'end_index=' + end + ' ' +
      'name="' + name + '" ' +
      'duration_sec=' + durationSec
    );
  }
}

```

Intervals:

```auto

if (icu && icu.activity && Array.isArray(icu.activity.icu_intervals)) {
  var intervals = icu.activity.icu_intervals;

  for (var i = 0; i < intervals.length; i++) {
    var interval = intervals[i];

    var start = (interval.start_index !== undefined) ? interval.start_index : '?';
    var end = (interval.end_index !== undefined) ? interval.end_index : '?';
    var name = interval.label || interval.type || ('Interval ' + (i + 1));
    
    // Intervals directly store elapsed_time in seconds
    var durationSec = (interval.elapsed_time !== undefined) 
      ? interval.elapsed_time 
      : (interval.moving_time !== undefined ? interval.moving_time : '?');

    console.log(
      '[' + i + '] ' +
      'start_index=' + start + ' ' +
      'end_index=' + end + ' ' +
      'name="' + name + '" ' +
      'duration_sec=' + durationSec
    );
  }
} else {
  console.log("icu.activity.icu_intervals not available or not an array");
}

```

When you set Use Laps, the Laps values are copy over to the UI boiler plate, replacing the Intervals indexes values. Because these ranges now populate the active `Intervals` layer, you gain the ability to manually adjust, drag, split them.

Hope this helps.

---

<div class="post-metadata">

**Author:** ![eva](https://forum.intervals.icu/user_avatar/forum.intervals.icu/eva/32/67394_2.png) [@eva](https://forum.intervals.icu/u/eva)\
**Post date:** [24 August 2026 05:41 UTC](https://forum.intervals.icu/t/use-laps-to-detect-intervals-doesnt-work-if-there-is-no-laps/130880/18 "2026-08-24T05:41:15Z")

</div>

I’ll have a look at it.  
We have made some changes to the code which touches intervals calculation so its not completely out of the question that we may have introduced a new bug 🙂 This way we keep ourselves busy!

---

<div class="post-metadata">

**Author:** ![Lutz\_Koch](https://forum.intervals.icu/letter_avatar_proxy/v4/letter/l/8e7dd6/32.png) [@Lutz\_Koch](https://forum.intervals.icu/u/Lutz_Koch)\
**Post date:** [28 October 2026 21:01 UTC](https://forum.intervals.icu/t/use-laps-to-detect-intervals-doesnt-work-if-there-is-no-laps/130880/19 "2026-10-28T21:01:26Z")

</div>

**Same issue here: runs without laps always get auto-detected intervals, despite “Use laps for intervals”**

Hi @eva, @david,

I’m seeing exactly the problem described above. Runs where I never press the lap button always get auto-detected intervals, even though the settings are:

- Sport Settings → Run: “Use laps for intervals” checked
- “Keep all laps” checked

What I’ve tried, without any effect:

- Actions → Analyse with “Use laps instead of detecting intervals” (with and without “Keep all laps”)
- Actions → Use Laps
- Re-analysing after changing the settings

Observations:

- It affects every run without a manual lap press. If I press the lap button at least once during the run, “Use laps” works as expected.
- As far as I understand, Use Laps should result in either no intervals or one big lap here, not in auto-detected intervals.
- Workaround for now: Actions → Clear Intervals on each activity, which is tedious.

Details:

- Device: Garmin Forerunner 955
- Source: Garmin Connect sync

Could this be a regression from the recent changes to the interval calculation? Is there a way to disable auto-detection completely for a sport (e.g. an “off” option)? Happy to send the original FIT file if helpful.

Thanks!

---

<div class="post-metadata">

**Author:** ![Gabriel\_Vargas](https://forum.intervals.icu/user_avatar/forum.intervals.icu/gabriel_vargas/32/36904_2.png) [@Gabriel\_Vargas](https://forum.intervals.icu/u/Gabriel_Vargas)\
**Post date:** [28 October 2026 21:13 UTC](https://forum.intervals.icu/t/use-laps-to-detect-intervals-doesnt-work-if-there-is-no-laps/130880/20 "2026-10-28T21:13:43Z")

</div>

Wait… are you saying that some of you actually get “lap-less” activities without automatically detected intervals?

For every athlete I coach or have coached on Intervals.icu, I have to keep clicking “Clear Intervals” on every activity where the lap button wasn’t pressed or that wasn’t recorded while running a workout. They are all set to _Use laps as intervals_.

I was told before that this was the default behavior and that there was no way to completely disable automatic interval detection for activities without laps.

 ![image](https://forum.intervals.icu/uploads/default/original/3X/0/0/002a95989855c577af6178fdd4af048fbf3362ac.png)

[Next page](https://forum.intervals.icu/t/use-laps-to-detect-intervals-doesnt-work-if-there-is-no-laps/130880.md?page=2)
