The series, which was due to start on August 2 will now begin on July 30 with all seven games squeezed into 11 days.
The final will be played under lights at the Premadasa International Stadium in Colombo on August 9.
This follows a request from the Board of Control for Cricket in India (BCCI) to reschedule the One-day series to allow India's players to participate in a proposed Afro-Asian contest in August.
The proposed series between an Asian XI and African XI will raise funds for the welfare of players in the two continents and for the development of the new Afro-Asian Cricket Council, a new body set up by the Asian Cricket Council and the African Cricket Council.
The rescheduling has also affected the start of Sri Lanka's two-Test series at home to West Indies that will now begin on July 13.
Revised Schedule of tri-series:
July 30 India Vs Sri Lanka (Dambulla)
July 31 India Vs West Indies (Dambulla)
Aug 2 Sri Lanka Vs West Indies (Dambulla)
Aug 3 Sri Lanka Vs India (Dambulla)
Aug 6 West Indies Vs Sri Lanka (Colombo)
Aug 7 West Indies Vs India (Colombo)
Aug 9 Final (Colombo).