<?xml version="1.0"?>
<ownershipDocument>

    <schemaVersion>X0306</schemaVersion>

    <documentType>4</documentType>

    <periodOfReport>2017-07-17</periodOfReport>

    <issuer>
        <issuerCik>0000730255</issuerCik>
        <issuerName>CalAmp Corp.</issuerName>
        <issuerTradingSymbol>CAMP</issuerTradingSymbol>
    </issuer>

    <reportingOwner>
        <reportingOwnerId>
            <rptOwnerCik>0001654737</rptOwnerCik>
            <rptOwnerName>BINDER KURTIS JOSEPH</rptOwnerName>
        </reportingOwnerId>
        <reportingOwnerAddress>
            <rptOwnerStreet1>C/O CALAMP CORP.</rptOwnerStreet1>
            <rptOwnerStreet2>15635 ALTON PARKWAY, SUITE 250</rptOwnerStreet2>
            <rptOwnerCity>IRVINE</rptOwnerCity>
            <rptOwnerState>CA</rptOwnerState>
            <rptOwnerZipCode>92618</rptOwnerZipCode>
            <rptOwnerStateDescription></rptOwnerStateDescription>
        </reportingOwnerAddress>
        <reportingOwnerRelationship>
            <isDirector>0</isDirector>
            <isOfficer>1</isOfficer>
            <isTenPercentOwner>0</isTenPercentOwner>
            <isOther>0</isOther>
            <officerTitle>Executive VP &amp; CFO</officerTitle>
        </reportingOwnerRelationship>
    </reportingOwner>

    <nonDerivativeTable>
        <nonDerivativeTransaction>
            <securityTitle>
                <value>Common Stock</value>
                <footnoteId id="F1"/>
            </securityTitle>
            <transactionDate>
                <value>2017-07-17</value>
            </transactionDate>
            <transactionCoding>
                <transactionFormType>4</transactionFormType>
                <transactionCode>A</transactionCode>
                <equitySwapInvolved>0</equitySwapInvolved>
            </transactionCoding>
            <transactionAmounts>
                <transactionShares>
                    <value>28500</value>
                </transactionShares>
                <transactionPricePerShare>
                    <value>0</value>
                </transactionPricePerShare>
                <transactionAcquiredDisposedCode>
                    <value>A</value>
                </transactionAcquiredDisposedCode>
            </transactionAmounts>
            <postTransactionAmounts>
                <sharesOwnedFollowingTransaction>
                    <value>28500</value>
                </sharesOwnedFollowingTransaction>
            </postTransactionAmounts>
            <ownershipNature>
                <directOrIndirectOwnership>
                    <value>D</value>
                </directOrIndirectOwnership>
                <natureOfOwnership>
                    <value></value>
                </natureOfOwnership>
            </ownershipNature>
        </nonDerivativeTransaction>
    </nonDerivativeTable>

    <derivativeTable>
        <derivativeTransaction>
            <securityTitle>
                <value>Stock Options</value>
            </securityTitle>
            <conversionOrExercisePrice>
                <value>19.30</value>
            </conversionOrExercisePrice>
            <transactionDate>
                <value>2017-07-17</value>
            </transactionDate>
            <transactionCoding>
                <transactionFormType>4</transactionFormType>
                <transactionCode>A</transactionCode>
                <equitySwapInvolved>0</equitySwapInvolved>
            </transactionCoding>
            <transactionAmounts>
                <transactionShares>
                    <value>30700</value>
                </transactionShares>
                <transactionPricePerShare>
                    <value>0</value>
                </transactionPricePerShare>
                <transactionAcquiredDisposedCode>
                    <value>A</value>
                </transactionAcquiredDisposedCode>
            </transactionAmounts>
            <exerciseDate>
                <value>2018-07-17</value>
                <footnoteId id="F2"/>
            </exerciseDate>
            <expirationDate>
                <value>2027-07-17</value>
            </expirationDate>
            <underlyingSecurity>
                <underlyingSecurityTitle>
                    <value>Common Stock</value>
                </underlyingSecurityTitle>
                <underlyingSecurityShares>
                    <value>30700</value>
                </underlyingSecurityShares>
            </underlyingSecurity>
            <postTransactionAmounts>
                <sharesOwnedFollowingTransaction>
                    <value>30700</value>
                </sharesOwnedFollowingTransaction>
            </postTransactionAmounts>
            <ownershipNature>
                <directOrIndirectOwnership>
                    <value>D</value>
                </directOrIndirectOwnership>
                <natureOfOwnership>
                    <value></value>
                </natureOfOwnership>
            </ownershipNature>
        </derivativeTransaction>
        <derivativeTransaction>
            <securityTitle>
                <value>Stock Options</value>
            </securityTitle>
            <conversionOrExercisePrice>
                <value>19.30</value>
            </conversionOrExercisePrice>
            <transactionDate>
                <value>2017-07-17</value>
            </transactionDate>
            <transactionCoding>
                <transactionFormType>4</transactionFormType>
                <transactionCode>A</transactionCode>
                <equitySwapInvolved>0</equitySwapInvolved>
            </transactionCoding>
            <transactionAmounts>
                <transactionShares>
                    <value>23180</value>
                </transactionShares>
                <transactionPricePerShare>
                    <value>0</value>
                </transactionPricePerShare>
                <transactionAcquiredDisposedCode>
                    <value>A</value>
                </transactionAcquiredDisposedCode>
            </transactionAmounts>
            <exerciseDate>
                <footnoteId id="F3"/>
            </exerciseDate>
            <expirationDate>
                <value>2027-07-17</value>
            </expirationDate>
            <underlyingSecurity>
                <underlyingSecurityTitle>
                    <value>Common Stock</value>
                </underlyingSecurityTitle>
                <underlyingSecurityShares>
                    <value>23180</value>
                </underlyingSecurityShares>
            </underlyingSecurity>
            <postTransactionAmounts>
                <sharesOwnedFollowingTransaction>
                    <value>23180</value>
                </sharesOwnedFollowingTransaction>
            </postTransactionAmounts>
            <ownershipNature>
                <directOrIndirectOwnership>
                    <value>D</value>
                </directOrIndirectOwnership>
                <natureOfOwnership>
                    <value></value>
                </natureOfOwnership>
            </ownershipNature>
        </derivativeTransaction>
    </derivativeTable>

    <footnotes>
        <footnote id="F1">Securities acquired are 28,500 shares of restricted stock that vest 25% annually beginning 7/17/18.</footnote>
        <footnote id="F2">These stock options become exercisable at the rate of 25% annually beginning 7/17/18.</footnote>
        <footnote id="F3">These stock options vest at the rate of 25% annually beginning 7/17/18 and  become exercisable after the stock price has traded at or above 130% of the exercise price for 30 consecutive trading days.</footnote>
    </footnotes>

    <remarks></remarks>

    <ownerSignature>
        <signatureName>Arnel Melgarejo</signatureName>
        <signatureDate>2017-07-19</signatureDate>
    </ownerSignature>
</ownershipDocument>
[{"type": "4", "sequence": "1", "filename": "edgar.xml", "description": "PRIMARY DOCUMENT", "secsgml_size_bytes": 7853}]
X0306
4
2017-07-17
0000730255
CalAmp Corp.
CAMP
0001654737
BINDER KURTIS JOSEPH
C/O CALAMP CORP.
15635 ALTON PARKWAY, SUITE 250
IRVINE
CA
92618
0
1
0
0
Executive VP & CFO
Common Stock
2017-07-17
4
A
0
28500
0
A
28500
D
Stock Options
19.30
2017-07-17
4
A
0
30700
0
A
2018-07-17
2027-07-17
Common Stock
30700
30700
D
Stock Options
19.30
2017-07-17
4
A
0
23180
0
A
2027-07-17
Common Stock
23180
23180
D
Securities acquired are 28,500 shares of restricted stock that vest 25% annually beginning 7/17/18.
These stock options become exercisable at the rate of 25% annually beginning 7/17/18.
These stock options vest at the rate of 25% annually beginning 7/17/18 and  become exercisable after the stock price has traded at or above 130% of the exercise price for 30 consecutive trading days.
Arnel Melgarejo
2017-07-19