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

    <schemaVersion>X0306</schemaVersion>

    <documentType>4</documentType>

    <periodOfReport>2012-07-31</periodOfReport>

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

    <reportingOwner>
        <reportingOwnerId>
            <rptOwnerCik>0001190071</rptOwnerCik>
            <rptOwnerName>GOLD RICHARD B</rptOwnerName>
        </reportingOwnerId>
        <reportingOwnerAddress>
            <rptOwnerStreet1>CALAMP CORP.</rptOwnerStreet1>
            <rptOwnerStreet2>1401 N. RICE AVENUE</rptOwnerStreet2>
            <rptOwnerCity>OXNARD</rptOwnerCity>
            <rptOwnerState>CA</rptOwnerState>
            <rptOwnerZipCode>93030</rptOwnerZipCode>
            <rptOwnerStateDescription></rptOwnerStateDescription>
        </reportingOwnerAddress>
        <reportingOwnerRelationship>
            <isDirector>1</isDirector>
            <isOfficer>0</isOfficer>
            <isTenPercentOwner>0</isTenPercentOwner>
            <isOther>1</isOther>
            <otherText>Vice Chairman</otherText>
        </reportingOwnerRelationship>
    </reportingOwner>

    <nonDerivativeTable>
        <nonDerivativeTransaction>
            <securityTitle>
                <value>Common Stock</value>
            </securityTitle>
            <transactionDate>
                <value>2012-07-31</value>
            </transactionDate>
            <transactionCoding>
                <transactionFormType>4</transactionFormType>
                <transactionCode>M</transactionCode>
                <equitySwapInvolved>0</equitySwapInvolved>
            </transactionCoding>
            <transactionAmounts>
                <transactionShares>
                    <value>80000</value>
                </transactionShares>
                <transactionPricePerShare>
                    <value>1.80</value>
                </transactionPricePerShare>
                <transactionAcquiredDisposedCode>
                    <value>A</value>
                </transactionAcquiredDisposedCode>
            </transactionAmounts>
            <postTransactionAmounts>
                <sharesOwnedFollowingTransaction>
                    <value>766551</value>
                </sharesOwnedFollowingTransaction>
            </postTransactionAmounts>
            <ownershipNature>
                <directOrIndirectOwnership>
                    <value>D</value>
                </directOrIndirectOwnership>
                <natureOfOwnership>
                    <value></value>
                </natureOfOwnership>
            </ownershipNature>
        </nonDerivativeTransaction>
        <nonDerivativeTransaction>
            <securityTitle>
                <value>Common Stock</value>
            </securityTitle>
            <transactionDate>
                <value>2012-07-31</value>
            </transactionDate>
            <transactionCoding>
                <transactionFormType>4</transactionFormType>
                <transactionCode>F</transactionCode>
                <equitySwapInvolved>0</equitySwapInvolved>
                <footnoteId id="F1"/>
            </transactionCoding>
            <transactionAmounts>
                <transactionShares>
                    <value>41453</value>
                </transactionShares>
                <transactionPricePerShare>
                    <value>7.53</value>
                </transactionPricePerShare>
                <transactionAcquiredDisposedCode>
                    <value>D</value>
                </transactionAcquiredDisposedCode>
            </transactionAmounts>
            <postTransactionAmounts>
                <sharesOwnedFollowingTransaction>
                    <value>725098</value>
                </sharesOwnedFollowingTransaction>
            </postTransactionAmounts>
            <ownershipNature>
                <directOrIndirectOwnership>
                    <value>D</value>
                </directOrIndirectOwnership>
                <natureOfOwnership>
                    <value></value>
                </natureOfOwnership>
            </ownershipNature>
        </nonDerivativeTransaction>
        <nonDerivativeTransaction>
            <securityTitle>
                <value>Common Stock</value>
            </securityTitle>
            <transactionDate>
                <value>2012-07-31</value>
            </transactionDate>
            <transactionCoding>
                <transactionFormType>4</transactionFormType>
                <transactionCode>M</transactionCode>
                <equitySwapInvolved>0</equitySwapInvolved>
            </transactionCoding>
            <transactionAmounts>
                <transactionShares>
                    <value>72000</value>
                </transactionShares>
                <transactionPricePerShare>
                    <value>2.34</value>
                </transactionPricePerShare>
                <transactionAcquiredDisposedCode>
                    <value>A</value>
                </transactionAcquiredDisposedCode>
            </transactionAmounts>
            <postTransactionAmounts>
                <sharesOwnedFollowingTransaction>
                    <value>797098</value>
                </sharesOwnedFollowingTransaction>
            </postTransactionAmounts>
            <ownershipNature>
                <directOrIndirectOwnership>
                    <value>D</value>
                </directOrIndirectOwnership>
                <natureOfOwnership>
                    <value></value>
                </natureOfOwnership>
            </ownershipNature>
        </nonDerivativeTransaction>
        <nonDerivativeTransaction>
            <securityTitle>
                <value>Common Stock</value>
            </securityTitle>
            <transactionDate>
                <value>2012-07-31</value>
            </transactionDate>
            <transactionCoding>
                <transactionFormType>4</transactionFormType>
                <transactionCode>F</transactionCode>
                <equitySwapInvolved>0</equitySwapInvolved>
                <footnoteId id="F2"/>
            </transactionCoding>
            <transactionAmounts>
                <transactionShares>
                    <value>40577</value>
                </transactionShares>
                <transactionPricePerShare>
                    <value>7.53</value>
                </transactionPricePerShare>
                <transactionAcquiredDisposedCode>
                    <value>D</value>
                </transactionAcquiredDisposedCode>
            </transactionAmounts>
            <postTransactionAmounts>
                <sharesOwnedFollowingTransaction>
                    <value>756521</value>
                </sharesOwnedFollowingTransaction>
            </postTransactionAmounts>
            <ownershipNature>
                <directOrIndirectOwnership>
                    <value>D</value>
                </directOrIndirectOwnership>
                <natureOfOwnership>
                    <value></value>
                </natureOfOwnership>
            </ownershipNature>
        </nonDerivativeTransaction>
    </nonDerivativeTable>

    <derivativeTable>
        <derivativeTransaction>
            <securityTitle>
                <value>Stock Option (right to buy)</value>
            </securityTitle>
            <conversionOrExercisePrice>
                <value>1.80</value>
            </conversionOrExercisePrice>
            <transactionDate>
                <value>2012-07-31</value>
            </transactionDate>
            <transactionCoding>
                <transactionFormType>4</transactionFormType>
                <transactionCode>M</transactionCode>
                <equitySwapInvolved>0</equitySwapInvolved>
            </transactionCoding>
            <transactionAmounts>
                <transactionShares>
                    <value>80000</value>
                </transactionShares>
                <transactionPricePerShare>
                    <value>0</value>
                </transactionPricePerShare>
                <transactionAcquiredDisposedCode>
                    <value>D</value>
                </transactionAcquiredDisposedCode>
            </transactionAmounts>
            <exerciseDate>
                <value>2010-07-30</value>
                <footnoteId id="F3"/>
            </exerciseDate>
            <expirationDate>
                <value>2019-07-30</value>
            </expirationDate>
            <underlyingSecurity>
                <underlyingSecurityTitle>
                    <value>Common Stock</value>
                </underlyingSecurityTitle>
                <underlyingSecurityShares>
                    <value>80000</value>
                </underlyingSecurityShares>
            </underlyingSecurity>
            <postTransactionAmounts>
                <sharesOwnedFollowingTransaction>
                    <value>0</value>
                </sharesOwnedFollowingTransaction>
            </postTransactionAmounts>
            <ownershipNature>
                <directOrIndirectOwnership>
                    <value>D</value>
                </directOrIndirectOwnership>
                <natureOfOwnership>
                    <value></value>
                </natureOfOwnership>
            </ownershipNature>
        </derivativeTransaction>
        <derivativeTransaction>
            <securityTitle>
                <value>Stock Option (right to buy)</value>
            </securityTitle>
            <conversionOrExercisePrice>
                <value>2.34</value>
            </conversionOrExercisePrice>
            <transactionDate>
                <value>2012-07-31</value>
            </transactionDate>
            <transactionCoding>
                <transactionFormType>4</transactionFormType>
                <transactionCode>M</transactionCode>
                <equitySwapInvolved>0</equitySwapInvolved>
            </transactionCoding>
            <transactionAmounts>
                <transactionShares>
                    <value>72000</value>
                </transactionShares>
                <transactionPricePerShare>
                    <value>0</value>
                </transactionPricePerShare>
                <transactionAcquiredDisposedCode>
                    <value>D</value>
                </transactionAcquiredDisposedCode>
            </transactionAmounts>
            <exerciseDate>
                <value>2011-07-29</value>
                <footnoteId id="F4"/>
            </exerciseDate>
            <expirationDate>
                <value>2020-07-29</value>
            </expirationDate>
            <underlyingSecurity>
                <underlyingSecurityTitle>
                    <value>Common Stock</value>
                </underlyingSecurityTitle>
                <underlyingSecurityShares>
                    <value>72000</value>
                </underlyingSecurityShares>
            </underlyingSecurity>
            <postTransactionAmounts>
                <sharesOwnedFollowingTransaction>
                    <value>0</value>
                </sharesOwnedFollowingTransaction>
            </postTransactionAmounts>
            <ownershipNature>
                <directOrIndirectOwnership>
                    <value>D</value>
                </directOrIndirectOwnership>
                <natureOfOwnership>
                    <value></value>
                </natureOfOwnership>
            </ownershipNature>
        </derivativeTransaction>
    </derivativeTable>

    <footnotes>
        <footnote id="F1">On 7/31/12, the reporting person exercised a stock option to purchase 80,000 shares of common stock for $1.80 per share.  CalAmp withheld 41,453 of the option shares to pay the exercise price and the minimum statutory withholding taxes in the aggregate amount of $312,141.09.</footnote>
        <footnote id="F2">On 7/31/12, the reporting person exercised a stock option to purchase 72,000 shares of common stock for $2.34 per share.  CalAmp withheld 40,577 of the option shares to pay the exercise price and the minimum statutory withholding taxes in the aggregate amount of $305,544.81.</footnote>
        <footnote id="F3">The options covered by this grant vested in three annual installments of 20,000 each on 7/30/10, 7/30/11 and 7/30/12, and the remaining 20,000 options vested on 7/31/12 pursuant to the provisions of the reporting person's employment agreement.</footnote>
        <footnote id="F4">The options covered by this grant vested in two annual installments of 18,000 each on 7/29/11and 7/29/12, and the remaining 36,000 options vested on 7/31/12 pursuant to the provisions of the reporting person's employment agreement.</footnote>
    </footnotes>

    <remarks></remarks>

    <ownerSignature>
        <signatureName>Richard Vitelle, Attorney-in-Fact</signatureName>
        <signatureDate>2012-07-31</signatureDate>
    </ownerSignature>
