Faits :
A.
A._, née en 1960, a bénéficié d'une demi-rente de l'assurance-invalidité depuis le 1 er juillet 1994. Le 15 décembre 2010, elle a demandé une réévaluation de sa rente, invoquant une détérioration de son état de santé. L'Office de l'assurance-invalidité du canton de Neuchâtel (l'office AI) a constaté que l'incapacité de travail avait été entière dans toute activité du 22 octobre 2010 jusqu'au 30 novembre 2011. L'état de santé s'était ensuite amélioré, si bien que l'aggravation annoncée le 15 décembre 2010 n'avait plus de répercussion sur la capacité de travail.
Par décision du 2 octobre 2013, confirmant un projet d'augmentation temporaire de la rente du 19 avril 2013, l'office AI a alloué à l'assurée une rente entière du 1 er janvier 2011 au 31 janvier 2012, puis à nouveau une demi-rente à compter du 1 er février 2012.
B.
Contestant notamment toute amélioration de son état de santé et se prévalant d'une notification irrégulière de la décision du 2 octobre 2013, A._ a déféré celle-ci au Tribunal cantonal de la République et canton de Neuchâtel, Cour de droit public, en concluant principalement à son annulation et à l'octroi d'une rente entière dès le 1 er janvier 2011, subsidiairement à ce que la décision du 2 octobre 2013 lui fût à nouveau notifiée régulièrement.
Par jugement du 20 janvier 2015, la juridiction cantonale a admis partiellement le recours, en ce sens qu'elle a étendu la durée du droit à la rente entière jusqu'au 1 er janvier 2014.
C.
L'office AI interjette un recours en matière de droit public contre ce jugement dont il demande l'annulation en concluant à la confirmation de sa décision du 2 octobre 2013.
L'intimée conclut au rejet du recours et sollicite le bénéfice de l'assistance judiciaire. L'Office fédéral des assurances sociales a renoncé à se déterminer.

Considérant en droit :
1.
Le litige porte sur le moment du rétablissement de la demi-rente d'invalidité.
2.
Les premiers juges ont d'abord énoncé l'<ref-law>, relatif à la modification du droit à la rente. Ils ont ensuite rappelé que la diminution ou la suppression de la rente d'invalidité prend effet au plus tôt le premier jour du deuxième mois qui suit la notification de la décision (<ref-law>), cette disposition s'appliquant lorsqu'on est en présence d'une révision au sens strict. Ils ont ajouté que l'<ref-law> fixe les conditions auxquelles une rente peut être révisée alors que l'<ref-law> indique les effets temporels de cette révision sur le droit à la rente.
Dans le cas d'espèce, la juridiction cantonale a constaté que l'on se trouvait en présence d'une révision du droit à la rente et que l'amélioration de l'état de santé avait duré plus de trois mois sans interruption notable depuis novembre 2011. Contrairement à la voie suivie par l'office AI, les premiers juges ont admis que l'<ref-law> devait être appliqué en plus de l'<ref-law>. La diminution du droit à la rente devait ainsi prendre effet au plus tôt le premier jour du deuxième mois qui suivait la notification de la décision (<ref-law>). Comme le mandataire de l'assurée intimée n'avait pris connaissance de la décision du 2 octobre 2013 que le 1 er novembre 2013, la diminution du droit à la rente devait prendre effet au 1 er janvier 2014.
3.
L'office recourant se prévaut d'une violation du droit fédéral. Il estime que l'<ref-law> ne s'applique pas dans le cas de l'octroi d'une rente temporaire, comme c'est ici le cas, car la réduction de cette prestation est réglée par l'<ref-law>. A son avis, les premiers juges ont confondu la situation dans laquelle une rente doit être supprimée ou réduite pour l'avenir, avec la situation dans laquelle il s'agit de rendre une décision rétrospectivement sur la base d'une situation passée. A défaut, si l'on procédait comme la juridiction cantonale, le droit à une rente temporaire (en cas d'aggravation temporaire de l'invalidité) devrait être reconnu et la rente versée non seulement durant la période d'invalidité, mais encore jusqu'au moment où l'administration statuerait, alors que l'assuré aurait entre-temps récupéré sa capacité de gain ou la possibilité d'accomplir ses travaux habituels.
4.
4.1. Selon la jurisprudence, l'<ref-law> sur la révision d'une rente en cours s'applique également à la décision par laquelle une rente échelonnée dans le temps est accordée avec effet rétroactif - comme c'est le cas en l'espèce -, la date de la modification étant déterminée conformément à l'<ref-law> (<ref-ruling> consid. 2.2 p. 165; <ref-ruling> consid. 2d p. 417; arrêt 9C_900/2013 consid. 6.2 et les références). Suivant cette disposition réglementaire (al. 1), si la capacité de gain d'un assuré s'améliore, il y a lieu de considérer que ce changement supprime, le cas échéant, tout ou partie de son droit aux prestations dès que l'on peut s'attendre à ce que l'amélioration constatée se maintienne durant une assez longue période; il en va de même lorsqu'un tel changement déterminant a duré trois mois déjà, sans interruption notable et sans qu'une complication prochaine soit à craindre. En revanche, contrairement à ce qu'ont retenu les premiers juges, l'<ref-law> n'est pas applicable dans cette éventualité, du moment que l'on ne se trouve pas en présence d'une révision de la rente au sens strict (ATF <ref-ruling> consid. 2d p. 417; arrêt I 621/04 du 12 octobre 2005 consid. 3.2 et les références; Meyer / Reichmuth, Bundesgesetz über die Invalidenversicherung (IVG), 3e éd., ch. 110 ad art. 30-31; voir aussi le ch. 4018 de la Circulaire de l'OFAS sur l'invalidité et l'impotence dans l'assurance-invalidité [CIIAI], valable à partir du 1er janvier 2013).
4.2. En l'espèce, les premiers juges ont constaté que l'intimée avait présenté une péjoration de son état de santé du 22 octobre 2010 jusqu'en octobre 2011, l'amélioration étant intervenue dès novembre 2011 (consid. 5b pp. 7-8 du jugement attaqué). L'intimée ne conteste pas ce fait dans sa réponse au recours, mais elle manifeste son désaccord avec " l'argumentation " du recourant, c'est-à-dire avec le moment auquel la rente entière doit prendre fin sans en indiquer les raisons. Vu ce qui précède, c'est à juste titre que le recourant avait rétabli la demi-rente à compter du 1er février 2012. La décision du 2 octobre 2013 étant conforme au droit fédéral (<ref-law>), le recours sera admis et le jugement attaqué annulé.
5.
L'intimée, qui succombe, supportera les frais de la procédure, cantonale et fédérale (<ref-law>, <ref-law>). Elle remplit les conditions de l'octroi de l'assistance judiciaire pour la procédure fédérale (<ref-law>).

Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est admis. Le jugement du Tribunal cantonal de la République et canton de Neuchâtel, Cour de droit public, du 20 janvier 2015, est annulé.
2.
L'assistance judiciaire est admise pour la procédure devant le Tribunal fédéral et M e Nicolas Stucki est désigné comme avocat d'office de l'intimée.
3.
Les frais judiciaires, arrêtés à 800 fr., sont mis à la charge de l'intimée. Ils sont toutefois provisoirement supportés par la caisse du tribunal.
4.
Une indemnité de 500 fr., supportée par la caisse du Tribunal, est allouée à M e Nicolas Stucki à titre d'honoraires.
5.
Le dossier est renvoyé au Tribunal cantonal de la République et canton de Neuchâtel, Cour de droit public, pour nouvelle décision sur les frais et dépens de la procédure cantonale.
6.
Le présent arrêt est communiqué aux parties, au Tribunal cantonal de la République et canton de Neuchâtel, Cour de droit public, et à l'Office fédéral des assurances sociales.
Lucerne, le 3 septembre 2015
Au nom de la IIe Cour de droit social
du Tribunal fédéral suisse
La Présidente : Glanzmann
Le Greffier : Berthoud