</ownershipDocument>
[{"type": "4", "sequence": "1", "filename": "edgar.xml", "description": "PRIMARY DOCUMENT", "secsgml_size_bytes": 13035}]
X0306
4
2012-07-31
0000730255
CalAmp Corp.
CAMP
0001190071
GOLD RICHARD B
CALAMP CORP.
1401 N. RICE AVENUE
OXNARD
CA
93030
1
0
0
1
Vice Chairman
Common Stock
2012-07-31
4
M
0
80000
1.80
A
766551
D
Common Stock
2012-07-31
4
F
0
41453
7.53
D
725098
D
Common Stock
2012-07-31
4
M
0
72000
2.34
A
797098
D
Common Stock
2012-07-31
4
F
0
40577
7.53
D
756521
D
Stock Option (right to buy)
1.80
2012-07-31
4
M
0
80000
0
D
2010-07-30
2019-07-30
Common Stock
80000
0
D
Stock Option (right to buy)
2.34
2012-07-31
4
M
0
72000
0
D
2011-07-29
2020-07-29
Common Stock
72000
0
D
On 7/31/12, the reporting person exercised a stock option to purchase 80,000 shares of common stock for $1.80 per share.  CalAmp withheld 41,453 of the option shares to pay the exercise price and the minimum statutory withholding taxes in the aggregate amount of $312,141.09.
On 7/31/12, the reporting person exercised a stock option to purchase 72,000 shares of common stock for $2.34 per share.  CalAmp withheld 40,577 of the option shares to pay the exercise price and the minimum statutory withholding taxes in the aggregate amount of $305,544.81.
The options covered by this grant vested in three annual installments of 20,000 each on 7/30/10, 7/30/11 and 7/30/12, and the remaining 20,000 options vested on 7/31/12 pursuant to the provisions of the reporting person's employment agreement.
The options covered by this grant vested in two annual installments of 18,000 each on 7/29/11and 7/29/12, and the remaining 36,000 options vested on 7/31/12 pursuant to the provisions of the reporting person's employment agreement.
Richard Vitelle, Attorney-in-Fact
2012-07-31